diff options
author | Joanna Farley <joanna.farley@arm.com> | 2023-02-25 01:15:09 +0100 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2023-02-25 01:15:09 +0100 |
commit | 3d2da6f5d3a931d97e0294f0a565b1810a55ab98 (patch) | |
tree | 44834494e397d6c48e9b70bb1dbb72aeec0c620a | |
parent | 295f0d849807de7fe226f9a9c6434d3d5b75912f (diff) | |
parent | 70134000842cbc7c052031dd453bdec8f4cb73f1 (diff) | |
download | arm-trusted-firmware-3d2da6f5d3a931d97e0294f0a565b1810a55ab98.tar.gz |
Merge "feat(zynqmp): add hooks for mmap and early setup" into integration
-rw-r--r-- | plat/xilinx/zynqmp/bl31_zynqmp_setup.c | 6 | ||||
-rw-r--r-- | plat/xilinx/zynqmp/custom_sip_svc.c | 8 | ||||
-rw-r--r-- | plat/xilinx/zynqmp/include/custom_svc.h | 3 | ||||
-rw-r--r-- | plat/xilinx/zynqmp/include/platform_def.h | 11 |
4 files changed, 27 insertions, 1 deletions
diff --git a/plat/xilinx/zynqmp/bl31_zynqmp_setup.c b/plat/xilinx/zynqmp/bl31_zynqmp_setup.c index 6bc571669..1d963e82a 100644 --- a/plat/xilinx/zynqmp/bl31_zynqmp_setup.c +++ b/plat/xilinx/zynqmp/bl31_zynqmp_setup.c @@ -17,6 +17,7 @@ #include <plat/common/platform.h> #include <lib/mmio.h> +#include <custom_svc.h> #include <plat_startup.h> #include <plat_private.h> #include <zynqmp_def.h> @@ -129,6 +130,9 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, if (bl33_image_ep_info.pc != 0) { VERBOSE("BL31: Non secure code at 0x%lx\n", bl33_image_ep_info.pc); } + + custom_early_setup(); + } #if ZYNQMP_WDT_RESTART @@ -262,6 +266,8 @@ void bl31_plat_arch_setup(void) {0} }; + custom_mmap_add(); + setup_page_tables(bl_regions, plat_arm_get_mmap()); enable_mmu_el3(0); } diff --git a/plat/xilinx/zynqmp/custom_sip_svc.c b/plat/xilinx/zynqmp/custom_sip_svc.c index 459aa39f2..fbb0a33f7 100644 --- a/plat/xilinx/zynqmp/custom_sip_svc.c +++ b/plat/xilinx/zynqmp/custom_sip_svc.c @@ -15,3 +15,11 @@ uint64_t custom_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, WARN("Unimplemented SiP Service Call: 0x%x\n", smc_fid); SMC_RET1(handle, SMC_UNK); } + +void custom_early_setup(void) +{ +} + +void custom_mmap_add(void) +{ +} diff --git a/plat/xilinx/zynqmp/include/custom_svc.h b/plat/xilinx/zynqmp/include/custom_svc.h index 389a7bcd7..ef0eb675c 100644 --- a/plat/xilinx/zynqmp/include/custom_svc.h +++ b/plat/xilinx/zynqmp/include/custom_svc.h @@ -13,4 +13,7 @@ uint64_t custom_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4, void *cookie, void *handle, uint64_t flags); +void custom_early_setup(void); +void custom_mmap_add(void); + #endif /* CUSTOM_SVC_H */ diff --git a/plat/xilinx/zynqmp/include/platform_def.h b/plat/xilinx/zynqmp/include/platform_def.h index ffed0eee7..b46eb636e 100644 --- a/plat/xilinx/zynqmp/include/platform_def.h +++ b/plat/xilinx/zynqmp/include/platform_def.h @@ -89,13 +89,22 @@ #define PLAT_PHY_ADDR_SPACE_SIZE (1ULL << 32) #define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 32) + +#ifndef MAX_MMAP_REGIONS #if (BL31_LIMIT < PLAT_DDR_LOWMEM_MAX) #define MAX_MMAP_REGIONS 8 -#define MAX_XLAT_TABLES 8 #else #define MAX_MMAP_REGIONS 7 +#endif +#endif + +#ifndef MAX_XLAT_TABLES +#if (BL31_LIMIT < PLAT_DDR_LOWMEM_MAX) +#define MAX_XLAT_TABLES 8 +#else #define MAX_XLAT_TABLES 5 #endif +#endif #define CACHE_WRITEBACK_SHIFT 6 #define CACHE_WRITEBACK_GRANULE (1 << CACHE_WRITEBACK_SHIFT) |