
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@seco.com
Reviewed-by: Peng Fan peng.fan@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