[PATCH] ARM: at91: sama5d27_som1_ek: populate MAC address from EEPROM
Alexander Dahl
ada at thorsis.com
Tue Jun 22 01:35:08 PDT 2021
Hei hei,
Am Tue, Jun 22, 2021 at 10:08:11AM +0200 schrieb Ahmad Fatoum:
> With the latest NVMEM enhancements merged, barebox networking core now
> always consults NVMEM cells referenced in the network controller
> device tree node before it falls back to randomizing a new address.
>
> The SAM5D27-SOM1 has a 256 byte EEPROM, which holds a MAC address in its
> last 6 bytes. Describe this in the device tree, so boards using the SoM
> will get an unique MAC address assigned and fixed up into the kernel
> device tree.
I have access to such a device, but I can not promise I have time to
test this currently. :-/
> This change can be dropped again when/if the change is
> submitted and applied upstream.
What do you mean with "upstream" here? Linux kernel?
I just had a short look into u-boot for that board, there's the i2c
eeprom set in dts only, and dts is still the old u-boot way, not dts
from kernel plus fixups in a separate file. The mac is set in
board/atmel/sama5d27_som1_ek/sama5d27_som1_ek.c like this:
87 #define MAC24AA_MAC_OFFSET 0xfa
88
89 #ifdef CONFIG_MISC_INIT_R
90 int misc_init_r(void)
91 {
92 #ifdef CONFIG_I2C_EEPROM
93 at91_set_ethaddr(MAC24AA_MAC_OFFSET);
94 #endif
95 return 0;
96 }
97 #endif
What would be the right way for kernel, u-boot, and barebox? Have i2c
eeprom defined in dts and an nvmem cell on top like you proposed for
barebox now? Not sure if u-boot can do that (already)? But it would
still work if only Linux and barebox did it that way, right?
Greets
Alex
>
> Reported-by: Alexander Dahl <ada at thorsis.com>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> arch/arm/dts/at91-sama5d27_som1.dtsi | 18 ++++++++++++++++++
> arch/arm/dts/at91-sama5d27_som1_ek.dts | 2 +-
> 2 files changed, 19 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/dts/at91-sama5d27_som1.dtsi
>
> diff --git a/arch/arm/dts/at91-sama5d27_som1.dtsi b/arch/arm/dts/at91-sama5d27_som1.dtsi
> new file mode 100644
> index 000000000000..0d84c45f9263
> --- /dev/null
> +++ b/arch/arm/dts/at91-sama5d27_som1.dtsi
> @@ -0,0 +1,18 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +#include "sama5d2.dtsi"
> +
> +&macb0 {
> + nvmem-cells = <&macaddr>;
> + nvmem-cell-names = "mac-address";
> +};
> +
> +&{/ahb/apb/i2c at f8028000/at24 at 50} {
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + macaddr: mac-address at fa {
> + reg = <0xfa 6>;
> + label = "mac-address";
> + };
> +};
> diff --git a/arch/arm/dts/at91-sama5d27_som1_ek.dts b/arch/arm/dts/at91-sama5d27_som1_ek.dts
> index 97a326dd2b26..1a704b42680f 100644
> --- a/arch/arm/dts/at91-sama5d27_som1_ek.dts
> +++ b/arch/arm/dts/at91-sama5d27_som1_ek.dts
> @@ -4,7 +4,7 @@
> */
>
> #include <arm/at91-sama5d27_som1_ek.dts>
> -#include "sama5d2.dtsi"
> +#include "at91-sama5d27_som1.dtsi"
>
> / {
> chosen {
> --
> 2.29.2
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
More information about the barebox
mailing list