diff options
author | Madhukar Pappireddy <madhukar.pappireddy@arm.com> | 2023-10-27 15:47:17 +0200 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2023-10-27 15:47:17 +0200 |
commit | 047b328d260bb5e21fb7b42b0633f035331236a8 (patch) | |
tree | cb27ea2858d6d36a642194e0acc8a7316956d07d /plat | |
parent | cb70aed442a907f5cb0f033d8f06bbc518a7496e (diff) | |
parent | 53a868f676d9ad6ec37d69155241883b8e7bf0bf (diff) |
Merge "fix(ti): align static device region addresses to reduce MMU table count" into integration
Diffstat (limited to 'plat')
-rw-r--r-- | plat/ti/k3/common/k3_bl31_setup.c | 18 | ||||
-rw-r--r-- | plat/ti/k3/include/platform_def.h | 10 |
2 files changed, 17 insertions, 11 deletions
diff --git a/plat/ti/k3/common/k3_bl31_setup.c b/plat/ti/k3/common/k3_bl31_setup.c index bbfb5bbfc..c5f60feea 100644 --- a/plat/ti/k3/common/k3_bl31_setup.c +++ b/plat/ti/k3/common/k3_bl31_setup.c @@ -20,14 +20,20 @@ #include <k3_gicv3.h> #include <ti_sci.h> +#define ADDR_DOWN(_adr) (_adr & XLAT_ADDR_MASK(2U)) +#define SIZE_UP(_adr, _sz) (round_up((_adr + _sz), XLAT_BLOCK_SIZE(2U)) - ADDR_DOWN(_adr)) + +#define K3_MAP_REGION_FLAT(_adr, _sz, _attr) \ + MAP_REGION_FLAT(ADDR_DOWN(_adr), SIZE_UP(_adr, _sz), _attr) + /* Table of regions to map using the MMU */ const mmap_region_t plat_k3_mmap[] = { - MAP_REGION_FLAT(K3_USART_BASE, K3_USART_SIZE, MT_DEVICE | MT_RW | MT_SECURE), - MAP_REGION_FLAT(K3_GIC_BASE, K3_GIC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), - MAP_REGION_FLAT(K3_GTC_BASE, K3_GTC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), - MAP_REGION_FLAT(SEC_PROXY_RT_BASE, SEC_PROXY_RT_SIZE, MT_DEVICE | MT_RW | MT_SECURE), - MAP_REGION_FLAT(SEC_PROXY_SCFG_BASE, SEC_PROXY_SCFG_SIZE, MT_DEVICE | MT_RW | MT_SECURE), - MAP_REGION_FLAT(SEC_PROXY_DATA_BASE, SEC_PROXY_DATA_SIZE, MT_DEVICE | MT_RW | MT_SECURE), + K3_MAP_REGION_FLAT(K3_USART_BASE, K3_USART_SIZE, MT_DEVICE | MT_RW | MT_SECURE), + K3_MAP_REGION_FLAT(K3_GIC_BASE, K3_GIC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), + K3_MAP_REGION_FLAT(K3_GTC_BASE, K3_GTC_SIZE, MT_DEVICE | MT_RW | MT_SECURE), + K3_MAP_REGION_FLAT(SEC_PROXY_RT_BASE, SEC_PROXY_RT_SIZE, MT_DEVICE | MT_RW | MT_SECURE), + K3_MAP_REGION_FLAT(SEC_PROXY_SCFG_BASE, SEC_PROXY_SCFG_SIZE, MT_DEVICE | MT_RW | MT_SECURE), + K3_MAP_REGION_FLAT(SEC_PROXY_DATA_BASE, SEC_PROXY_DATA_SIZE, MT_DEVICE | MT_RW | MT_SECURE), { /* sentinel */ } }; diff --git a/plat/ti/k3/include/platform_def.h b/plat/ti/k3/include/platform_def.h index ae3775a27..a2cc62d34 100644 --- a/plat/ti/k3/include/platform_def.h +++ b/plat/ti/k3/include/platform_def.h @@ -70,11 +70,7 @@ * used, choose the smallest value needed to map the required virtual addresses * for each BL stage. */ -#if USE_COHERENT_MEM -#define MAX_XLAT_TABLES 10 -#else -#define MAX_XLAT_TABLES 9 -#endif +#define MAX_XLAT_TABLES 4 /* * Defines the maximum number of regions that are allocated by the translation @@ -86,7 +82,11 @@ * runtime memory used, choose the smallest value needed to register the * required regions for each BL stage. */ +#if USE_COHERENT_MEM #define MAX_MMAP_REGIONS 11 +#else +#define MAX_MMAP_REGIONS 10 +#endif /* * Defines the total size of the address space in bytes. For example, for a 32 |