[PATCH] board: phytec: phycore-imx93: Fix EEPROM bus mismatch in SPL

Wadim Egorov w.egorov at phytec.de
Tue Aug 19 08:25:23 CEST 2025


Hi Primoz,

we just introduced CONFIG_PHYTEC_EEPROM_BUS [1]. Can you check if it is 
relevant for this board?

[1] https://lists.denx.de/pipermail/u-boot/2025-August/596708.html

Regards,
Wadim


On 8/19/25 8:39 AM, Primoz Fiser wrote:
> Fix PHYTEC EEPROM bus mismatch between SPL and U-Boot proper by enabling
> CONFIG_SPL_DM_SEQ_ALIAS=y on phyCORE-i.MX93 boards. This way, both the
> SPL and U-Boot proper will respect the device-tree aliases for I2C devs
> and use the same I2C bus number for phytec_eeprom_data_setup() function
> calls. This makes code less confusing and more robust.
> 
> Fixes an issue apparent since commit 79f3e77133bd ("Subtree merge tag
> 'v6.16-dts' of dts repo [1] into dts/upstream") where SPL would spew the
> following error:
> 
>    phytec_eeprom_read: i2c EEPROM not found: -110.
>    phytec_eeprom_data_setup: EEPROM data init failed
> 
> While later in U-Boot proper, EEPROM would be successfully read out.
> This happens because Linux device-tree for phyBOARD-Segin-i.MX93 since
> aforementioned commit enables I2C bus 2 (lpi2c2 is used for audio codec
> and RTC) which breaks SPL I2C bus number ordering and I2C EEPROM bus is
> shifted by +1. Now, lets prevent this from happening again by utilizing
> device-tree aliases also in the SPL.
> 
> Signed-off-by: Primoz Fiser <primoz.fiser at norik.com>
> ---
>   board/phytec/phycore_imx93/spl.c | 3 +--
>   configs/imx93-phycore_defconfig  | 1 +
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/board/phytec/phycore_imx93/spl.c b/board/phytec/phycore_imx93/spl.c
> index 7b5d38d438f2..beaa536c6007 100644
> --- a/board/phytec/phycore_imx93/spl.c
> +++ b/board/phytec/phycore_imx93/spl.c
> @@ -52,8 +52,7 @@ void spl_dram_init(void)
>   	int ret;
>   	enum phytec_imx93_ddr_eeprom_code ddr_opt = PHYTEC_IMX93_DDR_INVALID;
>   
> -	/* NOTE: In SPL lpi2c3 is mapped to bus 0 */
> -	ret = phytec_eeprom_data_setup(NULL, 0, EEPROM_ADDR);
> +	ret = phytec_eeprom_data_setup(NULL, 2, EEPROM_ADDR);
>   	if (ret && !IS_ENABLED(CONFIG_PHYCORE_IMX93_RAM_TYPE_FIX))
>   		goto out;
>   
> diff --git a/configs/imx93-phycore_defconfig b/configs/imx93-phycore_defconfig
> index 6210be646723..af149128ed41 100644
> --- a/configs/imx93-phycore_defconfig
> +++ b/configs/imx93-phycore_defconfig
> @@ -92,6 +92,7 @@ CONFIG_USE_ETHPRIME=y
>   CONFIG_ETHPRIME="eth1"
>   CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_SPL_DM=y
> +CONFIG_SPL_DM_SEQ_ALIAS=y
>   CONFIG_SPL_CLK_IMX93=y
>   CONFIG_CLK_IMX93=y
>   CONFIG_DFU_MMC=y



More information about the U-Boot mailing list