Merge pull request #1506 from danielboulby-arm/db/SeparateCodeAndROData

Fix build for SEPARATE_CODE_AND_RODATA=0
This commit is contained in:
Dimitris Papastamos 2018-08-03 10:56:47 +01:00 committed by GitHub
commit f68bc8a1c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 34 additions and 25 deletions

View file

@ -241,16 +241,25 @@
ARM_EL3_TZC_DRAM1_SIZE, \ ARM_EL3_TZC_DRAM1_SIZE, \
MT_MEMORY | MT_RW | MT_SECURE) MT_MEMORY | MT_RW | MT_SECURE)
/*
* If SEPARATE_CODE_AND_RODATA=1 we define a region for each section
* otherwise one region is defined containing both.
*/
#if SEPARATE_CODE_AND_RODATA #if SEPARATE_CODE_AND_RODATA
#define ARM_MAP_BL_CODE MAP_REGION_FLAT( \ #define ARM_MAP_BL_RO MAP_REGION_FLAT( \
BL_CODE_BASE, \ BL_CODE_BASE, \
BL_CODE_END - BL_CODE_BASE, \ BL_CODE_END - BL_CODE_BASE, \
MT_CODE | MT_SECURE) MT_CODE | MT_SECURE), \
#define ARM_MAP_BL_RO_DATA MAP_REGION_FLAT( \ MAP_REGION_FLAT( \
BL_RO_DATA_BASE, \ BL_RO_DATA_BASE, \
BL_RO_DATA_END \ BL_RO_DATA_END \
- BL_RO_DATA_BASE, \ - BL_RO_DATA_BASE, \
MT_RO_DATA | MT_SECURE) MT_RO_DATA | MT_SECURE)
#else
#define ARM_MAP_BL_RO MAP_REGION_FLAT( \
BL_CODE_BASE, \
BL_CODE_END - BL_CODE_BASE, \
MT_CODE | MT_SECURE)
#endif #endif
#if USE_COHERENT_MEM #if USE_COHERENT_MEM
#define ARM_MAP_BL_COHERENT_RAM MAP_REGION_FLAT( \ #define ARM_MAP_BL_COHERENT_RAM MAP_REGION_FLAT( \
@ -261,14 +270,10 @@
#endif #endif
/* /*
* The number of regions like RO(code), coherent and data required by * The max number of regions like RO(code), coherent and data required by
* different BL stages which need to be mapped in the MMU. * different BL stages which need to be mapped in the MMU.
*/ */
#if USE_COHERENT_MEM
# define ARM_BL_REGIONS 4 # define ARM_BL_REGIONS 4
#else
# define ARM_BL_REGIONS 3
#endif
#define MAX_MMAP_REGIONS (PLAT_ARM_MMAP_ENTRIES + \ #define MAX_MMAP_REGIONS (PLAT_ARM_MMAP_ENTRIES + \
ARM_BL_REGIONS) ARM_BL_REGIONS)

View file

@ -28,15 +28,26 @@
bl1_tzram_layout.total_base, \ bl1_tzram_layout.total_base, \
bl1_tzram_layout.total_size, \ bl1_tzram_layout.total_size, \
MT_MEMORY | MT_RW | MT_SECURE) MT_MEMORY | MT_RW | MT_SECURE)
#define MAP_BL1_CODE MAP_REGION_FLAT( \ /*
* If SEPARATE_CODE_AND_RODATA=1 we define a region for each section
* otherwise one region is defined containing both
*/
#if SEPARATE_CODE_AND_RODATA
#define MAP_BL1_RO MAP_REGION_FLAT( \
BL_CODE_BASE, \ BL_CODE_BASE, \
BL1_CODE_END - BL_CODE_BASE, \ BL1_CODE_END - BL_CODE_BASE, \
MT_CODE | MT_SECURE) MT_CODE | MT_SECURE), \
#define MAP_BL1_RO_DATA MAP_REGION_FLAT( \ MAP_REGION_FLAT( \
BL1_RO_DATA_BASE, \ BL1_RO_DATA_BASE, \
BL1_RO_DATA_END \ BL1_RO_DATA_END \
- BL_RO_DATA_BASE, \ - BL_RO_DATA_BASE, \
MT_RO_DATA | MT_SECURE) MT_RO_DATA | MT_SECURE)
#else
#define MAP_BL1_RO MAP_REGION_FLAT( \
BL_CODE_BASE, \
BL1_CODE_END - BL_CODE_BASE, \
MT_CODE | MT_SECURE)
#endif
/* Data structure which holds the extents of the trusted SRAM for BL1*/ /* Data structure which holds the extents of the trusted SRAM for BL1*/
static meminfo_t bl1_tzram_layout; static meminfo_t bl1_tzram_layout;
@ -105,8 +116,7 @@ void arm_bl1_plat_arch_setup(void)
const mmap_region_t bl_regions[] = { const mmap_region_t bl_regions[] = {
MAP_BL1_TOTAL, MAP_BL1_TOTAL,
MAP_BL1_CODE, MAP_BL1_RO,
MAP_BL1_RO_DATA,
{0} {0}
}; };

View file

@ -75,8 +75,7 @@ void arm_bl2_el3_plat_arch_setup(void)
const mmap_region_t bl_regions[] = { const mmap_region_t bl_regions[] = {
MAP_BL2_EL3_TOTAL, MAP_BL2_EL3_TOTAL,
ARM_MAP_BL_CODE, ARM_MAP_BL_RO,
ARM_MAP_BL_RO_DATA,
{0} {0}
}; };

View file

@ -245,8 +245,7 @@ void arm_bl2_plat_arch_setup(void)
const mmap_region_t bl_regions[] = { const mmap_region_t bl_regions[] = {
MAP_BL2_TOTAL, MAP_BL2_TOTAL,
ARM_MAP_BL_CODE, ARM_MAP_BL_RO,
ARM_MAP_BL_RO_DATA,
{0} {0}
}; };

View file

@ -72,8 +72,7 @@ void arm_bl2u_plat_arch_setup(void)
const mmap_region_t bl_regions[] = { const mmap_region_t bl_regions[] = {
MAP_BL2U_TOTAL, MAP_BL2U_TOTAL,
ARM_MAP_BL_CODE, ARM_MAP_BL_RO,
ARM_MAP_BL_RO_DATA,
{0} {0}
}; };

View file

@ -287,8 +287,7 @@ void arm_bl31_plat_arch_setup(void)
const mmap_region_t bl_regions[] = { const mmap_region_t bl_regions[] = {
MAP_BL31_TOTAL, MAP_BL31_TOTAL,
ARM_MAP_BL_CODE, ARM_MAP_BL_RO,
ARM_MAP_BL_RO_DATA,
#if USE_COHERENT_MEM #if USE_COHERENT_MEM
ARM_MAP_BL_COHERENT_RAM, ARM_MAP_BL_COHERENT_RAM,
#endif #endif

View file

@ -203,8 +203,7 @@ void sp_min_plat_arch_setup(void)
{ {
const mmap_region_t bl_regions[] = { const mmap_region_t bl_regions[] = {
MAP_BL_SP_MIN_TOTAL, MAP_BL_SP_MIN_TOTAL,
ARM_MAP_BL_CODE, ARM_MAP_BL_RO,
ARM_MAP_BL_RO_DATA,
#if USE_COHERENT_MEM #if USE_COHERENT_MEM
ARM_MAP_BL_COHERENT_RAM, ARM_MAP_BL_COHERENT_RAM,
#endif #endif

View file

@ -81,8 +81,7 @@ void tsp_plat_arch_setup(void)
const mmap_region_t bl_regions[] = { const mmap_region_t bl_regions[] = {
MAP_BL_TSP_TOTAL, MAP_BL_TSP_TOTAL,
ARM_MAP_BL_CODE, ARM_MAP_BL_RO,
ARM_MAP_BL_RO_DATA,
{0} {0}
}; };