[PATCH 2/3] arm: layerscape: Disable unused parts of ICID tables

Peng Fan peng.fan at oss.nxp.com
Fri Oct 14 02:40:34 CEST 2022



On 10/12/2022 5:51 AM, Sean Anderson wrote:
> Several parts of the ICID table are only necessary for U-Boot proper.
> Disable them in SPL. This saves around 500 bytes.
> 
> Signed-off-by: Sean Anderson <sean.anderson at seco.com>

Reviewed-by: Peng Fan <peng.fan at nxp.com>

> ---
> 
>   arch/arm/cpu/armv8/fsl-layerscape/icid.c         |  2 ++
>   .../include/asm/arch-fsl-layerscape/fsl_icid.h   | 16 ++++++++++++++--
>   2 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/icid.c b/arch/arm/cpu/armv8/fsl-layerscape/icid.c
> index 25cd82f16eb..2d87281ec21 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/icid.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/icid.c
> @@ -46,6 +46,7 @@ void set_icids(void)
>   #endif
>   }
>   
> +#ifndef CONFIG_SPL_BUILD
>   int fdt_set_iommu_prop(void *blob, int off, int smmu_ph, u32 *ids, int num_ids)
>   {
>   	int i, ret;
> @@ -190,3 +191,4 @@ void fdt_fixup_icid(void *blob)
>   	fdt_fixup_fman_icids(blob, smmu_ph);
>   #endif
>   }
> +#endif
> diff --git a/arch/arm/include/asm/arch-fsl-layerscape/fsl_icid.h b/arch/arm/include/asm/arch-fsl-layerscape/fsl_icid.h
> index 3c06a55cb85..8af0d35d27b 100644
> --- a/arch/arm/include/asm/arch-fsl-layerscape/fsl_icid.h
> +++ b/arch/arm/include/asm/arch-fsl-layerscape/fsl_icid.h
> @@ -12,11 +12,15 @@
>   #include <asm/armv8/sec_firmware.h>
>   
>   struct icid_id_table {
> +#ifndef CONFIG_SPL_BUILD
>   	const char *compat;
> -	u32 id;
> -	u32 reg;
>   	phys_addr_t compat_addr;
> +#endif
>   	phys_addr_t reg_addr;
> +	u32 reg;
> +#ifndef CONFIG_SPL_BUILD
> +	u32 id;
> +#endif
>   	bool le;
>   };
>   
> @@ -31,6 +35,13 @@ int fdt_set_iommu_prop(void *blob, int off, int smmu_ph, u32 *ids, int num_ids);
>   void set_icids(void);
>   void fdt_fixup_icid(void *blob);
>   
> +#ifdef CONFIG_SPL_BUILD
> +#define SET_ICID_ENTRY(name, idA, regA, addr, compataddr, _le) \
> +	{ .reg = regA, \
> +	  .reg_addr = addr, \
> +	  .le = _le \
> +	}
> +#else
>   #define SET_ICID_ENTRY(name, idA, regA, addr, compataddr, _le) \
>   	{ .compat = name, \
>   	  .id = idA, \
> @@ -39,6 +50,7 @@ void fdt_fixup_icid(void *blob);
>   	  .reg_addr = addr, \
>   	  .le = _le \
>   	}
> +#endif
>   
>   #ifdef CONFIG_SYS_FSL_SEC_LE
>   #define SEC_IS_LE true


More information about the U-Boot mailing list