2020-09-30 14:33:28

by Łukasz Stelmach

[permalink] [raw]
Subject: [PATCH] ARM: dts: exynos: Add a placeholder for a MAC address

Add a placeholder for a MAC address. A bootloader may fill it
to set the MAC address and override EEPROM settings.

Signed-off-by: Łukasz Stelmach <[email protected]>
---
arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index db0bc17a667b..9f7f3eacb750 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -70,3 +70,21 @@ &pwm {
&usbdrd_dwc3_1 {
dr_mode = "peripheral";
};
+
+&usbhost2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hub@1 {
+ compatible = "usb8087,0024";
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ethernet: usbether@1 {
+ compatible = "usb0c45,6310";
+ reg = <1>;
+ mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
+ };
+ };
+};
--
2.26.2


2020-10-01 07:24:15

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Add a placeholder for a MAC address

On Wed, Sep 30, 2020 at 04:31:51PM +0200, Łukasz Stelmach wrote:
> Add a placeholder for a MAC address. A bootloader may fill it
> to set the MAC address and override EEPROM settings.
>
> Signed-off-by: Łukasz Stelmach <[email protected]>
> ---
> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index db0bc17a667b..9f7f3eacb750 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -70,3 +70,21 @@ &pwm {
> &usbdrd_dwc3_1 {
> dr_mode = "peripheral";
> };
> +
> +&usbhost2 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + hub@1 {
> + compatible = "usb8087,0024";
> + reg = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ethernet: usbether@1 {
> + compatible = "usb0c45,6310";
> + reg = <1>;
> + mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */

Why do you need a placeholder? U-Boot can just append the
address/property.

Best regards,
Krzysztof

2020-10-01 08:39:42

by Łukasz Stelmach

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Add a placeholder for a MAC address

It was <2020-10-01 czw 09:22>, when Krzysztof Kozlowski wrote:
> On Wed, Sep 30, 2020 at 04:31:51PM +0200, Łukasz Stelmach wrote:
>> Add a placeholder for a MAC address. A bootloader may fill it
>> to set the MAC address and override EEPROM settings.
>>
>> Signed-off-by: Łukasz Stelmach <[email protected]>
>> ---
>> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
>> 1 file changed, 18 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> index db0bc17a667b..9f7f3eacb750 100644
>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> @@ -70,3 +70,21 @@ &pwm {
>> &usbdrd_dwc3_1 {
>> dr_mode = "peripheral";
>> };
>> +
>> +&usbhost2 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + hub@1 {
>> + compatible = "usb8087,0024";
>> + reg = <1>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + ethernet: usbether@1 {
>> + compatible = "usb0c45,6310";
>> + reg = <1>;
>> + mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
>
> Why do you need a placeholder? U-Boot can just append the
> address/property.

Several other dts files have such placeholder

git grep 'mac-addr.*\[00 00 00 00 00 00\]' arch/arm/boot/dts/ | wc -l
26

I can see two scenarios where this patch may be helpful. Another
(simple) boot loading code might be used. The value may also be
customized during build time and used without any support of a
bootloader.

Finding and filling a placeholder would be easier in u-boot too.

And it serves as a reference how to configure a USB device in a dts
file.

--
Łukasz Stelmach
Samsung R&D Institute Poland
Samsung Electronics


Attachments:
signature.asc (497.00 B)

2020-10-01 09:18:23

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Add a placeholder for a MAC address

On Thu, 1 Oct 2020 at 10:36, Lukasz Stelmach <[email protected]> wrote:
>
> It was <2020-10-01 czw 09:22>, when Krzysztof Kozlowski wrote:
> > On Wed, Sep 30, 2020 at 04:31:51PM +0200, Łukasz Stelmach wrote:
> >> Add a placeholder for a MAC address. A bootloader may fill it
> >> to set the MAC address and override EEPROM settings.
> >>
> >> Signed-off-by: Łukasz Stelmach <[email protected]>
> >> ---
> >> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
> >> 1 file changed, 18 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> index db0bc17a667b..9f7f3eacb750 100644
> >> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> @@ -70,3 +70,21 @@ &pwm {
> >> &usbdrd_dwc3_1 {
> >> dr_mode = "peripheral";
> >> };
> >> +
> >> +&usbhost2 {
> >> + #address-cells = <1>;
> >> + #size-cells = <0>;
> >> +
> >> + hub@1 {
> >> + compatible = "usb8087,0024";
> >> + reg = <1>;
> >> + #address-cells = <1>;
> >> + #size-cells = <0>;
> >> +
> >> + ethernet: usbether@1 {
> >> + compatible = "usb0c45,6310";
> >> + reg = <1>;
> >> + mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
> >
> > Why do you need a placeholder? U-Boot can just append the
> > address/property.
>
> Several other dts files have such placeholder
>
> git grep 'mac-addr.*\[00 00 00 00 00 00\]' arch/arm/boot/dts/ | wc -l
> 26

Yeah, but if this is cargo cult, then it is not a good reason. First of all,
git grep '[^-]mac-addr.*\[.*00 00 00 00 00 00.*\]' arch/arm/boot/dts/
gives just seven boards. Not a big number to make a standard. :)

The meaning of mac-address, I think, is not a placeholder, but:
"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."

I think you actually wanted a local-mac-address and the majority of
DTSes use it. Not mac-address.

>
> I can see two scenarios where this patch may be helpful. Another
> (simple) boot loading code might be used.

OK, good point. However other bootloader still has to adhere to the DT
specification and the bindings.

> The value may also be
> customized during build time and used without any support of a
> bootloader.

Yes, with an overlay. You do not need a placeholder for this and
actually having a placeholder instead of using overlays is the wrong
approach for customization of boots/builds.

> Finding and filling a placeholder would be easier in u-boot too.

U-Boot already has the code for updating mac-address or
local-mac-address so how is it easier for him? You mean that it cannot
find an ethernet node here?

> And it serves as a reference how to configure a USB device in a dts

Great places for references are examples in bindings.

Best regards,
Krzysztof

2020-10-01 10:13:57

by Łukasz Stelmach

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Add a placeholder for a MAC address

It was <2020-10-01 czw 11:16>, when Krzysztof Kozlowski wrote:
> On Thu, 1 Oct 2020 at 10:36, Lukasz Stelmach <[email protected]> wrote:
>>
>> It was <2020-10-01 czw 09:22>, when Krzysztof Kozlowski wrote:
>> > On Wed, Sep 30, 2020 at 04:31:51PM +0200, Łukasz Stelmach wrote:
>> >> Add a placeholder for a MAC address. A bootloader may fill it
>> >> to set the MAC address and override EEPROM settings.
>> >>
>> >> Signed-off-by: Łukasz Stelmach <[email protected]>
>> >> ---
>> >> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
>> >> 1 file changed, 18 insertions(+)
>> >>
>> >> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> >> index db0bc17a667b..9f7f3eacb750 100644
>> >> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> >> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> >> @@ -70,3 +70,21 @@ &pwm {
>> >> &usbdrd_dwc3_1 {
>> >> dr_mode = "peripheral";
>> >> };
>> >> +
>> >> +&usbhost2 {
>> >> + #address-cells = <1>;
>> >> + #size-cells = <0>;
>> >> +
>> >> + hub@1 {
>> >> + compatible = "usb8087,0024";
>> >> + reg = <1>;
>> >> + #address-cells = <1>;
>> >> + #size-cells = <0>;
>> >> +
>> >> + ethernet: usbether@1 {
>> >> + compatible = "usb0c45,6310";
>> >> + reg = <1>;
>> >> + mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
>> >
>> > Why do you need a placeholder? U-Boot can just append the
>> > address/property.
>>
>> Several other dts files have such placeholder
>>
>> git grep 'mac-addr.*\[00 00 00 00 00 00\]' arch/arm/boot/dts/ | wc -l
>> 26
>
> Yeah, but if this is cargo cult, then it is not a good reason. First of all,
> git grep '[^-]mac-addr.*\[.*00 00 00 00 00 00.*\]' arch/arm/boot/dts/
> gives just seven boards. Not a big number to make a standard. :)
>
> The meaning of mac-address, I think, is not a placeholder, but:
> "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."
>
> I think you actually wanted a local-mac-address and the majority of
> DTSes use it. Not mac-address.

Indeed that makes sense. I am fixing this.

>> I can see two scenarios where this patch may be helpful. Another
>> (simple) boot loading code might be used.
>
> OK, good point. However other bootloader still has to adhere to the DT
> specification and the bindings.
>
>> The value may also be
>> customized during build time and used without any support of a
>> bootloader.
>
> Yes, with an overlay. You do not need a placeholder for this and
> actually having a placeholder instead of using overlays is the wrong
> approach for customization of boots/builds.

Still, not every bootloading scenario allows for using overlays.
Applying an overlay to change the MAC address after boot makes little
sense since you can simply

ip link set address 00:01:02:03:04:05 dev eth0

>> Finding and filling a placeholder would be easier in u-boot too.
>
> U-Boot already has the code for updating mac-address or
> local-mac-address so how is it easier for him? You mean that it cannot
> find an ethernet node here?

I didn't know that. Point for you.

>> And it serves as a reference how to configure a USB device in a dts
>
> Great places for references are examples in bindings.

Not so much IMHO because they are not strictly related to real
hardware you can examine and see the connection between DT and the
hardware.

--
Łukasz Stelmach
Samsung R&D Institute Poland
Samsung Electronics


Attachments:
signature.asc (497.00 B)

2020-10-01 13:55:06

by Łukasz Stelmach

[permalink] [raw]
Subject: [PATCH v2] ARM: dts: exynos: Add a placeholder for a MAC address

Add a placeholder for a MAC address. A bootloader may fill it
to set the MAC address and override EEPROM settings.

Signed-off-by: Łukasz Stelmach <[email protected]>
---
Changes in v2:
- use local-mac-address and leave mac-address to be added by a bootloader

arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index db0bc17a667b..d0f6ac5fa79d 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -70,3 +70,21 @@ &pwm {
&usbdrd_dwc3_1 {
dr_mode = "peripheral";
};
+
+&usbhost2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hub@1 {
+ compatible = "usb8087,0024";
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ethernet: usbether@1 {
+ compatible = "usb0c45,6310";
+ reg = <1>;
+ local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
+ };
+ };
+};
--
2.26.2

2020-10-01 18:49:55

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: dts: exynos: Add a placeholder for a MAC address

On Thu, Oct 01, 2020 at 03:52:54PM +0200, Łukasz Stelmach wrote:
> Add a placeholder for a MAC address. A bootloader may fill it
> to set the MAC address and override EEPROM settings.
>
> Signed-off-by: Łukasz Stelmach <[email protected]>
> ---
> Changes in v2:
> - use local-mac-address and leave mac-address to be added by a bootloader
>
> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)

Thanks, applied.

Best regards,
Krzysztof

2020-11-01 14:11:14

by Anand Moon

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: dts: exynos: Add a placeholder for a MAC address

Hi Lukasz,

On Thu, 1 Oct 2020 at 19:25, Łukasz Stelmach <[email protected]> wrote:
>
> Add a placeholder for a MAC address. A bootloader may fill it
> to set the MAC address and override EEPROM settings.
>
> Signed-off-by: Łukasz Stelmach <[email protected]>
> ---
> Changes in v2:
> - use local-mac-address and leave mac-address to be added by a bootloader
>
> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index db0bc17a667b..d0f6ac5fa79d 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -70,3 +70,21 @@ &pwm {
> &usbdrd_dwc3_1 {
> dr_mode = "peripheral";
> };
> +
> +&usbhost2 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + hub@1 {
> + compatible = "usb8087,0024";
> + reg = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ethernet: usbether@1 {
> + compatible = "usb0c45,6310";
> + reg = <1>;
> + local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
> + };
> + };
> +};
> --
> 2.26.2
>

Thanks for this patch, can you share some example on how to set the
mac address via u-boot bootargs
also can you update this patch for exynos5422-odroidxu3-lite.dts and
exynos4412-odroidu3.dts.

Best Regards
-Anand

2020-11-02 16:24:50

by Marek Szyprowski

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: dts: exynos: Add a placeholder for a MAC address

Hi Anand,

On 01.11.2020 15:07, Anand Moon wrote:
> Hi Lukasz,
>
> On Thu, 1 Oct 2020 at 19:25, Łukasz Stelmach <[email protected]> wrote:
>> Add a placeholder for a MAC address. A bootloader may fill it
>> to set the MAC address and override EEPROM settings.
>>
>> Signed-off-by: Łukasz Stelmach <[email protected]>
>> ---
>> Changes in v2:
>> - use local-mac-address and leave mac-address to be added by a bootloader
>>
>> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
>> 1 file changed, 18 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> index db0bc17a667b..d0f6ac5fa79d 100644
>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> @@ -70,3 +70,21 @@ &pwm {
>> &usbdrd_dwc3_1 {
>> dr_mode = "peripheral";
>> };
>> +
>> +&usbhost2 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + hub@1 {
>> + compatible = "usb8087,0024";
>> + reg = <1>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + ethernet: usbether@1 {
>> + compatible = "usb0c45,6310";
>> + reg = <1>;
>> + local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
>> + };
>> + };
>> +};
>> --
>> 2.26.2
>>
> Thanks for this patch, can you share some example on how to set the
> mac address via u-boot bootargs

A little bit hacky script to set permanent board unique MAC address:

# setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b u2
*0x10000016; setexp.b u3 *0x10000017; setenv ethaddr
0:0:${u0}:${u1}:${u2}:${u3}; setenv usbethaddr ${ethaddr};

Then if there is proper ethernet0 alias set, u-boot will then
automatically save the configured MAC address to the device tree. I've
just check this on recent u-boot v2020.10 and Odroid U3 board.

Lukasz will send updated patch soon (with proper alias entry).

If you want to hack setting MAC address manually, this will work with
the current patch:

# setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b u2
*0x10000016; setexp.b u3 *0x10000017; fdt addr ${fdtaddr}; fdt set
/soc/usb@12110000/hub@1/usbether@1 local-mac-address [ 0 0 ${u0} ${u1}
${u2} ${u3} ]

> also can you update this patch for exynos5422-odroidxu3-lite.dts and
> exynos4412-odroidu3.dts.

Also odroid-x2 and odroid-xu. Lukasz will take care of them.

Best regards

--
Marek Szyprowski, PhD
Samsung R&D Institute Poland

2020-11-05 08:10:40

by Anand Moon

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: dts: exynos: Add a placeholder for a MAC address

Hi Marek,

On Mon, 2 Nov 2020 at 21:53, Marek Szyprowski <[email protected]> wrote:
>
> Hi Anand,
>
> On 01.11.2020 15:07, Anand Moon wrote:
> > Hi Lukasz,
> >
> > On Thu, 1 Oct 2020 at 19:25, Łukasz Stelmach <[email protected]> wrote:
> >> Add a placeholder for a MAC address. A bootloader may fill it
> >> to set the MAC address and override EEPROM settings.
> >>
> >> Signed-off-by: Łukasz Stelmach <[email protected]>
> >> ---
> >> Changes in v2:
> >> - use local-mac-address and leave mac-address to be added by a bootloader
> >>
> >> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
> >> 1 file changed, 18 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> index db0bc17a667b..d0f6ac5fa79d 100644
> >> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> @@ -70,3 +70,21 @@ &pwm {
> >> &usbdrd_dwc3_1 {
> >> dr_mode = "peripheral";
> >> };
> >> +
> >> +&usbhost2 {
> >> + #address-cells = <1>;
> >> + #size-cells = <0>;
> >> +
> >> + hub@1 {
> >> + compatible = "usb8087,0024";
> >> + reg = <1>;
> >> + #address-cells = <1>;
> >> + #size-cells = <0>;
> >> +
> >> + ethernet: usbether@1 {
> >> + compatible = "usb0c45,6310";
> >> + reg = <1>;
> >> + local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
> >> + };
> >> + };
> >> +};
> >> --
> >> 2.26.2
> >>
> > Thanks for this patch, can you share some example on how to set the
> > mac address via u-boot bootargs
>
> A little bit hacky script to set permanent board unique MAC address:
>
> # setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b u2
> *0x10000016; setexp.b u3 *0x10000017; setenv ethaddr
> 0:0:${u0}:${u1}:${u2}:${u3}; setenv usbethaddr ${ethaddr};
>
OK this command worked for me.

> Then if there is proper ethernet0 alias set, u-boot will then
> automatically save the configured MAC address to the device tree. I've
> just check this on recent u-boot v2020.10 and Odroid U3 board.
>
> Lukasz will send updated patch soon (with proper alias entry).
>
> If you want to hack setting MAC address manually, this will work with
> the current patch:
>
> # setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b u2
> *0x10000016; setexp.b u3 *0x10000017; fdt addr ${fdtaddr}; fdt set
> /soc/usb@12110000/hub@1/usbether@1 local-mac-address [ 0 0 ${u0} ${u1}
> ${u2} ${u3} ]
>

So do we need a similar patch for u-boot ?
I am getting following error on Odroid U3+ and U-Boot 2020.10

Odroid # setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b
u2 *0x10000016; setexp.b u3 *0x10000017; fdt addr ${fdtaddr}; fdt set
/soc/usb@12110000/hub@1/usbether@1 local-mac-address [ 0 0 ${u0} ${u1}
${u2} ${u3} ]
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!

Also added these command to boot.scr but still observing the failure

mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
969 bytes read in 5 ms (188.5 KiB/s)
## Executing script at 42000000
7341440 bytes read in 265 ms (26.4 MiB/s)
53875 bytes read in 56 ms (939.5 KiB/s)
7964187 bytes read in 285 ms (26.6 MiB/s)
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
Kernel image @ 0x41000000 [ 0x000000 - 0x700580 ]
## Flattened Device Tree blob at 40800000
Booting using the fdt blob at 0x40800000
Loading Ramdisk to 4f867000, end 4ffff61b ... OK
Loading Device Tree to 4f856000, end 4f866272 ... OK
,
Best Regards
-Anand

> > also can you update this patch for exynos5422-odroidxu3-lite.dts and
> > exynos4412-odroidu3.dts.
>
> Also odroid-x2 and odroid-xu. Lukasz will take care of them.
>
> Best regards
>
> --
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
>

2020-11-05 08:22:39

by Marek Szyprowski

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: dts: exynos: Add a placeholder for a MAC address

Hi Anand,

On 05.11.2020 09:06, Anand Moon wrote:
> On Mon, 2 Nov 2020 at 21:53, Marek Szyprowski <[email protected]> wrote:
>> On 01.11.2020 15:07, Anand Moon wrote:
>>> On Thu, 1 Oct 2020 at 19:25, Łukasz Stelmach <[email protected]> wrote:
>>>> Add a placeholder for a MAC address. A bootloader may fill it
>>>> to set the MAC address and override EEPROM settings.
>>>>
>>>> Signed-off-by: Łukasz Stelmach <[email protected]>
>>>> ---
>>>> Changes in v2:
>>>> - use local-mac-address and leave mac-address to be added by a bootloader
>>>>
>>>> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 18 ++++++++++++++++++
>>>> 1 file changed, 18 insertions(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>>>> index db0bc17a667b..d0f6ac5fa79d 100644
>>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>>>> @@ -70,3 +70,21 @@ &pwm {
>>>> &usbdrd_dwc3_1 {
>>>> dr_mode = "peripheral";
>>>> };
>>>> +
>>>> +&usbhost2 {
>>>> + #address-cells = <1>;
>>>> + #size-cells = <0>;
>>>> +
>>>> + hub@1 {
>>>> + compatible = "usb8087,0024";
>>>> + reg = <1>;
>>>> + #address-cells = <1>;
>>>> + #size-cells = <0>;
>>>> +
>>>> + ethernet: usbether@1 {
>>>> + compatible = "usb0c45,6310";
>>>> + reg = <1>;
>>>> + local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
>>>> + };
>>>> + };
>>>> +};
>>>> --
>>>> 2.26.2
>>>>
>>> Thanks for this patch, can you share some example on how to set the
>>> mac address via u-boot bootargs
>> A little bit hacky script to set permanent board unique MAC address:
>>
>> # setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b u2
>> *0x10000016; setexp.b u3 *0x10000017; setenv ethaddr
>> 0:0:${u0}:${u1}:${u2}:${u3}; setenv usbethaddr ${ethaddr};
>>
> OK this command worked for me.
>
>> Then if there is proper ethernet0 alias set, u-boot will then
>> automatically save the configured MAC address to the device tree. I've
>> just check this on recent u-boot v2020.10 and Odroid U3 board.
>>
>> Lukasz will send updated patch soon (with proper alias entry).
>>
>> If you want to hack setting MAC address manually, this will work with
>> the current patch:
>>
>> # setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b u2
>> *0x10000016; setexp.b u3 *0x10000017; fdt addr ${fdtaddr}; fdt set
>> /soc/usb@12110000/hub@1/usbether@1 local-mac-address [ 0 0 ${u0} ${u1}
>> ${u2} ${u3} ]
>>
> So do we need a similar patch for u-boot ?

I've not sure that this ethaddr hack/workaround should be added to
mainline uboot. Some other exynos based board have proper MAC address
stored in EEPROM (for example Odroid XU4/HC1). I would leave it for the
users to add it manually if it is really needed for now.

> I am getting following error on Odroid U3+ and U-Boot 2020.10
>
> Odroid # setexp.b u0 *0x10000014; setexp.b u1 *0x10000015; setexp.b
> u2 *0x10000016; setexp.b u3 *0x10000017; fdt addr ${fdtaddr}; fdt set
> /soc/usb@12110000/hub@1/usbether@1 local-mac-address [ 0 0 ${u0} ${u1}
> ${u2} ${u3} ]
> No FDT memory address configured. Please configure
> the FDT address via "fdt addr <address>" command.
> Aborting!
>
> Also added these command to boot.scr but still observing the failure

You need to use proper env for setting fdt address (the "fdt addr
${fdtaddr}" command). For some versions it was ${fdt_addr}, the other
used ${fdtaddr}. Please check which one is used for loading dtb and
adjust the script.

Best regards

--
Marek Szyprowski, PhD
Samsung R&D Institute Poland