File tree Expand file tree Collapse file tree 2 files changed +17
-2
lines changed
arch/armv8/armv8-r/inc/arch Expand file tree Collapse file tree 2 files changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -46,8 +46,9 @@ struct addr_space_arch {
4646 .prlar = (_prlar), \
4747 })
4848
49- #define PTE_INVALID PTE_FLAGS(0, 0)
50- #define PTE_HYP_FLAGS PTE_FLAGS(PRBAR_AP_RW_EL2 | PRBAR_SH_IS, PRLAR_ATTR(1) | PRLAR_EN)
49+ #define PTE_INVALID PTE_FLAGS(0, 0)
50+ #define PTE_HYP_FLAGS PTE_FLAGS(PRBAR_AP_RW_EL2 | PRBAR_SH_IS, PRLAR_ATTR(1) | PRLAR_EN)
51+ #define PTE_HYP_FLAGS_CODE PTE_FLAGS(PRBAR_AP_RO_EL2 | PRBAR_SH_IS, PRLAR_ATTR(1) | PRLAR_EN)
5152#define PTE_HYP_DEV_FLAGS \
5253 PTE_FLAGS(PRBAR_XN | PRBAR_AP_RW_EL2 | PRBAR_SH_IS, PRLAR_ATTR(2) | PRLAR_EN)
5354#define PTE_VM_FLAGS PTE_FLAGS(PRBAR_AP_RW_EL1_EL2 | PRBAR_SH_NS, PRLAR_ATTR(1) | PRLAR_EN)
Original file line number Diff line number Diff line change @@ -154,6 +154,11 @@ static void mem_init_boot_regions(void)
154154 vaddr_t image_noload_start = (vaddr_t )& _image_noload_start ;
155155 vaddr_t image_end = (vaddr_t )& _image_end ;
156156
157+ #ifdef MEM_NON_UNIFIED
158+ extern uint8_t _data_vma_start ;
159+ vaddr_t data_vma_start = (vaddr_t )& _data_vma_start ;
160+ #endif
161+
157162 struct mp_region mpr ;
158163
159164 bool separate_noload_region = image_load_end != image_noload_start ;
@@ -162,15 +167,24 @@ static void mem_init_boot_regions(void)
162167 mpr = (struct mp_region ){
163168 .base = image_start ,
164169 .size = (size_t )(first_region_end - image_start ),
170+ #ifdef MEM_NON_UNIFIED
171+ .mem_flags = PTE_HYP_FLAGS_CODE ,
172+ #else
165173 .mem_flags = PTE_HYP_FLAGS ,
174+ #endif
166175 .as_sec = SEC_HYP_IMAGE ,
167176 };
168177 mem_map (& cpu ()-> as , & mpr , false, true);
169178
170179 if (separate_noload_region ) {
171180 mpr = (struct mp_region ){
181+ #ifdef MEM_NON_UNIFIED
182+ .base = data_vma_start ,
183+ .size = (size_t )(image_end - data_vma_start ),
184+ #else
172185 .base = image_noload_start ,
173186 .size = (size_t )image_end - image_noload_start ,
187+ #endif
174188 .mem_flags = PTE_HYP_FLAGS ,
175189 .as_sec = SEC_HYP_IMAGE ,
176190 };
You can’t perform that action at this time.
0 commit comments