
Hi Fabio,
I get an error by applying your patches:
aarch64: + imx8mm-cl-iot-gate-optee +===================== WARNING ====================== +This board does not use CONFIG_DM_SERIAL (Driver Model +for Serial drivers). Please update the board to use +CONFIG_DM_SERIAL before the v2023.04 release. Failure to +update by the deadline may result in board removal. +See doc/develop/driver-model/migration.rst for more info. +==================================================== +aarch64-linux-ld.bfd: board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.o: in function `setup_mac_address': +board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c:449: undefined reference to `i2c_eeprom_read' +aarch64-linux-ld.bfd: board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.o: in function `read_serial_number': +board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c:490: undefined reference to `i2c_eeprom_read' +make[1]: *** [Makefile:1810: u-boot] Error 139 +make[1]: *** Deleting file 'u-boot' +make: *** [Makefile:177: sub-make] Error 2
Can you check and repost, please ?
Best regards, Stefano
On 19.03.22 13:22, Fabio Estevam wrote:
From: Fabio Estevam festevam@denx.de
Currently the eth0 MAC address is randomly assigned.
Retrieve the MAC address from EEPROM.
Signed-off-by: Fabio Estevam <festevam@denx.de
arch/arm/dts/imx8mm-cl-iot-gate.dts | 12 ++++- .../imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c | 51 +++++++++++++++++++ configs/imx8mm-cl-iot-gate_defconfig | 2 + 3 files changed, 64 insertions(+), 1 deletion(-)
diff --git a/arch/arm/dts/imx8mm-cl-iot-gate.dts b/arch/arm/dts/imx8mm-cl-iot-gate.dts index 62e8d0394933..425701204a0c 100644 --- a/arch/arm/dts/imx8mm-cl-iot-gate.dts +++ b/arch/arm/dts/imx8mm-cl-iot-gate.dts @@ -17,6 +17,11 @@ stdout-path = &uart3; };
- aliases {
eeprom0 = &i2c_eeprom0;
eeprom1 = &i2c_eeprom1;
- };
- reg_vusb_5v: regulator-usdhc2 { compatible = "regulator-fixed"; regulator-name = "VUSB_5V";
@@ -79,7 +84,7 @@ pinctrl-0 = <&pinctrl_i2c1>; status = "okay";
- eeprom@54 {
- i2c_eeprom0: eeprom@54 { compatible = "atmel,24c08"; reg = <0x54>; pagesize = <16>;
@@ -92,6 +97,11 @@ pinctrl-0 = <&pinctrl_i2c2>; status = "okay";
- i2c_eeprom1: eeprom@50 {
compatible = "atmel,24c08";
reg = <0x50>;
pagesize = <16>;
- }; rtc@69 { compatible = "abracon,ab1805"; reg = <0x69>;
diff --git a/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c b/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c index 7e2d88f449ce..779b64b140ad 100644 --- a/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c +++ b/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c @@ -12,6 +12,8 @@ #include <init.h> #include <miiphy.h> #include <netdev.h> +#include <i2c_eeprom.h> +#include <i2c.h>
#include <asm/arch/clock.h> #include <asm/arch/imx8mm_pins.h> @@ -418,12 +420,61 @@ int extension_board_scan(struct list_head *extension_list) return ret; }
+static int setup_mac_address(void) +{
- unsigned char enetaddr[6];
- struct udevice *dev;
- int ret, off;
- ret = eth_env_get_enetaddr("ethaddr", enetaddr);
- if (ret)
return 0;
- off = fdt_path_offset(gd->fdt_blob, "eeprom1");
- if (off < 0) {
printf("No eeprom0 path offset found in DT\n");
return off;
- }
- ret = uclass_get_device_by_of_offset(UCLASS_I2C_EEPROM, off, &dev);
- if (ret) {
printf("%s: Could not find EEPROM\n", __func__);
return ret;
- }
- ret = i2c_set_chip_offset_len(dev, 1);
- if (ret)
return ret;
- ret = i2c_eeprom_read(dev, 4, enetaddr, sizeof(enetaddr));
- if (ret) {
printf("%s: Could not read EEPROM\n", __func__);
return ret;
- }
- ret = is_valid_ethaddr(enetaddr);
- if (!ret)
return -EINVAL;
- ret = eth_env_set_enetaddr("ethaddr", enetaddr);
- if (ret)
return ret;
- return 0;
+}
int board_late_init(void) {
int ret;
if (IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG)) { env_set("board_name", "IOT-GATE-IMX8"); env_set("board_rev", "SBC-IOTMX8"); }
ret = setup_mac_address();
if (ret < 0)
printf("Cannot set MAC address from EEPROM\n");
return 0; }
diff --git a/configs/imx8mm-cl-iot-gate_defconfig b/configs/imx8mm-cl-iot-gate_defconfig index b72f219c786c..ee171f704ed9 100644 --- a/configs/imx8mm-cl-iot-gate_defconfig +++ b/configs/imx8mm-cl-iot-gate_defconfig @@ -84,6 +84,8 @@ CONFIG_FASTBOOT_FLASH_MMC_DEV=2 CONFIG_MXC_GPIO=y CONFIG_DM_I2C=y CONFIG_DM_KEYBOARD=y +CONFIG_MISC=y +CONFIG_I2C_EEPROM=y CONFIG_SUPPORT_EMMC_RPMB=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_USDHC=y