📄 cp15.lst
字号:
39 00000020 tci_loop
40 00000020 EE17FF7E mrc p15, 0, r15, c7, c14, 3
41 00000024 1AFFFFFD bne tci_loop
42 00000028 E3A00000 mov r0,#&0
43 0000002C EE070F15 mcr p15,0,r0,c7,c5,0
44 00000030 MMUNoUse
45 00000030 E59F052C ldr r0,=&0001005
46 00000034 E1C11000 bic r1,r1,r0
47 00000038 EE011F10 mcr p15,0,r1,c1,c0,0
48 0000003C ;xhl add end
49 0000003C E3A02000 mov r2,#&0
50 00000040 EE082F17 mcr p15,0,r2,c8,c7,0 ;Invalidate TL
B
51 00000044 E59F151C ldr r1,=SECTABLE_ADDR
52 00000048 E3A02A01 mov r2,#&1000 ;Translation Table
4096 entries
53 0000004C E3A00000 mov r0,#&0
54 00000050 loop_clr_TTBR
55 00000050 E1520000 cmp r2,r0
56 00000054 14810004 strne r0,[r1],#4
57 00000058 12422001 subne r2,r2,#&1
58 0000005C 1AFFFFFB bne loop_clr_TTBR ;loop clear 0x03e
f0000 len 16K
59 00000060 E59F5504 ldr r5,=memregions
60 00000064 E59F84FC ldr r8,=PAGETABLE_ADDR
61 00000068 loopnextsection
62 00000068 E4954004 ldr r4,[r5],#4 ;section size
63 0000006C E3540000 cmp r4,#&0
64 00000070 0A000038 beq tabelend ;size of 0 means fi
nish
ARM Macro Assembler Page 6
65 00000074 E4950004 ldr r0,[r5],#4 ;offset of memory
66 00000078 E4956004 ldr r6,[r5],#4 ;descriptor
67 0000007C E4957004 ldr r7,[r5],#4 ;descriptor
68 00000080 E59F14E0 ldr r1,=SECTABLE_ADDR ;Section Tabl
e address
69 00000084 E1A02A20 mov r2,r0,lsr #20 ;section is 1M ti
mes
70 00000088 E0811102 add r1,r1,r2,lsl #2 ;section table
is 4 bytes(make sec
tion table addr)
71 0000008C loopinsection
72 0000008C E3540601 cmp r4,#&100000 ;1M
73 00000090 BA000007 blt pagemode ;must greater 1M me
mory
74 00000094 E2444601 sub r4,r4,#&100000 ;eche section ta
ble is 1M
75 00000098 E59F04D0 ldr r0,=&fff00000
76 0000009C E0060000 and r0,r6,r0 ;make section descr
iptor
ARM Macro Assembler Page 7
77 000000A0 E1800007 orr r0,r0,r7
78 000000A4 E3800012 orr r0,r0,#&12 ;section descriptor
79 000000A8 E4810004 str r0,[r1],#4 ;store section tabl
e
80 000000AC E2866601 add r6,r6,#&100000
81 000000B0 EAFFFFF5 b loopinsection
82 000000B4 pagemode
83 000000B4 E3540000 cmp r4,#&0
84 000000B8 0AFFFFEA beq loopnextsection ;a section end,
loop next
85 000000BC E59F04B0 ldr r0,=&fffffc00
86 000000C0 E5912000 ldr r2,[r1,#0] ;section table addr
87 000000C4 E3520000 cmp r2,#&0
88 000000C8 10023000 andne r3,r2,r0
89 000000CC 1A000009 bne pagetable ;first leve descrip
tor exist
90 000000D0 E0088000 and r8,r8,r0 ;R8->Page Table add
ress
91 000000D4 E3880011 orr r0,r8,#&11 ;Coarse page table
92 000000D8 E5810000 str r0,[r1,#0] ;store coarse page
table base address
ARM Macro Assembler Page 8
93 000000DC E1A03008 mov r3,r8
94 000000E0 E3A02C01 mov r2,#&100 ;256 small page
95 000000E4 E3A00000 mov r0,#&0
96 000000E8 loopclrpagetable
97 000000E8 E1520000 cmp r2,r0
98 000000EC 14880004 strne r0,[r8],#4
99 000000F0 12422001 subne r2,r2,#&1
100 000000F4 1AFFFFFB bne loopclrpagetable ;loop clear pa
ge table 256*4
101 000000F8 pagetable
102 000000F8 E3A0100C mov r1,#&c
103 000000FC E0071001 and r1,r7,r1 ;section descriptor
104 00000100 E3A00B03 mov r0,#&c00
105 00000104 E0070000 and r0,r7,r0
106 00000108 E1A00520 mov r0,r0,lsr #10
107 0000010C E0800100 add r0,r0,r0,lsl #2
108 00000110 E0800200 add r0,r0,r0,lsl #4
109 00000114 E3A07000 mov r7,#&0
110 00000118 E0817200 add r7,r1,r0,lsl #4 ;make small pag
e AP
111 0000011C E515100C ldr r1,[r5,#-12] ;descriptor
112 00000120 E3A00AFF mov r0,#&ff000
113 00000124 E0011000 and r1,r1,r0 ;make small page de
scriptor
114 00000128 E1A01621 mov r1,r1,lsr #12
115 0000012C E0833101 add r3,r3,r1,lsl #2
116 00000130 loopinpage
117 00000130 E3540A01 cmp r4,#&1000
118 00000134 BAFFFFCB blt loopnextsection ;<4K memory, sy
ARM Macro Assembler Page 9
stem not use
119 00000138 E2444A01 sub r4,r4,#&1000 ;page size is 4K
120 0000013C E59F0434 ldr r0,=&fffff000
121 00000140 E0060000 and r0,r6,r0
122 00000144 E1800007 orr r0,r0,r7
123 00000148 E3800002 orr r0,r0,#&2
124 0000014C E4830004 str r0,[r3],#4
125 00000150 E2866A01 add r6,r6,#&1000
126 00000154 EAFFFFF5 b loopinpage
127 00000158 tabelend
128 00000158 E59F0408 ldr r0,=SECTABLE_ADDR
129 0000015C EE020F10 mcr p15,0,r0,c2,c0,0 ;write TTBR
130 00000160 E59F2414 ldr r2,=&55555555
131 00000164 EE032F10 mcr p15,0,r2,c3,c0,0 ;write Domain
access permissions
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -