@@ -50,68 +50,8 @@ boot_arch_profile_init:
5050 / * r4 contains the id of the MPU entry being used * /
5151 mov r4 , #( - 1 )
5252
53- / **
54- * Map loadable image ( and possibly unloadable)
55- * If the vm image section is used and has built - in vm images , we need to map the loadble and
56- * non - loadble region of the image separately. Otherwise we can map it as a single region.
57- * /
58- add r4 , r4 , # 1
59- mcr p15 , 4 , r4 , c6 , c2 , 1 // HPRSELR
60- ldr r3 , =_image_start
61- and r3 , r3 , #PRBAR_BASE_MSK
62- orr r3 , r3 , #PRBAR_SH_IS
63- orr r3 , r3 , #PRBAR_AP_RW_EL2
64- mcr p15 , 4 , r3 , c6 , c3 , 0 // HPRBAR
65- ldr r10 , =_image_load_end
66- ldr r11 , =_image_noload_start
67- cmp r10 , r11
68- ldreq r3 , =_image_end
69- ldrne r3 , =_image_load_end
70- sub r3 , r3 , # 1
71- and r3 , r3 , #PRLAR_LIMIT_MSK
72- orr r3 , r3 , #(PRLAR_ATTR( 1 ) | PRLAR_EN)
73- mcr p15 , 4 , r3 , c6 , c3 , 1 // HPRLAR
74-
75- / * Map Image Non - loadable if needed * /
76- ldr r10 , =_image_load_end
77- ldr r11 , =_image_noload_start
78- cmp r10 , r11
79- beq skip_non_loadable
80- add r4 , r4 , # 1
81- mcr p15 , 4 , r4 , c6 , c2 , 1 // HPRSELR
82- ldr r3 , =_image_noload_start
83- and r3 , r3 , #PRBAR_BASE_MSK
84- orr r3 , r3 , #PRBAR_SH_IS
85- orr r3 , r3 , #PRBAR_AP_RW_EL2
86- mcr p15 , 4 , r3 , c6 , c3 , 0 // HPRBAR
87- ldr r3 , =_image_end
88- sub r3 , r3 , # 1
89- and r3 , r3 , #PRLAR_LIMIT_MSK
90- orr r3 , r3 , #(PRLAR_ATTR( 1 ) | PRLAR_EN)
91- mcr p15 , 4 , r3 , c6 , c3 , 1 // HPRLAR
92-
93- skip_non_loadable:
94-
95- / * Region 2 - CPU * /
96- add r4 , r4 , # 1
97- mcr p15 , 4 , r4 , c6 , c2 , 1 // HPRSELR
98- mrc p15 , 4 , r3 , c13 , c0 , 2 // HTPIDR (read CPU base addr)
99- and r3 , r3 , #PRBAR_BASE_MSK
100- orr r3 , r3 , #PRBAR_SH_IS
101- orr r3 , r3 , #PRBAR_AP_RW_EL2
102- mcr p15 , 4 , r3 , c6 , c3 , 0 // HPRBAR
103- mrc p15 , 4 , r3 , c13 , c0 , 2 // HTPIDR (read CPU base addr)
104- add r3 , r3 , #CPU_SIZE
105- sub r3 , r3 , # 1
106- and r3 , r3 , #PRLAR_LIMIT_MSK
107- orr r3 , #(PRLAR_ATTR( 1 ) | PRLAR_EN)
108- mcr p15 , 4 , r3 , c6 , c3 , 1 // HPRLAR
109-
110- dsb
111- isb
112-
11353 / * Enable caches and MPU * /
114- ldr r4 , =(SCTLR_RES1_AARCH32 | SCTLR_C | SCTLR_I | SCTLR_M )
54+ ldr r4 , =(SCTLR_RES1_AARCH32 | SCTLR_C | SCTLR_I)
11555 mcr p15 , 4 , r4 , c1 , c0 , 0 // HSCTLR
11656
11757 dsb
0 commit comments