[PATCH v2 11/12] arm: mach-k3: Move J721s2 SPL init functions to mach-k3
Christian Gmeiner
christian.gmeiner at gmail.com
Thu Apr 6 11:22:06 CEST 2023
>
> 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 at ti.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner at 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
>
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info/privacypolicy
More information about the U-Boot
mailing list