
This matches AM64 and J721e and removes the need to forward declare k3_spl_init(), k3_mem_init(), and check_rom_loaded_sysfw() in sys_proto.h.
Signed-off-by: Andrew Davis afd@ti.com
Reviewed-by: Christian Gmeiner christian.gmeiner@gmail.com
arch/arm/mach-k3/include/mach/sys_proto.h | 3 -- arch/arm/mach-k3/j721s2_init.c | 64 +++++++++++++++++++++++ board/ti/j721s2/evm.c | 63 ---------------------- 3 files changed, 64 insertions(+), 66 deletions(-)
diff --git a/arch/arm/mach-k3/include/mach/sys_proto.h b/arch/arm/mach-k3/include/mach/sys_proto.h index 4b4e2a5be39..5638c6f8c8a 100644 --- a/arch/arm/mach-k3/include/mach/sys_proto.h +++ b/arch/arm/mach-k3/include/mach/sys_proto.h @@ -7,7 +7,4 @@ #ifndef _SYS_PROTO_H_ #define _SYS_PROTO_H_
-void k3_spl_init(void); -void k3_mem_init(void); -bool check_rom_loaded_sysfw(void); #endif diff --git a/arch/arm/mach-k3/j721s2_init.c b/arch/arm/mach-k3/j721s2_init.c index 4785a747bf3..175ac4028a0 100644 --- a/arch/arm/mach-k3/j721s2_init.c +++ b/arch/arm/mach-k3/j721s2_init.c @@ -19,6 +19,7 @@ #include <dm.h> #include <dm/uclass-internal.h> #include <dm/pinctrl.h> +#include <dm/root.h> #include <mmc.h> #include <remoteproc.h>
@@ -182,6 +183,69 @@ void k3_mem_init(void) spl_enable_dcache(); }
+/* Support for the various EVM / SK families */ +#if defined(CONFIG_SPL_OF_LIST) && defined(CONFIG_TI_I2C_BOARD_DETECT) +void do_dt_magic(void) +{
int ret, rescan, mmc_dev = -1;
static struct mmc *mmc;
do_board_detect();
/*
* Board detection has been done.
* Let us see if another dtb wouldn't be a better match
* for our board
*/
if (IS_ENABLED(CONFIG_CPU_V7R)) {
ret = fdtdec_resetup(&rescan);
if (!ret && rescan) {
dm_uninit();
dm_init_and_scan(true);
}
}
/*
* Because of multi DTB configuration, the MMC device has
* to be re-initialized after reconfiguring FDT inorder to
* boot from MMC. Do this when boot mode is MMC and ROM has
* not loaded SYSFW.
*/
switch (spl_boot_device()) {
case BOOT_DEVICE_MMC1:
mmc_dev = 0;
break;
case BOOT_DEVICE_MMC2:
case BOOT_DEVICE_MMC2_2:
mmc_dev = 1;
break;
}
if (mmc_dev > 0 && !check_rom_loaded_sysfw()) {
ret = mmc_init_device(mmc_dev);
if (!ret) {
mmc = find_mmc_device(mmc_dev);
if (mmc) {
ret = mmc_init(mmc);
if (ret)
printf("mmc init failed with error: %d\n", ret);
}
}
}
+} +#endif
+#ifdef CONFIG_SPL_BUILD +void board_init_f(ulong dummy) +{
k3_spl_init();
+#if defined(CONFIG_SPL_OF_LIST) && defined(CONFIG_TI_I2C_BOARD_DETECT)
do_dt_magic();
+#endif
k3_mem_init();
+} +#endif
u32 spl_mmc_boot_mode(struct mmc *mmc, const u32 boot_device) { switch (boot_device) { diff --git a/board/ti/j721s2/evm.c b/board/ti/j721s2/evm.c index 9b130c141ac..d3f9a655899 100644 --- a/board/ti/j721s2/evm.c +++ b/board/ti/j721s2/evm.c @@ -192,66 +192,3 @@ int board_late_init(void) void spl_board_init(void) { }
-/* Support for the various EVM / SK families */ -#if defined(CONFIG_SPL_OF_LIST) && defined(CONFIG_TI_I2C_BOARD_DETECT) -void do_dt_magic(void) -{
int ret, rescan, mmc_dev = -1;
static struct mmc *mmc;
do_board_detect();
/*
* Board detection has been done.
* Let us see if another dtb wouldn't be a better match
* for our board
*/
if (IS_ENABLED(CONFIG_CPU_V7R)) {
ret = fdtdec_resetup(&rescan);
if (!ret && rescan) {
dm_uninit();
dm_init_and_scan(true);
}
}
/*
* Because of multi DTB configuration, the MMC device has
* to be re-initialized after reconfiguring FDT inorder to
* boot from MMC. Do this when boot mode is MMC and ROM has
* not loaded SYSFW.
*/
switch (spl_boot_device()) {
case BOOT_DEVICE_MMC1:
mmc_dev = 0;
break;
case BOOT_DEVICE_MMC2:
case BOOT_DEVICE_MMC2_2:
mmc_dev = 1;
break;
}
if (mmc_dev > 0 && !check_rom_loaded_sysfw()) {
ret = mmc_init_device(mmc_dev);
if (!ret) {
mmc = find_mmc_device(mmc_dev);
if (mmc) {
ret = mmc_init(mmc);
if (ret)
printf("mmc init failed with error: %d\n", ret);
}
}
}
-} -#endif
-#ifdef CONFIG_SPL_BUILD -void board_init_f(ulong dummy) -{
k3_spl_init();
-#if defined(CONFIG_SPL_OF_LIST) && defined(CONFIG_TI_I2C_BOARD_DETECT)
do_dt_magic();
-#endif
k3_mem_init();
-}
-#endif
2.39.2