Select the OF_BOARD_FIXUP and implement board_fix_fdt in board codes of iMX95/952/94 EVK to handle fuse setting on various part numbers.
Signed-off-by: Ye Li <[email protected]> --- arch/arm/mach-imx/imx9/Kconfig | 4 ++++ board/nxp/imx94_evk/imx94_evk.c | 10 +++++++++- board/nxp/imx952_evk/imx952_evk.c | 8 ++++++++ board/nxp/imx95_evk/imx95_evk.c | 10 +++++++++- configs/imx943_evk_defconfig | 1 - configs/imx952_evk_defconfig | 1 - 6 files changed, 30 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig index f072e6a9e3d..1e7245c74e0 100644 --- a/arch/arm/mach-imx/imx9/Kconfig +++ b/arch/arm/mach-imx/imx9/Kconfig @@ -146,6 +146,7 @@ config TARGET_PHYCORE_IMX93 config TARGET_IMX95_19X19_EVK bool "imx95_19x19_evk" + select OF_BOARD_FIXUP select IMX95 imply BOOTSTD_BOOTCOMMAND imply BOOTSTD_FULL @@ -153,6 +154,7 @@ config TARGET_IMX95_19X19_EVK config TARGET_IMX95_15X15_EVK bool "imx95_15x15_evk" + select OF_BOARD_FIXUP select IMX95 imply BOOTSTD_BOOTCOMMAND imply BOOTSTD_FULL @@ -160,6 +162,7 @@ config TARGET_IMX95_15X15_EVK config TARGET_IMX943_EVK bool "imx943_evk" + select OF_BOARD_FIXUP select IMX94 imply BOOTSTD_BOOTCOMMAND imply BOOTSTD_FULL @@ -176,6 +179,7 @@ config TARGET_VERDIN_IMX95 config TARGET_IMX952_EVK bool "imx952_evk" + select OF_BOARD_FIXUP select IMX_SM_CPU select IMX_SM_LMM select IMX952 diff --git a/board/nxp/imx94_evk/imx94_evk.c b/board/nxp/imx94_evk/imx94_evk.c index 4731b79b55d..02149afae87 100644 --- a/board/nxp/imx94_evk/imx94_evk.c +++ b/board/nxp/imx94_evk/imx94_evk.c @@ -7,7 +7,7 @@ #include <fdt_support.h> #include <asm/gpio.h> #include <asm/arch/clock.h> -#include <asm/mach-imx/sys_proto.h> +#include <asm/arch/sys_proto.h> int board_init(void) { @@ -26,3 +26,11 @@ int board_late_init(void) return 0; } + +#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP) +int board_fix_fdt(void *fdt) +{ + /* Remove nodes based on fuses. */ + return imx9_uboot_fixup_by_fuse(fdt); +} +#endif diff --git a/board/nxp/imx952_evk/imx952_evk.c b/board/nxp/imx952_evk/imx952_evk.c index 2a61817939e..b5c2da032a8 100644 --- a/board/nxp/imx952_evk/imx952_evk.c +++ b/board/nxp/imx952_evk/imx952_evk.c @@ -24,3 +24,11 @@ int board_late_init(void) return 0; } + +#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP) +int board_fix_fdt(void *fdt) +{ + /* Remove nodes based on fuses. */ + return imx9_uboot_fixup_by_fuse(fdt); +} +#endif diff --git a/board/nxp/imx95_evk/imx95_evk.c b/board/nxp/imx95_evk/imx95_evk.c index 99a37e0593f..394d6fd459c 100644 --- a/board/nxp/imx95_evk/imx95_evk.c +++ b/board/nxp/imx95_evk/imx95_evk.c @@ -5,7 +5,7 @@ #include <asm/gpio.h> #include <asm/arch/clock.h> -#include <asm/mach-imx/sys_proto.h> +#include <asm/arch/sys_proto.h> int board_late_init(void) { @@ -14,3 +14,11 @@ int board_late_init(void) return 0; } + +#if IS_ENABLED(CONFIG_OF_BOARD_FIXUP) +int board_fix_fdt(void *fdt) +{ + /* Remove nodes based on fuses. */ + return imx9_uboot_fixup_by_fuse(fdt); +} +#endif diff --git a/configs/imx943_evk_defconfig b/configs/imx943_evk_defconfig index 70265f13bba..6fca85a3242 100644 --- a/configs/imx943_evk_defconfig +++ b/configs/imx943_evk_defconfig @@ -26,7 +26,6 @@ CONFIG_SYS_LOAD_ADDR=0x90400000 CONFIG_SPL=y CONFIG_SPL_RECOVER_DATA_SECTION=y CONFIG_PCI=y -CONFIG_OF_BOARD_FIXUP=y CONFIG_SYS_MEMTEST_START=0x90000000 CONFIG_SYS_MEMTEST_END=0xA0000000 CONFIG_REMAKE_ELF=y diff --git a/configs/imx952_evk_defconfig b/configs/imx952_evk_defconfig index 66a56ddb879..b74df3a5d5f 100644 --- a/configs/imx952_evk_defconfig +++ b/configs/imx952_evk_defconfig @@ -28,7 +28,6 @@ CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0x0 CONFIG_SPL=y CONFIG_SPL_RECOVER_DATA_SECTION=y CONFIG_PCI=y -CONFIG_OF_BOARD_FIXUP=y CONFIG_SYS_MEMTEST_START=0x90000000 CONFIG_SYS_MEMTEST_END=0xA0000000 CONFIG_REMAKE_ELF=y -- 2.50.1

