[PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3

Vivian Wang wangruikang at iscas.ac.cn
Mon Sep 22 23:32:43 PDT 2025


Hi Aurelien,

On 9/22/25 05:01, Aurelien Jarno wrote:
> The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> MAC addresses of the two network interfaces. For this reason, mark it as
> read-only.
>
> Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
> ---
>  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> index 3b6e4f52e9aad..574d10fdf9b82 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> @@ -115,6 +115,15 @@ &i2c2 {
>  	pinctrl-0 = <&i2c2_0_cfg>;
>  	pinctrl-names = "default";
>  	status = "okay";
> +
> +	eeprom at 50 {
> +		compatible = "atmel,24c02";
> +		reg = <0x50>;
> +		vcc-supply = <&vcc1v8_sys>;
> +		pagesize = <16>;
> +		read-only;
> +		size = <256>;
> +	};
>  };
>  

I wonder if it would possibly make sense to specify a nvmem-layout here.
The BPI-F3 I have here has this in the 24c02:

00000000  54 6c 76 49 6e 66 6f 00  01 00 20 24 06 fe fe fe  |TlvInfo... $....|
00000010  XX XX XX 2a 02 00 02 23  0c XX XX XX XX XX XX XX  |...*...#.XXXXXXX|
00000020  XX XX XX XX XX fe 04 XX  XX XX XX ff ff ff ff ff  |XXXXX..XXXX.....|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000100

(... with variable parts replaced with X)

And, AFAICT, this is a "onie,tlv-layout" with fields:

0x24 mac-adddress
0x2a num-macs
0x23 serial-number
0xfe crc32

As you can see the mac-address assignment looks bogus with fe:fe:fe (it
is used by vendor code though, so at least it seems to be intended). It
does appear at least to have useful information.

Can you confirm on your hardware? What do you think about this: should
we add it now or add it when we have users?

Vivian "dramforever" Wang




More information about the linux-riscv mailing list