On 3/11/24 5:44 AM, Chintan Vankar wrote:
On 31/01/24 21:06, Andrew Davis wrote:
On 1/31/24 4:14 AM, Chintan Vankar wrote:Using "probe_daughtercards()" function U-Boot parses MAC addresses from
Add alias for the MCU CPSW2G port to enable Linux to fetch MAC Address
for the port directly from U-Boot.
Could you explain *how* this alias allows Linux to fetch a MAC
address from U-Boot? Sounds like we are doing something hacky here..
EEPROM, then it internally calls "eth_env_set_enetaddr_by_index()"
function which stores these MAC addresses into environment variables
ethaddr, eth1addr, eth2addr and so on based on number of ports.
U-Boot loads DTB during boot process, and it calls
"fdt_fixup_ethernet()" function, which uses environment variables to
update MAC addresses of ethernet ports as specified in the aliases
section.
So maybe a better question would by why does it need to use aliases
for this?
Yes, Linux reads MAC addresses from efuse this way only, but theWhy can't Linux fetch the MAC from efuses the same way U-Boot does,
Linux can fetch the MAC address from efuses if "ti,syscon-efuse"
property is enabled.
Then let's do it this way always.
what happens if I don't use U-Boot to boot?
If you don't use U-Boot to boot then the equivalent of
"probe_daughtercards()" has to be implemented which is currently
missing.
Or we just let Linux fetch it instead of implementing that function
in all the possible bootloaders. This would also remove a DTB fixup.
Those fixups should be avoided if at all possible.
Andrew
Andrew
---
arch/arm64/boot/dts/ti/k3-j784s4-evm.dts | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
index f34b92acc56d..b74f7d3025de 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
@@ -27,6 +27,7 @@ aliases {
mmc1 = &main_sdhci1;
i2c0 = &wkup_i2c0;
i2c3 = &main_i2c0;
+ ethernet0 = &mcu_cpsw_port1;
};
memory@80000000 {