diff options
author | Sean Anderson | 2022-05-05 13:11:42 -0400 |
---|---|---|
committer | Tom Rini | 2022-06-08 14:00:22 -0400 |
commit | 472caa69e3480dc8e3fe1dd929b528a599341768 (patch) | |
tree | e82b1ea4c9f312463ec7b9da9932867852778318 | |
parent | 97d0f9bfdd025f0e7db8ff09238fe88d039c2a70 (diff) |
test: Load mac address with i2c eeprom
This uses an i2c eeprom to load a mac address using the nvmem interface.
Enable I2C_EEPROM for sandbox SPL since it is the only sandbox config
which doesn't enable it eeprom.
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | arch/sandbox/dts/test.dts | 9 | ||||
-rw-r--r-- | configs/sandbox_spl_defconfig | 1 | ||||
-rw-r--r-- | drivers/misc/i2c_eeprom_emul.c | 4 |
3 files changed, 13 insertions, 1 deletions
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts index 13515dd7ecf..4d0fd474abe 100644 --- a/arch/sandbox/dts/test.dts +++ b/arch/sandbox/dts/test.dts @@ -538,7 +538,8 @@ eth_3: sbe5 { compatible = "sandbox,eth"; reg = <0x10005000 0x1000>; - mac-address = [ 02 00 11 22 33 45 ]; + nvmem-cells = <ð3_addr>; + nvmem-cell-names = "mac-address"; }; eth@10004000 { @@ -701,6 +702,8 @@ pinctrl-0 = <&pinmux_i2c0_pins>; eeprom@2c { + #address-cells = <1>; + #size-cells = <1>; reg = <0x2c>; compatible = "i2c-eeprom"; sandbox,emul = <&emul_eeprom>; @@ -712,6 +715,10 @@ reg = <10 2>; }; }; + + eth3_addr: mac-address@24 { + reg = <24 6>; + }; }; rtc_0: rtc@43 { diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig index b45f4782fd0..ec2d26d4436 100644 --- a/configs/sandbox_spl_defconfig +++ b/configs/sandbox_spl_defconfig @@ -155,6 +155,7 @@ CONFIG_CROS_EC_SPI=y CONFIG_P2SB=y CONFIG_PWRSEQ=y CONFIG_SPL_PWRSEQ=y +CONFIG_I2C_EEPROM=y CONFIG_MMC_SANDBOX=y CONFIG_SPI_FLASH_SANDBOX=y CONFIG_SPI_FLASH_ATMEL=y diff --git a/drivers/misc/i2c_eeprom_emul.c b/drivers/misc/i2c_eeprom_emul.c index 85b127c406c..6f32087ede5 100644 --- a/drivers/misc/i2c_eeprom_emul.c +++ b/drivers/misc/i2c_eeprom_emul.c @@ -171,11 +171,15 @@ static int sandbox_i2c_eeprom_probe(struct udevice *dev) { struct sandbox_i2c_flash_plat_data *plat = dev_get_plat(dev); struct sandbox_i2c_flash *priv = dev_get_priv(dev); + /* For eth3 */ + const u8 mac[] = { 0x02, 0x00, 0x11, 0x22, 0x33, 0x45 }; priv->data = calloc(1, plat->size); if (!priv->data) return -ENOMEM; + memcpy(&priv->data[24], mac, sizeof(mac)); + return 0; } |