Skip to contentSkip to conversation

ARM: dts: rockchip: Setup ethernet0 alias for u-boot

PATCH New Sjoerd Simons 3 participants 7 messages Oct 29, 2015 – Oct 30, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: dts: rockchip: Setup ethernet0 alias for u-boot

Add an ethernet0 alias for the wired network card and an all 0 default mac address so that u-boot can find the device-node and fill in the mac address.

---

 arch/arm/boot/dts/rk3288-rock2-square.dts | 6 ++++++
 1 file changed, 6 insertions(+)
arch/arm/boot/dts/rk3288-rock2-square.dts +6 -0
index 0ef065d..a029ebf 100644
@@ -45,6 +45,10 @@
 	model = "Radxa Rock 2 Square";
 	compatible = "radxa,rock2-square", "rockchip,rk3288";
 
+	aliases {
+		ethernet0 = &gmac;
+	};
+
 	chosen {
 		stdout-path = "serial2:115200n8";
 	};
@@ -130,6 +134,8 @@
 };
 
 &gmac {
+	/* To be filled in by U-Boot */
+	mac-address = [00 00 00 00 00 00];
 	status = "ok";
 };
 
Signature · 1 line
2.6.2
maintainer
#1 lore raw

PATCH 1/1 ARM: dts: rockchip: Setup ethernet0 alias for u-boot

Hi Sjoerd,

Am Donnerstag, 29. Oktober 2015, 21:44:57 schrieb Sjoerd Simons:

Quoted 15 lines

Add an ethernet0 alias for the wired network card and an all 0 default mac address so that u-boot can find the device-node and fill in the mac address.

---

 arch/arm/boot/dts/rk3288-rock2-square.dts | 6 ++++++
 1 file changed, 6 insertions(+)
arch/arm/boot/dts/rk3288-rock2-square.dts +0 -0
index 0ef065d..a029ebf 100644

arch/arm/boot/dts/rk3288-rock2-square.dts line 51

Quoted 7 lines
arch/arm/boot/dts/rk3288-rock2-square.dts +4 -0
@@ -45,6 +45,10 @@
 	model = "Radxa Rock 2 Square";
 	compatible = "radxa,rock2-square", "rockchip,rk3288";
 
+	aliases {
+		ethernet0 = &gmac;
+	};
+

wouldn't it make more sense to have this in the rk3288.dtsi, so to keep every board from having to add this alias?

arch/arm/boot/dts/rk3288-rock2-square.dts line 140

Quoted 11 lines
arch/arm/boot/dts/rk3288-rock2-square.dts +2 -0
 	chosen {
 		stdout-path = "serial2:115200n8";
 	};
@@ -130,6 +134,8 @@
 };
 
 &gmac {
+	/* To be filled in by U-Boot */
+	mac-address = [00 00 00 00 00 00];
 	status = "ok";
 };

I guess the same applies for the mac placeholder.

Heiko

#2 lore raw

PATCH 1/1 ARM: dts: rockchip: Setup ethernet0 alias for u-boot

Quoted 23 lines · Heiko Stuebner

Hi Sjoerd,

Am Donnerstag, 29. Oktober 2015, 21:44:57 schrieb Sjoerd Simons:

Quoted 20 lines

Add an ethernet0 alias for the wired network card and an all 0 default
mac address so that u-boot can find the device-node and fill in the mac address.

---

?arch/arm/boot/dts/rk3288-rock2-square.dts | 6 ++++++ ?1 file changed, 6 insertions(+)

arch/arm/boot/dts/rk3288-rock2-square.dts +0 -0
index 0ef065d..a029ebf 100644
@@ -45,6 +45,10 @@
 ?	model = "Radxa Rock 2 Square";
 ?	compatible = "radxa,rock2-square", "rockchip,rk3288";

?

Quoted 8 lines

arch/arm/boot/dts/rk3288-rock2-square.dts line 51

Quoted 4 lines
arch/arm/boot/dts/rk3288-rock2-square.dts +4 -0
+	aliases {
+		ethernet0 = &gmac;
+	};
+

wouldn't it make more sense to have this in the rk3288.dtsi, so to keep
every board from having to add this alias?

Hmm, that would work. Thought it would add an alias point to a disabled node for boards that don't have a wired interface. If that isn't an issue it can indeed be moved there.

Quoted 14 lines
Quoted 10 lines

? chosen {
? stdout-path = "serial2:115200n8";
? };

arch/arm/boot/dts/rk3288-rock2-square.dts +0 -0
@@ -130,6 +134,8 @@
 ?};

?
?&gmac {

arch/arm/boot/dts/rk3288-rock2-square.dts +2 -0
+	/* To be filled in by U-Boot */
+	mac-address = [00 00 00 00 00 00];
Quoted 2 lines

? status = "ok";
?};

I guess the same applies for the mac placeholder.

In any case they should be in the same dts{i}.

--?
Sjoerd Simons
Collabora Ltd.

maintainer
#3 lore raw

PATCH 1/1 ARM: dts: rockchip: Setup ethernet0 alias for u-boot

Am Donnerstag, 29. Oktober 2015, 22:39:24 schrieb Sjoerd Simons:

Quoted 33 lines · Heiko Stuebner
Quoted 23 lines

Hi Sjoerd,

Am Donnerstag, 29. Oktober 2015, 21:44:57 schrieb Sjoerd Simons:

Quoted 20 lines

Add an ethernet0 alias for the wired network card and an all 0 default
mac address so that u-boot can find the device-node and fill in the mac address.

---

 arch/arm/boot/dts/rk3288-rock2-square.dts | 6 ++++++
 1 file changed, 6 insertions(+)
arch/arm/boot/dts/rk3288-rock2-square.dts +0 -0
index 0ef065d..a029ebf 100644
@@ -45,6 +45,10 @@
 	model = "Radxa Rock 2 Square";
 	compatible = "radxa,rock2-square", "rockchip,rk3288";
 
Quoted 8 lines

arch/arm/boot/dts/rk3288-rock2-square.dts line 51

Quoted 4 lines
arch/arm/boot/dts/rk3288-rock2-square.dts +4 -0
+	aliases {
+		ethernet0 = &gmac;
+	};
+

wouldn't it make more sense to have this in the rk3288.dtsi, so to keep
every board from having to add this alias?

Quoted 3 lines

Hmm, that would work. Thought it would add an alias point to a disabled node for boards that don't have a wired interface. If that isn't an issue it can indeed be moved there.

we also have aliases for all i2c, mmc, spi, uart etc nodes ... some of which may stay disabled. But i2c5 stays i2c5 everywhere
and similarly the internal ethernet will stay ethernet0 everywhere too.

And for the "fluffy" good feeling, a lot of other socs also seem to keep their ethernet0 aliases in the central dtsi (allwinner, freescale, socfpga), so it's not obviously wrong :-) .

Heiko

#4 lore raw

PATCH 1/1 ARM: dts: rockchip: Setup ethernet0 alias for u-boot

In reply to Sjoerd Simons

Hi Sjoerd,

Quoted 3 lines · Sjoerd Simons

Add an ethernet0 alias for the wired network card and an all 0 default mac address so that u-boot can find the device-node and fill in the mac address.

Thanks a lot!

I had the same issue on another board, and adding an "ethernet0" alias fixes it.

arch/arm/boot/dts/rk3288-rock2-square.dts line 140

Quoted 8 lines
arch/arm/boot/dts/rk3288-rock2-square.dts +2 -0
@@ -130,6 +134,8 @@
 };
 
 &gmac {
+       /* To be filled in by U-Boot */
+       mac-address = [00 00 00 00 00 00];
        status = "ok";
 };

Note that in my case I didn't have to add an empty mac-address property. U-Boot (2015.04-something --- don't have the sources) seems to add a "local-mac-address" property automatically.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#5 lore raw

PATCH 1/1 ARM: dts: rockchip: Setup ethernet0 alias for u-boot

Quoted 9 lines · Geert Uytterhoeven

Hi Sjoerd,

Quoted 4 lines · Sjoerd Simons

Add an ethernet0 alias for the wired network card and an all 0 default
mac address so that u-boot can find the device-node and fill in the mac address.

Quoted 5 lines

Thanks a lot!

I had the same issue on another board, and adding an "ethernet0" alias
fixes it.

Happy to help, this stuff is really not that well document unfortunately.

Quoted 13 lines

Review line 140

Quoted 8 lines
(quoted diff) +2 -0
@@ -130,6 +134,8 @@
 ?};
 
 ?&gmac {
+???????/* To be filled in by U-Boot */
+???????mac-address = [00 00 00 00 00 00];
 ????????status = "ok";
 ?};

Note that in my case I didn't have to add an empty mac-address property.
U-Boot (2015.04-something --- don't have the sources) seems to add a "local-mac-address" property automatically.

After submitting the patch i actually dived a bit deeper at how this all hangs together.

The linux kernel checks for mac-address, local-mac-address and address in the fdt node, in that order of preference. u-boot (at least recent ones like you have), will set the mac-address property *if* it's already defined but will always create the local-mac-address property regardless.

So indeed practially, as you noticed, just setting the alias is enough. I'm now just very confused about the intended meanings of the properties, Documentation/devicetree/bindings/net/ethernet.txt doesn't shed a lot of light on it:

- local-mac-address: array of 6 bytes, specifies the MAC address that? ? was assigned to the network device;
- mac-address: array of 6 bytes, specifies the MAC address that was? ? last used by the boot program; should be used in cases where the MAC? ? address assigned to the device by the boot program is different from? ? the "local-mac-address"property;

So yeah, I'm not sure what the "correct" fix is. It's tempting to indeed just leave out the mac-address property though :)

Signature · 2 lines
Sjoerd Simons
Collabora Ltd.
#6 lore raw

PATCH 1/1 ARM: dts: rockchip: Setup ethernet0 alias for u-boot

Hi Sjoerd,

Quoted 5 lines · Sjoerd Simons
Quoted 4 lines

Note that in my case I didn't have to add an empty mac-address property.
U-Boot (2015.04-something --- don't have the sources) seems to add a "local-mac-address" property automatically.

Quoted 8 lines

After submitting the patch i actually dived a bit deeper at how this all hangs together.

The linux kernel checks for mac-address, local-mac-address and address in the fdt node, in that order of preference. u-boot (at least recent ones like you have), will set the mac-address property *if* it's already defined but will always create the local-mac-address property regardless.

That's also what I noticed. Originally I added the empty "mac-address" like you did, and /sys/firmware/devicetree/base/soc/ethernet at e6800000 ended up having both "mac-address" and "local-mac-address", both with the correct address.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds