[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