Re: [PATCH 01/12] arm: mach-k3: Move MSMC fixup to SoC level

Christian Gmeiner
2023-04-02T10:48:09Z

Am Do., 30. März 2023 um 22:31 Uhr schrieb Andrew Davis <afd@ti.com>:
>
> The MSMC fixup is something we do based on SoC, not based on the board.
> So this fixup does not belong in the board files. Move this to the
> mach-k3 common file so that it does not have to be done in each board
> that uses these SoCs.
>
> We use ft_system_setup() here instead of ft_board_setup() since it is no
> longer board level. Enable OF_SYSTEM_SETUP in the configurations that use
> this to keep functionality the same.
>
> Signed-off-by: Andrew Davis <afd@ti.com>

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>

> ---
> arch/arm/mach-k3/common.c | 16 ++++++++++++++++
> arch/arm/mach-k3/include/mach/sys_proto.h | 1 -
> board/siemens/iot2050/board.c | 16 ----------------
> board/ti/am65x/evm.c | 18 ------------------
> board/ti/j721e/evm.c | 11 +----------
> board/ti/j721s2/evm.c | 16 ----------------
> configs/am65x_evm_a53_defconfig | 2 +-
> configs/am65x_hs_evm_a53_defconfig | 2 +-
> configs/iot2050_defconfig | 2 +-
> configs/j7200_evm_a72_defconfig | 1 +
> configs/j7200_hs_evm_a72_defconfig | 1 +
> configs/j721e_evm_a72_defconfig | 1 +
> configs/j721e_hs_evm_a72_defconfig | 1 +
> configs/j721s2_evm_a72_defconfig | 2 +-
> configs/j721s2_hs_evm_a72_defconfig | 2 +-
> 15 files changed, 26 insertions(+), 66 deletions(-)
>
> diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c
> index a2adb791f6c..6870f13c520 100644
> --- a/arch/arm/mach-k3/common.c
> +++ b/arch/arm/mach-k3/common.c
> @@ -386,6 +386,22 @@ int fdt_disable_node(void *blob, char *node_path)
> return 0;
> }
>
> +#if defined(CONFIG_OF_SYSTEM_SETUP)
> +int ft_system_setup(void *blob, struct bd_info *bd)
> +{
> + int ret;
> +
> + ret = fdt_fixup_msmc_ram(blob, "/bus@100000", "sram@70000000");
> + if (ret < 0)
> + ret = fdt_fixup_msmc_ram(blob, "/interconnect@100000",
> + "sram@70000000");
> + if (ret)
> + printf("%s: fixing up msmc ram failed %d\n", __func__, ret);
> +
> + return ret;
> +}
> +#endif
> +
> #endif
>
> #ifndef CONFIG_SYSRESET
> diff --git a/arch/arm/mach-k3/include/mach/sys_proto.h b/arch/arm/mach-k3/include/mach/sys_proto.h
> index 3d3d90d02d6..0b5d606eaa2 100644
> --- a/arch/arm/mach-k3/include/mach/sys_proto.h
> +++ b/arch/arm/mach-k3/include/mach/sys_proto.h
> @@ -11,7 +11,6 @@ void sdelay(unsigned long loops);
> u32 wait_on_value(u32 read_bit_mask, u32 match_value, void *read_addr,
> u32 bound);
> struct ti_sci_handle *get_ti_sci_handle(void);
> -int fdt_fixup_msmc_ram(void *blob, char *parent_path, char *node_name);
> int do_board_detect(void);
> void release_resources_for_core_shutdown(void);
> int fdt_disable_node(void *blob, char *node_path);
> diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c
> index 8f4b0eae495..8b0506e4cb9 100644
> --- a/board/siemens/iot2050/board.c
> +++ b/board/siemens/iot2050/board.c
> @@ -230,22 +230,6 @@ int board_late_init(void)
> return 0;
> }
>
> -#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> -int ft_board_setup(void *blob, struct bd_info *bd)
> -{
> - int ret;
> -
> - ret = fdt_fixup_msmc_ram(blob, "/bus@100000", "sram@70000000");
> - if (ret < 0)
> - ret = fdt_fixup_msmc_ram(blob, "/interconnect@100000",
> - "sram@70000000");
> - if (ret)
> - pr_err("%s: fixing up msmc ram failed %d\n", __func__, ret);
> -
> - return ret;
> -}
> -#endif
> -
> void spl_board_init(void)
> {
> }
> diff --git a/board/ti/am65x/evm.c b/board/ti/am65x/evm.c
> index b266ccb4b82..4053b8333cf 100644
> --- a/board/ti/am65x/evm.c
> +++ b/board/ti/am65x/evm.c
> @@ -101,24 +101,6 @@ int board_fit_config_name_match(const char *name)
> }
> #endif
>
> -#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> -int ft_board_setup(void *blob, struct bd_info *bd)
> -{
> - int ret;
> -
> - ret = fdt_fixup_msmc_ram(blob, "/bus@100000", "sram@70000000");
> - if (ret < 0)
> - ret = fdt_fixup_msmc_ram(blob, "/interconnect@100000",
> - "sram@70000000");
> - if (ret) {
> - printf("%s: fixing up msmc ram failed %d\n", __func__, ret);
> - return ret;
> - }
> -
> - return 0;
> -}
> -#endif
> -
> #ifdef CONFIG_TI_I2C_BOARD_DETECT
> int do_board_detect(void)
> {
> diff --git a/board/ti/j721e/evm.c b/board/ti/j721e/evm.c
> index d4e672a7acd..00ce009d3e8 100644
> --- a/board/ti/j721e/evm.c
> +++ b/board/ti/j721e/evm.c
> @@ -144,18 +144,9 @@ void spl_perform_fixups(struct spl_image_info *spl_image)
> #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> int ft_board_setup(void *blob, struct bd_info *bd)
> {
> - int ret;
> -
> - ret = fdt_fixup_msmc_ram(blob, "/bus@100000", "sram@70000000");
> - if (ret < 0)
> - ret = fdt_fixup_msmc_ram(blob, "/interconnect@100000",
> - "sram@70000000");
> - if (ret)
> - printf("%s: fixing up msmc ram failed %d\n", __func__, ret);
> -
> detect_enable_hyperflash(blob);
>
> - return ret;
> + return 0;
> }
> #endif
>
> diff --git a/board/ti/j721s2/evm.c b/board/ti/j721s2/evm.c
> index c86715fa211..9b130c141ac 100644
> --- a/board/ti/j721s2/evm.c
> +++ b/board/ti/j721s2/evm.c
> @@ -73,22 +73,6 @@ int dram_init_banksize(void)
> return 0;
> }
>
> -#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
> -int ft_board_setup(void *blob, struct bd_info *bd)
> -{
> - int ret;
> -
> - ret = fdt_fixup_msmc_ram(blob, "/bus@100000", "sram@70000000");
> - if (ret < 0)
> - ret = fdt_fixup_msmc_ram(blob, "/interconnect@100000",
> - "sram@70000000");
> - if (ret)
> - printf("%s: fixing up msmc ram failed %d\n", __func__, ret);
> -
> - return ret;
> -}
> -#endif
> -
> #ifdef CONFIG_TI_I2C_BOARD_DETECT
> /*
> * Functions specific to EVM and SK designs of J721S2/AM68 family.
> diff --git a/configs/am65x_evm_a53_defconfig b/configs/am65x_evm_a53_defconfig
> index bddd94ce80e..4af274e06d6 100644
> --- a/configs/am65x_evm_a53_defconfig
> +++ b/configs/am65x_evm_a53_defconfig
> @@ -30,7 +30,7 @@ CONFIG_SPL_SPI=y
> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
> -CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run distro_bootcmd; run init_${boot}; run boot_rprocs; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern"
> CONFIG_LOGLEVEL=7
> diff --git a/configs/am65x_hs_evm_a53_defconfig b/configs/am65x_hs_evm_a53_defconfig
> index 898403aad98..bdd4b6420dd 100644
> --- a/configs/am65x_hs_evm_a53_defconfig
> +++ b/configs/am65x_hs_evm_a53_defconfig
> @@ -30,7 +30,7 @@ CONFIG_SPL_SPI=y
> # CONFIG_PSCI_RESET is not set
> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> CONFIG_SPL_LOAD_FIT=y
> -CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run get_fit_${boot}; run get_overlaystring; run run_fit"
> CONFIG_LOGLEVEL=7
> diff --git a/configs/iot2050_defconfig b/configs/iot2050_defconfig
> index 57387edcb41..95a6418d0ae 100644
> --- a/configs/iot2050_defconfig
> +++ b/configs/iot2050_defconfig
> @@ -27,7 +27,7 @@ CONFIG_SPL_SPI_FLASH_SUPPORT=y
> CONFIG_SPL_SPI=y
> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> CONFIG_SPL_LOAD_FIT=y
> -CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTSTAGE=y
> CONFIG_SHOW_BOOT_PROGRESS=y
> diff --git a/configs/j7200_evm_a72_defconfig b/configs/j7200_evm_a72_defconfig
> index 9b6512bacba..f9299780f71 100644
> --- a/configs/j7200_evm_a72_defconfig
> +++ b/configs/j7200_evm_a72_defconfig
> @@ -31,6 +31,7 @@ CONFIG_SPL_SPI=y
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
> CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run boot_rprocs; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern"
> CONFIG_LOGLEVEL=7
> diff --git a/configs/j7200_hs_evm_a72_defconfig b/configs/j7200_hs_evm_a72_defconfig
> index cfd2e80aded..e83525bcb5e 100644
> --- a/configs/j7200_hs_evm_a72_defconfig
> +++ b/configs/j7200_hs_evm_a72_defconfig
> @@ -32,6 +32,7 @@ CONFIG_SPL_SPI=y
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
> CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run boot_rprocs; run get_fit_${boot}; run get_overlaystring; run run_fit"
> CONFIG_LOGLEVEL=7
> diff --git a/configs/j721e_evm_a72_defconfig b/configs/j721e_evm_a72_defconfig
> index 452e4b9695d..46ad1b7d1a1 100644
> --- a/configs/j721e_evm_a72_defconfig
> +++ b/configs/j721e_evm_a72_defconfig
> @@ -29,6 +29,7 @@ CONFIG_SPL_SPI=y
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
> CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run distro_bootcmd; run init_${boot}; run main_cpsw0_qsgmii_phyinit; run boot_rprocs; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern"
> CONFIG_LOGLEVEL=7
> diff --git a/configs/j721e_hs_evm_a72_defconfig b/configs/j721e_hs_evm_a72_defconfig
> index 651df4a4865..df4bf01daf9 100644
> --- a/configs/j721e_hs_evm_a72_defconfig
> +++ b/configs/j721e_hs_evm_a72_defconfig
> @@ -30,6 +30,7 @@ CONFIG_SPL_SPI=y
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
> CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run main_cpsw0_qsgmii_phyinit; run boot_rprocs; run get_fit_${boot}; run get_overlay_${boot}; run run_fit"
> CONFIG_LOGLEVEL=7
> diff --git a/configs/j721s2_evm_a72_defconfig b/configs/j721s2_evm_a72_defconfig
> index 3a91df71d37..9889e1bd523 100644
> --- a/configs/j721s2_evm_a72_defconfig
> +++ b/configs/j721s2_evm_a72_defconfig
> @@ -28,7 +28,7 @@ CONFIG_SPL_SPI=y
> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
> -CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run boot_rprocs; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern"
> CONFIG_LOGLEVEL=7
> diff --git a/configs/j721s2_hs_evm_a72_defconfig b/configs/j721s2_hs_evm_a72_defconfig
> index 453f2aabbfc..035d87b49f1 100644
> --- a/configs/j721s2_hs_evm_a72_defconfig
> +++ b/configs/j721s2_hs_evm_a72_defconfig
> @@ -31,7 +31,7 @@ CONFIG_SPL_SPI=y
> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> CONFIG_SPL_LOAD_FIT=y
> CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
> -CONFIG_OF_BOARD_SETUP=y
> +CONFIG_OF_SYSTEM_SETUP=y
> CONFIG_DISTRO_DEFAULTS=y
> CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run boot_rprocs; run get_fit_${boot}; run get_overlaystring; run run_fit"
> CONFIG_LOGLEVEL=7
> --
> 2.39.2
>

--
greets
--
Christian Gmeiner, MSc