1 |
|
---|
2 | TOPPERSããã¸ã§ã¯ã è¨è¨ã¡ã¢
|
---|
3 | GICï¼ARM Generic Interrupt Controllerï¼ã«é¢ããã¡ã¢
|
---|
4 |
|
---|
5 | ä½æè
|
---|
6 | : é«ç°åºç« ï¼åå¤å±å¤§å¦ï¼
|
---|
7 | æçµæ´æ°: 2015å¹´7æ25æ¥
|
---|
8 |
|
---|
9 | âã¡ã¢ã®ä½ç½®ã¥ã
|
---|
10 |
|
---|
11 | ãã®ã¡ã¢ã¯ï¼ARM Generic Interrupt Controllerï¼GICï¼ã«é¢ãã¦ï¼TOPPERSã«ã¼
|
---|
12 | ãã«ããã¼ãã£ã³ã°ããã«ããã£ã¦å¿
|
---|
13 | è¦ã¨ãªãäºé
|
---|
14 | ãã¾ã¨ãããã®ã§ããï¼
|
---|
15 |
|
---|
16 | âç®æ¬¡
|
---|
17 |
|
---|
18 | ã»åèæç®
|
---|
19 | ã»GICã®ã¢ã¼ããã¯ãã£ä»æ§
|
---|
20 | ã»PrimeCell GICï¼Generic Interrupt Controllerï¼PL390
|
---|
21 | ã»ARM11 MPCore Distributed Interrupt Controller
|
---|
22 |
|
---|
23 | âåèæç®
|
---|
24 |
|
---|
25 | [1] ARM Generic Interrupt Controller - Architecture version 2.0
|
---|
26 | Architecture Specification, 2013
|
---|
27 | IHI0048B_b_gic_architecture_specification.pdf
|
---|
28 |
|
---|
29 | [2] PrimeCell Generic Interrupt Controller (PL390) Technical Reference Manual
|
---|
30 | Revision: r0p0
|
---|
31 | DDI0416B_gic_pl390_r0p0_trm.pdf
|
---|
32 |
|
---|
33 | [3] ARM11 MPCoreTM Processor Technical Reference Manual
|
---|
34 | Revision: r2p0
|
---|
35 | DDI0360F_arm11_mpcore_r2p0_trm.pdf
|
---|
36 |
|
---|
37 | âGICã®ã¢ã¼ããã¯ãã£ä»æ§ï¼[1]ï¼
|
---|
38 |
|
---|
39 | GICã®ã¢ã¼ããã¯ãã£ã«ãï¼GICv1ã¨GICv2ã®2ã¤ã®ãã¼ã¸ã§ã³ãããï¼ãã¼ã¸ã§
|
---|
40 | ã³ã«ããã¬ã¸ã¹ã¿åãç°ãªãï¼ããã§ã¯ï¼GICv2ã®ã¢ã¼ããã¯ãã£ã«ã¤ãã¦è¨è¿°
|
---|
41 | ããï¼ä»®æ³åæ¡å¼µã«ã¤ãã¦ã¯è¨è¿°ãçç¥ããï¼
|
---|
42 |
|
---|
43 | âç¨èªã®å®ç¾©
|
---|
44 |
|
---|
45 | å²è¾¼ã¿ç¶æ
|
---|
46 |
|
---|
47 | - Inactiveï¼Activeã§ãPendingã§ããªãç¶æ
|
---|
48 |
|
---|
49 | - Pendingï¼è¦æ±ã¯èªèããã¦ããï¼ãµã¼ãã¹ãå¾
|
---|
50 | ã£ã¦ããç¶æ
|
---|
51 |
|
---|
52 | - Activeï¼ããã»ããµã«ãã£ã¦åãä»ãããï¼ãµã¼ãã¹ããã¦ããç¶æ
|
---|
53 |
|
---|
54 | - Active and pendingï¼ããã»ããµããµã¼ãã¹ãã¦ãããï¼åãå²è¾¼ã¿æº
|
---|
55 | ããã®è¦æ±ãããã«ããå ´å
|
---|
56 |
|
---|
57 | å²è¾¼ã¿ã®ã¿ã¤ã
|
---|
58 | - ããªãã§ã©ã«å²è¾¼ã¿ï¼Peripheral Interruptï¼
|
---|
59 | + ãã©ã¤ãã¼ãããªãã§ã©ã«å²è¾¼ã¿ï¼PPI, Private Peripheral Interruptï¼
|
---|
60 | ï¼ç¹å®ã®ããã»ããµåãã®å²è¾¼ã¿
|
---|
61 | + å
|
---|
62 | ±æããªãã§ã©ã«å²è¾¼ã¿ï¼SPI, Shared Peripheral Interruptï¼
|
---|
63 | ï¼ããã»ããµãéå®ããªãå²è¾¼ã¿
|
---|
64 | - ã½ããã¦ã§ã¢ã§çæããå²è¾¼ã¿ï¼SGI, Software Generated Interruptï¼
|
---|
65 | - ä»®æ³å²è¾¼ã¿ï¼Virtual Interruptï¼â¦ ä»®æ³åæ¡å¼µã®ã¿
|
---|
66 | - ã¡ã³ããã³ã¹å²è¾¼ã¿ï¼Maintenance Interruptï¼â¦ ä»®æ³åæ¡å¼µã®ã¿
|
---|
67 |
|
---|
68 | å²è¾¼ã¿ãã³ããªã³ã°ã®ã¢ã㫠⦠ãã«ãããã»ããµã®å ´å
|
---|
69 | - 1-Nã¢ãã«ï¼ã¿ã¼ã²ããããã»ããµã®å
|
---|
70 | ã®1ã¤ã®ã¿ãå²è¾¼ã¿ãå¦çãã
|
---|
71 | - N-Nã¢ãã«ï¼ãã¹ã¦ã®ã¿ã¼ã²ããããã»ããµãå²è¾¼ã¿ãå¦çãã
|
---|
72 | ï¼GICã¯ï¼SGIã¯N-Nã¢ãã«ï¼ããªãã§ã©ã«å²è¾¼ã¿ã¯1-Nã¢ãã«ã§æ±ã
|
---|
73 |
|
---|
74 | âå²è¾¼ã¿ã°ã«ã¼ã
|
---|
75 |
|
---|
76 | 2ã¤ã®å²è¾¼ã¿ã°ã«ã¼ãï¼ã»ãã¥ã¢ã¢ã¼ãç¨ã®ã°ã«ã¼ã0ï¼ãã³ã»ãã¥ã¢ã¢ã¼ãç¨
|
---|
77 | ã®ã°ã«ã¼ã1ï¼ããµãã¼ãï¼GICv1ã§ã¯ï¼ã»ãã¥ãªãã£æ¡å¼µãããæã®ã¿ï¼å²è¾¼
|
---|
78 | ã¿ã°ã«ã¼ãããµãã¼ãï¼
|
---|
79 |
|
---|
80 | ã»åå²è¾¼ã¿ãã°ã«ã¼ã0ã¾ãã¯ã°ã«ã¼ã1ã«è¨å®å¯è½
|
---|
81 | ã»ã°ã«ã¼ã0ã¯ï¼ã¿ã¼ã²ããããã»ããµã«ï¼IRQã¾ãã¯FIQã§éç¥
|
---|
82 | ã»ã°ã«ã¼ã1ã¯ï¼ã¿ã¼ã²ããããã»ããµã«ï¼IRQã§éç¥
|
---|
83 | ã»ä¸¡ã°ã«ã¼ãã®å²è¾¼ã¿ã®åªå
|
---|
84 | 度ãçµ±ä¸ãã¦æ±ãã
|
---|
85 | ã»ã°ã«ã¼ã0ã®å²è¾¼ã¿ã®è¨å®ãããã¯ãã¦ã³ãããªãã·ã§ã³ãã
|
---|
86 |
|
---|
87 | 注æï¼åªå
|
---|
88 | 度ã°ã«ã¼ãã¯ï¼å²è¾¼ã¿ã°ã«ã¼ãã¨ã¯å¥ã®æ¦å¿µãªã®ã§ï¼æ··åããªããã¨ï¼
|
---|
89 | ãããåªå
|
---|
90 | 度ã°ã«ã¼ãã¯ï¼ã»ãã¥ãªãã£æ¡å¼µã¨ã¯ç¡é¢ä¿ã®æ©è½
|
---|
91 |
|
---|
92 | âãã£ã¹ããªãã¥ã¼ã¿
|
---|
93 |
|
---|
94 | ãã£ã¹ããªãã¥ã¼ã¿ã®æ©è½ï¼ã½ããã¦ã§ã¢ããè¦ãããã®ï¼
|
---|
95 | - å²è¾¼ã¿è¦æ±ãCPUã¤ã³ã¿ãã§ã¼ã¹ã«éã
|
---|
96 | - åå²è¾¼ã¿ã®ç¦æ¢ï¼è¨±å¯
|
---|
97 | - åå²è¾¼ã¿ã®åªå
|
---|
98 | 度ã¬ãã«ã®è¨å®
|
---|
99 | - åå²è¾¼ã¿ã®ã¿ã¼ã²ããããã»ããµãªã¹ãã®è¨å®
|
---|
100 | - åããªãã§ã©ã«å²è¾¼ã¿ã®ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨å®
|
---|
101 | â»ã¬ãã«ããªã¬ã¯ï¼level-sensitiveã¨æ¸ããã¦ãã
|
---|
102 | - åå²è¾¼ã¿ã®ã°ã«ã¼ã0ï¼ã°ã«ã¼ã1ã®è¨å®
|
---|
103 | - SGIã1ã¤ã¾ãã¯è¤æ°ã®ã¿ã¼ã²ããããã»ããµã«éã
|
---|
104 | - åå²è¾¼ã¿ã®ç¶æ
|
---|
105 | ã®åç
|
---|
106 | §
|
---|
107 | - ããªãã§ã©ã«å²è¾¼ã¿ã®ãã³ãã£ã³ã°ç¶æ
|
---|
108 | ã®ã½ããã¦ã§ã¢ããã®æä½
|
---|
109 |
|
---|
110 | å²è¾¼ã¿ID
|
---|
111 | - æ大ã§1020ã®å²è¾¼ã¿IDï¼ãã³ã¯ã使ãã¨ããã«å¤ãã®å²è¾¼ã¿ãæ±ãã
|
---|
112 | - å²è¾¼ã¿IDã®æ§æ
|
---|
113 | 0ã15ï¼SGI ⦠CPUã¤ã³ã¿ãã§ã¼ã¹æ¯
|
---|
114 | 0ã7ï¼ãã³ã»ãã¥ã¢ç¨ã«ä½¿ããã¨ãå¼·ãæ¨å¥¨
|
---|
115 | 8ã15ï¼ã»ãã¥ã¢ç¨ã«ä½¿ããã¨ãå¼·ãæ¨å¥¨
|
---|
116 | 16ã31ï¼PPI ⦠CPUã¤ã³ã¿ãã§ã¼ã¹æ¯
|
---|
117 | 32ã1019ï¼SPI
|
---|
118 | 1020ã1023ï¼ç¹æ®ç®çã«äºç´
|
---|
119 | 1020ã1021ï¼äºç´
|
---|
120 | 1022ï¼å²è¾¼ã¿ã°ã«ã¼ãã«ä¼´ãã¹ããªã¢ã¹å²è¾¼ã¿ï¼è©³ç´°çç¥ï¼
|
---|
121 | 1023ï¼ã¹ããªã¢ã¹å²è¾¼ã¿
|
---|
122 |
|
---|
123 | âCPUã¤ã³ã¿ãã§ã¼ã¹
|
---|
124 |
|
---|
125 | CPUã¤ã³ã¿ãã§ã¼ã¹ã®æ©è½ï¼ã½ããã¦ã§ã¢ããè¦ãããã®ï¼
|
---|
126 | - ããã»ããµã¸ã®å²è¾¼ã¿è¦æ±ä¿¡å·ã®è¨±å¯
|
---|
127 | - å²è¾¼ã¿ã®åä»ãï¼acknowledgingï¼
|
---|
128 | - å²è¾¼ã¿å¦çå®äºã®éç¥
|
---|
129 | - å²è¾¼ã¿åªå
|
---|
130 | 度ãã¹ã¯ã®è¨å®
|
---|
131 | - ããªã¨ã³ãã·ã§ã³ããªã·ã¼ã®è¨å®
|
---|
132 | - ãã³ãã£ã³ã°ãã¦ããæé«åªå
|
---|
133 | 度å²è¾¼ã¿ã®åå¾
|
---|
134 |
|
---|
135 | å²è¾¼ã¿ã®åä»ã
|
---|
136 | - ããã»ããµãå²è¾¼ã¿ã¢ã¯ãã¼ã¬ãã¸ã¬ã¸ã¹ã¿ï¼IARï¼ãèªããã¨ã§ï¼å²è¾¼
|
---|
137 | ã¿ãåãä»ãããã
|
---|
138 | - IARããã¯ï¼å²è¾¼ã¿IDãè¿ãï¼ã¹ããªã¢ã¹å²è¾¼ã¿ã®IDã§ããå ´åãï¼
|
---|
139 | - å²è¾¼ã¿ç¶æ
|
---|
140 | ã¯ï¼pendingããactiveï¼ã¾ãã¯active and pendingï¼ã«é·ç§»
|
---|
141 |
|
---|
142 | å²è¾¼ã¿ã®å®äº
|
---|
143 | - ããã»ããµãå²è¾¼ã¿å®äºã¬ã¸ã¹ã¿ï¼GICC_EOIRï¼ã«æ¸ããã¨ã§ï¼å²è¾¼ã®å®
|
---|
144 | äºãéç¥ããã
|
---|
145 | - GICã¯æ¬¡ã®2ã¤ã®å¦çãå®è¡ãã
|
---|
146 | + åªå
|
---|
147 | 度ãã¹ã¯ãä¸ãã
|
---|
148 | + å²è¾¼ã¿ãdeactivateããï¼activeããä»ã®ç¶æ
|
---|
149 | ã«é·ç§»ãããï¼
|
---|
150 | - GICv2ã§ã¯ï¼è¨å®ã«ããï¼GICC_EOIRã¸ã®æ¸ãè¾¼ã¿ã§ã¯1ã¤ãã®ã¹ãããã®
|
---|
151 | ã¿è¡ãï¼å¥ã®ã¬ã¸ã¹ã¿ï¼GICC_DIRï¼ã¸ã®æ¸ãè¾¼ã¿ã§2ã¤ãã®ã¹ããããå®
|
---|
152 | è¡ããããã¨ãã§ãã
|
---|
153 |
|
---|
154 | å²è¾¼ã¿ä¿¡å·ãã¤ãã¹ã¨ãã¤ãã¹ç¦æ¢ ï¼è©³ç´°çç¥ï¼
|
---|
155 | - ã¬ã¬ã·ã¼å²è¾¼ã¿ãæ±ãããã«ï¼å²è¾¼ã¿è¦æ±ããã¤ãã¹ããæ©è½ããã
|
---|
156 | - GICv2ã§ã¯ï¼ãã¤ãã¹ãç¦æ¢ããæ©è½ããã
|
---|
157 |
|
---|
158 | âå²è¾¼ã¿ã®ãã³ããªã³ã°ï¼ã»ãã¥ãªãã£æ¡å¼µããªãå ´åï¼
|
---|
159 |
|
---|
160 | ã»å²è¾¼ã¿ãã³ããªã³ã°ç¶æ
|
---|
161 | ãã·ã³ã§ï¼4ã¤ã®å²è¾¼ã¿ç¶æ
|
---|
162 | ã®éã®é·ç§»ãå®ç¾©
|
---|
163 |
|
---|
164 | ã»GICã®å²è¾¼ã¿ãã³ããªã³ã°ã·ã¼ã±ã³ã¹
|
---|
165 | 1. å²è¾¼ã¿ãã¤ãã¼ãã«ããã¦ãããã©ãããå¤å®
|
---|
166 | 2. ãã³ãã£ã³ã°ãã¦ããå²è¾¼ã¿ã«å¯¾ãã¦ï¼ã¿ã¼ã²ããããã»ããµã決å®
|
---|
167 | 3. ãã£ã¹ããªãã¥ã¼ã¿ã¯ï¼åããã»ããµã«å¯¾ãã¦ï¼ãã³ãã£ã³ã°ãã¦ãã
|
---|
168 | æé«åªå
|
---|
169 | 度å²è¾¼ã¿ã決å®ãï¼CPUã¤ã³ã¿ãã§ã¼ã¹ã«éã
|
---|
170 | 4. CPUã¤ã³ã¿ãã§ã¼ã¹ã¯ï¼ãã£ã¹ããªãã¥ã¼ã¿ããéããã¦ããå²è¾¼ã¿ã
|
---|
171 | ååã«é«ãåªå
|
---|
172 | 度ã決å®ãï¼ååã«é«ããã°ï¼ããã»ããµã«éã
|
---|
173 | 5. ããã»ããµãå²è¾¼ã¿ãåãä»ããã¨ï¼GICã¯å²è¾¼ã¿IDãè¿ãï¼å²è¾¼ã¿ç¶æ
|
---|
174 |
|
---|
175 | ãæ´æ°ãã
|
---|
176 | 6. å²è¾¼ã¿ã®å¦çãçµããã¨ï¼ããã»ããµã¯å²è¾¼ã¿å®äºãGICã«éç¥ãã
|
---|
177 |
|
---|
178 | âå²è¾¼ã¿ã®åªå
|
---|
179 | 度ä»ãï¼å²è¾¼ã¿ã°ã«ã¼ãã¨ã»ãã¥ãªãã£æ¡å¼µããªãå ´åï¼
|
---|
180 |
|
---|
181 | ã»GICããµãã¼ãããå²è¾¼ã¿åªå
|
---|
182 | 度ã®æ°ã¯ï¼16ã256
|
---|
183 | ã»å²è¾¼ã¿åªå
|
---|
184 | 度ã¯ï¼8ãããã®ç¬¦å·ç¡ãæ´æ°ã§è¡¨ã
|
---|
185 | å¤ãå°ããæ¹ãåªå
|
---|
186 | 度ãé«ã
|
---|
187 | åªå
|
---|
188 | 度ã®æ°ã256ããå°ãªãã¨ãã¯ï¼ä¸ä½ããããã使ç¨ãã
|
---|
189 | 使ããªãä¸ä½ãããã¯RAZ/WI
|
---|
190 | ã»åå²è¾¼ã¿ã®åªå
|
---|
191 | 度ãåå¥ã«è¨å®ã§ãã
|
---|
192 | å®è£
|
---|
193 | ã«ãã£ã¦ï¼ç¹å®ã®å²è¾¼ã¿ã®åªå
|
---|
194 | 度ãåºå®ãã¦ããã
|
---|
195 | ã»åãåªå
|
---|
196 | 度ã®å²è¾¼ã¿ã®ä¸ã§ã©ããåãä»ãããã¯å®è£
|
---|
197 | ä¾å
|
---|
198 |
|
---|
199 | ã»å²è¾¼ã¿ã®ããªã¨ã³ãã·ã§ã³ã¯æ¬¡ã®2ã¤ã®æ¡ä»¶ãæã£ãæã«èµ·ãã
|
---|
200 | - å²è¾¼ã¿ã®åªå
|
---|
201 | 度ãï¼å²è¾¼ã¿åªå
|
---|
202 | 度ãã¹ã¯ãããé«ã
|
---|
203 | - å²è¾¼ã¿ã®ã°ã«ã¼ãåªå
|
---|
204 | 度ãï¼å®è¡ä¸åªå
|
---|
205 | 度ã®ã°ã«ã¼ãåªå
|
---|
206 | 度ãããé«ã
|
---|
207 |
|
---|
208 | ã»å²è¾¼ã¿åªå
|
---|
209 | 度ãã¹ã¯ï¼GICC_PMRï¼
|
---|
210 | - CPUã¤ã³ã¿ãã§ã¼ã¹ã®GICC_PMRãããé«ãå²è¾¼ã¿ã®ã¿ãåãä»ãã
|
---|
211 | + ãã®å¤å®ã«ï¼åªå
|
---|
212 | 度ã®ã°ã«ã¼ãã¯å½±é¿ããªã
|
---|
213 | - å²è¾¼ã¿ã«æä½åªå
|
---|
214 | 度ï¼å¤ã¨ãã¦ã¯æ大ï¼ãå²ãä»ããã¨ï¼ãã®å²è¾¼ã¿ã¯
|
---|
215 | åãä»ããããªã
|
---|
216 |
|
---|
217 | ã»åªå
|
---|
218 | 度ã°ã«ã¼ãã³ã°
|
---|
219 | - ãã¤ããªãã¤ã³ãã¬ã¸ã¹ã¿(GICC_BPRï¼ã®è¨å®ã«ããï¼å²è¾¼ã¿åªå
|
---|
220 | 度ãï¼
|
---|
221 | ã°ã«ã¼ãåªå
|
---|
222 | 度ã¨ãµãåªå
|
---|
223 | 度ã«åãããã¨ãã§ãã
|
---|
224 | - ããªã¨ã³ãã·ã§ã³ã«ããã¦ã¯ï¼åãã°ã«ã¼ãã®åªå
|
---|
225 | 度ã¯ï¼åãåªå
|
---|
226 | 度ã¨
|
---|
227 | è¦ãªãããï¼ã¤ã¾ãï¼åãã°ã«ã¼ãå
|
---|
228 | ã§ã¯ããªã¨ã³ãã·ã§ã³ã¯èµ·ããªãï¼
|
---|
229 |
|
---|
230 | ãï¼å²è¾¼ã¿åªå
|
---|
231 | 度ã8ãããã®æã¯ï¼ãã¹ã¦ã§ããªã¨ã³ãã·ã§ã³ãèµ·ããè¨å®ã¯
|
---|
232 | ã§ããªã
|
---|
233 |
|
---|
234 | âå²è¾¼ã¿ã°ã«ã¼ãã¨å²è¾¼ã¿ã®ãã³ããªã³ã°ï¼ã»ãã¥ãªãã£æ¡å¼µï¼
|
---|
235 |
|
---|
236 | âå²è¾¼ã¿ã°ã«ã¼ãã¨å²è¾¼ã¿ã®åªå
|
---|
237 | 度ä»ãï¼ã»ãã¥ãªãã£æ¡å¼µï¼
|
---|
238 |
|
---|
239 | ã»æ¬¡ã®ãã¨ãå¼·ãæ¨å¥¨ãã
|
---|
240 | - ã°ã«ã¼ã0ã«ã¯ï¼ååããé«ãåªå
|
---|
241 | 度ï¼æä¸ä½ãããã0ï¼ãå²ãå½ã¦ã
|
---|
242 | - ã°ã«ã¼ã1ã«ã¯ï¼ååããä½ãåªå
|
---|
243 | 度ï¼æä¸ä½ãããã1ï¼ãå²ãå½ã¦ã
|
---|
244 |
|
---|
245 | ã»ãã³ã»ãã¥ã¢ã¢ã¼ãããè¦ããå²è¾¼ã¿åªå
|
---|
246 | 度
|
---|
247 | - ãã³ã»ãã¥ã¢ã¢ã¼ãããã¯ï¼ã°ã«ã¼ã1ã®å²è¾¼ã¿ã®ã¿ãæ±ãã
|
---|
248 | - æ¸ãè¾¼ã¿æã«ã¯ï¼1ãããå³ã«ã·ããããï¼æä¸ä½ãããã1ã«ãªã
|
---|
249 | - èªã¿åºãæã«ã¯ï¼1ãããå·¦ã«ã·ãããããï¼æä¸ä½ãããã¯ãªããªãï¼
|
---|
250 |
|
---|
251 | ã»åã°ã«ã¼ãã®å²è¾¼ã¿ã®ããªã¨ã³ãã·ã§ã³ã®å¶å¾¡
|
---|
252 | - GICC_BPRã«ã¯ï¼ã»ãã¥ã¢ã³ãã¼ã¨ãã³ã»ãã¥ã¢ã³ãã¼ããã
|
---|
253 | + ã»ãã¥ã¢ã¢ã¼ãããã¢ã¯ã»ã¹ããã¨ï¼ã»ãã¥ã¢ã³ãã¼ã«ã¢ã¯ã»ã¹
|
---|
254 | + ãã³ã»ãã¥ã¢ã¢ã¼ãããã¢ã¯ã»ã¹ããã¨ï¼ãã³ã»ãã¥ã¢ã³ãã¼ã«ã¢ã¯ã»ã¹
|
---|
255 | - ã°ã«ã¼ã0ã¯ï¼GICC_BPRã®ã»ãã¥ã¢ã³ãã¼ã§å¶å¾¡ããã
|
---|
256 | - ã°ã«ã¼ã1ã¯ï¼
|
---|
257 | GICC_CTLR.CBPRã0ã®æï¼GICC_BPRã®ãã³ã»ãã¥ã¢ã³ãã¼ã§å¶å¾¡ããã
|
---|
258 | GICC_CTLR.CBPRã1ã®æï¼GICC_BPRã®ã»ãã¥ã¢ã³ãã¼ã§å¶å¾¡ããã
|
---|
259 | - GICC_ABPRã¯ï¼ã»ãã¥ã¢ã¢ã¼ãããï¼GICC_BPRã®ãã³ã»ãã¥ã¢ã³ãã¼ã«ã¢
|
---|
260 | ã¯ã»ã¹ããããã®ã¬ã¸ã¹ã¿
|
---|
261 |
|
---|
262 | ã»GICC_BPRã®ãã³ã»ãã¥ã¢ã³ãã¼ã®è¨å®
|
---|
263 | - GICC_CTLR.CBPRã0ã®æï¼ã°ã«ã¼ã1ã®ããªã¨ã³ãã·ã§ã³ã«ã¯ï¼GICC_BPRã®
|
---|
264 | ãã³ã»ãã¥ã¢ã³ãã¼ããã1å¼ããå¤ãã使ããã
|
---|
265 | - GICC_BPRã®ãã³ã»ãã¥ã¢ã³ãã¼ã«ï¼0ã¯è¨å®ã§ããªã
|
---|
266 |
|
---|
267 | âããã°ã©ãã³ã°ã¢ãã«ï¼Programmers' Modelï¼
|
---|
268 |
|
---|
269 | ã¬ã¸ã¹ã¿åã®ã³ã³ãã³ã·ã§ã³
|
---|
270 | GICD_xxxx ⦠ãã£ã¹ããªãã¥ã¼ã¿ã®ã¬ã¸ã¹ã¿
|
---|
271 | GICC_xxxx ⦠CPUã¤ã³ã¿ãã§ã¼ã¹ã®ã¬ã¸ã¹ã¿
|
---|
272 | GICH_xxxx ⦠仮æ³ã¤ã³ã¿ãã§ã¼ã¹å¶å¾¡ã¬ã¸ã¹ã¿ï¼ãã¤ããã¤ã¶ã使ãï¼
|
---|
273 | GICV_xxxx ⦠仮æ³CPUã¤ã³ã¿ãã§ã¼ã¹ã®ã¬ã¸ã¹ã¿
|
---|
274 |
|
---|
275 | ã¬ã¸ã¹ã¿ã«é¢ããåå
|
---|
276 | ã»ãã¹ã¦ã®ã¬ã¸ã¹ã¿ã¯32ãããå¹
|
---|
277 |
|
---|
278 | ã»äºç´ã¯ãã¹ã¦RAZ/WI
|
---|
279 |
|
---|
280 | âãã£ã¹ããªãã¥ã¼ã¿ã®ããã°ã©ãã³ã°ã¢ãã«
|
---|
281 |
|
---|
282 | ãã£ã¹ããªãã¥ã¼ã¿å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICD_CTLRï¼0x000
|
---|
283 | [31:2] äºç´
|
---|
284 | [1] EnableGrp1 ⦠ã»ãã¥ãªãã£æ¡å¼µã®å ´åã®ã¿
|
---|
285 | 0ï¼ã°ã«ã¼ã1ã®å²è¾¼ã¿ããã©ã¯ã¼ãããªã
|
---|
286 | 1ï¼ã°ã«ã¼ã1ã®å²è¾¼ã¿ããã©ã¯ã¼ããã
|
---|
287 | [0] Enable ⦠ã»ãã¥ãªãã£æ¡å¼µãªãï¼EnableGrp0 ⦠ã»ãã¥ãªãã£æ¡å¼µ
|
---|
288 | 0ï¼ï¼ã°ã«ã¼ã0ã®ï¼å²è¾¼ã¿ããã©ã¯ã¼ãããªã
|
---|
289 | 1ï¼ï¼ã°ã«ã¼ã0ã®ï¼å²è¾¼ã¿ããã©ã¯ã¼ããã
|
---|
290 |
|
---|
291 | å²è¾¼ã¿ã³ã³ããã¼ã©ã¿ã¤ãã¬ã¸ã¹ã¿ï¼GICD_TYPERï¼0x004ï¼RO
|
---|
292 |
|
---|
293 | ãã£ã¹ããªãã¥ã¼ã¿å®è£
|
---|
294 | IDã¬ã¸ã¹ã¿ï¼GICD_IIDRï¼0x008ï¼RO
|
---|
295 |
|
---|
296 | å²è¾¼ã¿ã°ã«ã¼ãã¬ã¸ã¹ã¿ï¼GICD_IGROUPRnï¼0x080 ⦠ã»ãã¥ãªãã£æ¡å¼µ
|
---|
297 |
|
---|
298 | å²è¾¼ã¿ã¤ãã¼ãã«ã»ããã¬ã¸ã¹ã¿ï¼GICD_ISENABLERnï¼0x100ã0x17c
|
---|
299 | å²è¾¼ã¿ã¤ãã¼ãã«ã¯ãªã¢ã¬ã¸ã¹ã¿ï¼GICD_ICENABLERnï¼0x180ã0x1fc
|
---|
300 | - åå²è¾¼ã¿ãã¤ãã¼ãã«ãããã©ãããå¶å¾¡ããã¬ã¸ã¹ã¿
|
---|
301 | - ã»ããã¬ã¸ã¹ã¿ã®å¯¾å¿ãããããã«1ãæ¸ãã¨ã¤ãã¼ãã«
|
---|
302 | - ã¯ãªã¢ã¬ã¸ã¹ã¿ã®å¯¾å¿ãããããã«1ãæ¸ãã¨ãã£ã¹ã¨ã¼ãã«
|
---|
303 | - ã©ã¡ãã®ã¬ã¸ã¹ã¿ãèªãã§ãï¼ã¤ãã¼ãã«ããã¦ããå²è¾¼ã¿ã«å¯¾ãã¦1ãè¿ã
|
---|
304 |
|
---|
305 | å²è¾¼ã¿ãã³ãã£ã³ã°ã»ããã¬ã¸ã¹ã¿ï¼GICD_ISPENDRnï¼0x200ã0x27c
|
---|
306 | å²è¾¼ã¿ãã³ãã£ã³ã°ã¯ãªã¢ã¬ã¸ã¹ã¿ï¼GICD_ICPENDRnï¼0x280ã0x2fc
|
---|
307 | - åå²è¾¼ã¿ããã³ãã£ã³ã°ç¶æ
|
---|
308 | ãã©ãããå¶å¾¡ããã¬ã¸ã¹ã¿
|
---|
309 | - SGIã¯ï¼ãã®ã¬ã¸ã¹ã¿ã§ã»ããï¼ã¯ãªã¢ã§ããªãï¼å¥ã®ã¬ã¸ã¹ã¿ã使ãï¼
|
---|
310 | - ã»ããã¬ã¸ã¹ã¿ã®å¯¾å¿ãããããã«1ãæ¸ãã¨ãã³ãã£ã³ã°ç¶æ
|
---|
311 | ã«
|
---|
312 | + ã¢ã¯ãã£ãç¶æ
|
---|
313 | ã®å ´åã¯ï¼"active and pending"ã«
|
---|
314 | - ã¯ãªã¢ã¬ã¸ã¹ã¿ã®å¯¾å¿ãããããã«1ãæ¸ãã¨ãã³ãã£ã³ã°ç¶æ
|
---|
315 | ã解é¤
|
---|
316 | + "active and pending"ã®å ´åã¯ï¼ã¢ã¯ãã£ãç¶æ
|
---|
317 | ã«
|
---|
318 | - ã¬ãã«ããªã¬ã®å ´åã§ãï¼ãã®ã¬ã¸ã¹ã¿ã§è¦æ±ããå²è¾¼ã¿ã¯ã¨ãã¸ããªã¬ã®
|
---|
319 | ããã«æ¯ãèãï¼ãã®ã¬ã¸ã¹ã¿ã§è¦æ±ããå²è¾¼ã¿ãè¨æ¶ããFFãããï¼
|
---|
320 | - ã©ã¡ãã®ã¬ã¸ã¹ã¿ãèªãã§ãï¼ãã³ãã£ã³ã°ããã¦ããå²è¾¼ã¿ã«å¯¾ãã¦1ãè¿ã
|
---|
321 | ãã«ãããã»ããµã®SGIã¨PPIã«é¢ãã¦ã¯ï¼èªããã»ããµã«å¯¾ãã¦
|
---|
322 | ãã³ãã£ã³ã°ããã¦ãããã©ãããè¿ã
|
---|
323 |
|
---|
324 | å²è¾¼ã¿ã¢ã¯ãã£ãã»ããã¬ã¸ã¹ã¿ï¼GICD_ISACTIVERnï¼0x300ã0x37c
|
---|
325 | ⦠GICv1ã§ã¯å²è¾¼ã¿ã¢ã¯ãã£ããããã¬ã¸ã¹ã¿ã§RO
|
---|
326 | å²è¾¼ã¿ã¢ã¯ãã£ãã¯ãªã¢ã¬ã¸ã¹ã¿ï¼GICD_ICACTIVERnï¼0x380ã0x3fc
|
---|
327 |
|
---|
328 | å²è¾¼ã¿åªå
|
---|
329 | 度ã¬ã¸ã¹ã¿ï¼GICD_IPRIORITYRnï¼0x400ã0x7f8
|
---|
330 | - åå²è¾¼ã¿ã®åªå
|
---|
331 | 度ã8ãããã§è¨å®
|
---|
332 | ï¼ãã¤ãåä½ã§ã¢ã¯ã»ã¹å¯è½
|
---|
333 |
|
---|
334 | å²è¾¼ã¿ã¿ã¼ã²ããã¬ã¸ã¹ã¿ï¼GICD_ITARGETSRnï¼0x800ã0xbf8 ⦠ãã«ãã³ã¢ã®ã¿
|
---|
335 | ⦠æåã®32åï¼ã¿ã¼ã²ããåºå®ï¼ã¯RO
|
---|
336 | - åå²è¾¼ã¿ã®ã¿ã¼ã²ããããã»ããµã®ãªã¹ãã8ãããã®ããããããã§è¨å®
|
---|
337 | ï¼ãã¤ãåä½ã§ã¢ã¯ã»ã¹å¯è½
|
---|
338 |
|
---|
339 | å²è¾¼ã¿ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¬ã¸ã¹ã¿ï¼GICD_ICFGRnï¼0xc00ã0xcfc
|
---|
340 | - åå²è¾¼ã¿ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã2ãããã§è¨å®
|
---|
341 | - ã¬ãã«ããªã¬ãã¨ãã¸ããªã¬ããè¨å®
|
---|
342 | - GICv1ããåã®ä¸é¨ã®å®è£
|
---|
343 | ã§ã¯ï¼N-Nã¢ãã«ã1-Nã¢ãã«ããããã§è¨å®
|
---|
344 | 0ï¼N-Nã¢ãã«
|
---|
345 | 1ï¼1-Nã¢ãã«
|
---|
346 |
|
---|
347 | å²è¾¼ã¿ãã³ã»ãã¥ã¢ã¢ã¯ã»ã¹å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICD_NSCARnï¼0xe00ã0xefc ⦠ãªãã·ã§ã³
|
---|
348 |
|
---|
349 | SGIã¬ã¸ã¹ã¿ï¼GICD_SGIRï¼0xf00ï¼WO
|
---|
350 | - SGIãçºçãããã¬ã¸ã¹ã¿
|
---|
351 |
|
---|
352 | SGIãã³ãã£ã³ã°ã¯ãªã¢ã¬ã¸ã¹ã¿ï¼GICD_CPENDSGIRnï¼0xf10ã0xf1c
|
---|
353 | SGIãã³ãã£ã³ã°ã»ããã¬ã¸ã¹ã¿ï¼GICD_SPENDSGIRnï¼0xf20ã0xf2c
|
---|
354 | - SIGããã³ãã£ã³ã°ç¶æ
|
---|
355 | ãã©ãããå¶å¾¡ããã¬ã¸ã¹ã¿
|
---|
356 |
|
---|
357 | ä»ã«ï¼å®è£
|
---|
358 | å®ç¾©ã¬ã¸ã¹ã¿ããã
|
---|
359 |
|
---|
360 | âCPUã¤ã³ã¿ãã§ã¼ã¹ã®ããã°ã©ãã³ã°ã¢ãã«
|
---|
361 |
|
---|
362 | CPUã¤ã³ã¿ãã§ã¼ã¹å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICC_CTLRï¼0x000
|
---|
363 |
|
---|
364 | å²è¾¼ã¿åªå
|
---|
365 | 度ãã¹ã¯ã¬ã¸ã¹ã¿ï¼GICC_PMRï¼0x004
|
---|
366 |
|
---|
367 | ãã¤ããªãã¤ã³ãã¬ã¸ã¹ã¿ï¼GICC_BPRï¼0x008
|
---|
368 | - å²è¾¼ã¿åªå
|
---|
369 | 度ãï¼ã°ã«ã¼ãåªå
|
---|
370 | 度ã¨ãµãåªå
|
---|
371 | 度ã«åããä½ç½®ãè¨å®
|
---|
372 | [31:3] äºç´
|
---|
373 | [2:0] åå²ä½ç½®ï¼gãã°ã«ã¼ãåªå
|
---|
374 | 度ï¼sããµãåªå
|
---|
375 | 度ï¼
|
---|
376 | 0ï¼ä¸ä½7ããããã°ã«ã¼ãåªå
|
---|
377 | 度 ggggggg.s
|
---|
378 | 1ï¼ä¸ä½6ããããã°ã«ã¼ãåªå
|
---|
379 | 度 gggggg.ss
|
---|
380 | 6ï¼åä¸ä½ããããã°ã«ã¼ãåªå
|
---|
381 | 度 g.sssssss
|
---|
382 | 7ï¼ããªã¨ã³ãã·ã§ã³ããªã ssssssss
|
---|
383 | ï¼åªå
|
---|
384 | 度ã8ãããã®æã¯ï¼å
|
---|
385 | ¨ããããã°ã«ã¼ãåªå
|
---|
386 | 度ã«ãããã¨ã¯ã§ããªã
|
---|
387 |
|
---|
388 | å²è¾¼ã¿ã¢ã¯ãã¼ã¬ãã¸ã¬ã¸ã¹ã¿ï¼GICC_IARï¼0x00cï¼RO
|
---|
389 |
|
---|
390 | å²è¾¼ã¿å®äºã¬ã¸ã¹ã¿ï¼GICC_EOIRï¼0x010ï¼WO
|
---|
391 |
|
---|
392 | å®è¡ä¸åªå
|
---|
393 | 度ã¬ã¸ã¹ã¿ï¼GICC_RPRï¼0x014ï¼RO
|
---|
394 |
|
---|
395 | æé«åªå
|
---|
396 | 度ãã³ãã£ã³ã°å²è¾¼ã¿ã¬ã¸ã¹ã¿ï¼GICC_HPPIRï¼0x018ï¼RO
|
---|
397 |
|
---|
398 | ï¼çç¥ï¼ã»ãã¥ãªãã£æ¡å¼µã®ããã®ã¬ã¸ã¹ã¿ï¼
|
---|
399 |
|
---|
400 | CPUã¤ã³ã¿ãã§ã¼ã¹IDã¬ã¸ã¹ã¿ï¼GICC_IIDRï¼0x00fcï¼RO
|
---|
401 |
|
---|
402 | å²è¾¼ã¿ãã£ã¢ã¯ãã£ãã¼ãã¬ã¸ã¹ã¿ï¼GICC_DIRï¼0x1000ï¼WO ⦠GICv2ã®ã¿
|
---|
403 |
|
---|
404 | âPrimeCell GICï¼Generic Interrupt Controllerï¼PL390ï¼[2]ï¼
|
---|
405 |
|
---|
406 | ãã®GICã¯ï¼ãARM Generic Interrupt Controller Architectureãï¼æè¨ãã¦
|
---|
407 | ããªããï¼GICv1ã¨æãããï¼ã«æºæ
|
---|
408 |
|
---|
409 | ããã§è¨ããã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¨ã¯ï¼ãã¼ãã¦ã§ã¢IPã®ã³ã³ãã£ã®ã¥
|
---|
410 | ã¬ã¼ã·ã§ã³ã®ãã¨
|
---|
411 |
|
---|
412 | âGICã®æ§æ
|
---|
413 |
|
---|
414 | - ãã£ã¹ããªãã¥ã¼ã¿ ⦠1ã¤ã ã
|
---|
415 | + å¤é¨ããã®å²è¾¼ã¿ãåãåãï¼æé«åªå
|
---|
416 | 度ã®ãã®ãCPUã¤ã³ã¿ãã§ã¼ã¹ã«éã
|
---|
417 | - CPUã¤ã³ã¿ãã§ã¼ã¹ ⦠ããã»ããµæ¯ã«
|
---|
418 | - ãã®ä»ã®ãããã¯
|
---|
419 | + AMBAã¹ã¬ã¼ãã¤ã³ã¿ãã§ã¼ã¹
|
---|
420 | + ã¯ããã¯ã¨ãªã»ãã
|
---|
421 | + enableã¨matchä¿¡å·
|
---|
422 | ï¼å¶å¾¡ã¬ã¸ã¹ã¿ãæä½ã§ããããã»ããµãéå®ããæ©è½
|
---|
423 |
|
---|
424 | âGICã®æ©è½
|
---|
425 |
|
---|
426 | ã»3ã¿ã¤ãã®å²è¾¼ã¿ï¼SIGï¼PPIï¼SPIï¼ããµãã¼ã
|
---|
427 | â»ãã®ä»ã«ã¬ã¬ã·ã¼å²è¾¼ã¿ï¼legacy interruptï¼ããã
|
---|
428 |
|
---|
429 | ã»å²è¾¼ã¿ã次ã®ããã«ããã°ã©ã å¯è½
|
---|
430 | - ã»ãã¥ãªãã£ç¶æ
|
---|
431 |
|
---|
432 | - å²è¾¼ã¿ã¬ãã«
|
---|
433 | - å²è¾¼ã¿ã®ç¦æ¢/許å¯
|
---|
434 | - å²è¾¼ã¿ãåãåãããã»ããµ
|
---|
435 |
|
---|
436 | ã»ã»ãã¥ãªãã£æ¡å¼µã«å¯¾å¿å¯è½
|
---|
437 |
|
---|
438 | âã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãªãã·ã§ã³ ï¼é¢ä¿ããããªé
|
---|
439 | ç®ã®ã¿ï¼
|
---|
440 |
|
---|
441 | - ã»ãã¥ãªãã£æ¡å¼µã®ãµãã¼ãã®æç¡
|
---|
442 | - CPUã¤ã³ã¿ãã§ã¼ã¹ã®æ°
|
---|
443 | - ããã¯å¯è½ãªSPIï¼è¦èª¿æ»ï¼ã®æ°
|
---|
444 | - PPIé¢é£
|
---|
445 | + CPUã¤ã³ã¿ãã§ã¼ã¹æ¯ã®æ°ï¼0ã16ï¼
|
---|
446 | + ã¬ãã«ããªã¬ãã¨ãã¸ããªã¬ã
|
---|
447 | + ç´ éããç»é²ãåæã
|
---|
448 | - ããã»ããµæ¯ã®SGIã®æ°ï¼0ã16ï¼
|
---|
449 | - SPIé¢é£
|
---|
450 | + æ°ï¼1ã988ï¼
|
---|
451 | + ç´ éããç»é²ãåæã
|
---|
452 | - ã¬ã¬ã·ã¼å²è¾¼ã¿é¢é£
|
---|
453 | + ãµãã¼ãã®æç¡ï¼0ã2ï¼
|
---|
454 | + ã¬ãã«ããªã¬ãã¨ãã¸ããªã¬ã
|
---|
455 | + ç´ éããç»é²ãåæã
|
---|
456 | - åªå
|
---|
457 | 度ã¬ãã«ã®æ°
|
---|
458 | - The number of register slices in the highest pending interrupt logic.
|
---|
459 |
|
---|
460 | âå²è¾¼ã¿åä»ï¼ãã£ã¹ããªãã¥ã¼ã¿ã®æ©è½ï¼
|
---|
461 |
|
---|
462 | - å²è¾¼ã¿ã®ç»é²ï¼registeringï¼ã¨åæï¼synchronizingï¼
|
---|
463 | + ç´ éãã»ç»é²ã»åæã®3ã¤ãã1ã¤ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã§æ±ºãã
|
---|
464 | + ç»é² ⦠å²è¾¼ã¿è¦æ±ã次ã®ã¯ããã¯ã§åãåã
|
---|
465 | + åæ ⦠å²è¾¼ã¿è¦æ±ã次ã®æ¬¡ã®ã¯ããã¯ã§åãåã
|
---|
466 | - ã¨ãã¸æ¤åº
|
---|
467 | + ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®2ã¤ãã1ã¤ãé¸ã¹ã
|
---|
468 | + PPIã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³æã«æ±ºãã
|
---|
469 |
|
---|
470 | âCPUã¤ã³ã¿ãã§ã¼ã¹
|
---|
471 |
|
---|
472 | - 次ã®ä¸¡æ¹ãããåªå
|
---|
473 | 度ãé«ãå²è¾¼ã¿ãåãä»ãã
|
---|
474 | + ããã°ã©ã ã§ããå²è¾¼ã¿åªå
|
---|
475 | 度ãã¹ã¯
|
---|
476 | + ããã»ããµããµã¼ãã¹ä¸ã®å²è¾¼ã¿
|
---|
477 |
|
---|
478 | âå®è£
|
---|
479 | å®ç¾©äºé
|
---|
480 | ï¼é¢ä¿ããããªé
|
---|
481 | ç®ã®ã¿ï¼
|
---|
482 |
|
---|
483 | ãARM Generic Interrupt Controller Architectureãã§å®è£
|
---|
484 | å®ç¾©ã¨ããã¦ãã
|
---|
485 | äºé
|
---|
486 | ãï¼ãã®GICã§ã¯æ¬¡ã®ããã«å®ç¾©ãã¦ããï¼
|
---|
487 |
|
---|
488 | - PPIã®ããªã¬ã¢ã¼ãã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³æã«æ±ºå®ãï¼ã¬ã¸ã¹ã¿ã®
|
---|
489 | è¨å®ã§å¤ããããªã
|
---|
490 |
|
---|
491 | - ã¢ã¯ãã£ãã¾ãã¯ã¢ã¯ãã£ããã³ãã£ã³ã°ã®å²è¾¼ã¿ã®åªå
|
---|
492 | 度ã¬ãã«ãå¤æ´
|
---|
493 | ããå ´åã®æ¯èãï¼ãã®GICã¯æ°ããåªå
|
---|
494 | 度ã¬ãã«ãããã«ä½¿ã
|
---|
495 |
|
---|
496 | - åãåªå
|
---|
497 | 度ã®å²è¾¼ã¿éã®åªå
|
---|
498 | é¢ä¿ï¼ç¥
|
---|
499 |
|
---|
500 | - ã¿ã¼ã²ããããã»ããµãè¤æ°ã®SPIã®èª¿åï¼ãã®GICã¯èª¿åãããªãï¼ã
|
---|
501 | ã¹ã¦ã®ã¿ã¼ã²ããããã»ããµã«åæã«å²è¾¼ã¿è¦æ±ãéãï¼æåã«å¿çã
|
---|
502 | ãï¼IARãèªãã ããã»ããµï¼ãå²è¾¼ã¿IDãåãåãï¼ä»ã®ããã»ããµã«
|
---|
503 | ã¯ï¼ã¹ããªã¢ã¹å²è¾¼ã¿ãè¿ãï¼
|
---|
504 |
|
---|
505 | âARM11 MPCore Distributed Interrupt Controllerï¼[3]ã®ç¬¬10ç« ï¼
|
---|
506 |
|
---|
507 | â»ARM11 MPCoreã®Distributed Interrupt Controllerã¯ï¼GICã®å身ã¨æãããï¼
|
---|
508 | ããã¥ã¢ã«ä¸ã«GICã¨ããç¨èªã¯åºã¦ããªããï¼GICã¨ã»ã¼äºæã§ä½¿ç¨ã§ããï¼
|
---|
509 |
|
---|
510 | Distributed Interrupt Controllerã¯ï¼æ¬¡ã®2ã¤ã§æ§æãããï¼
|
---|
511 | - å²è¾¼ã¿ãã£ã¹ããªãã¥ã¼ã¿
|
---|
512 | - CPUå²è¾¼ã¿ã¤ã³ã¿ãã§ã¼ã¹
|
---|
513 |
|
---|
514 | âå²è¾¼ã¿ãã£ã¹ããªãã¥ã¼ã¿
|
---|
515 |
|
---|
516 | ã»å²è¾¼ã¿è¦æ±ãããã»ããµã«åé
|
---|
517 | ããã¦ãããï¼å²è¾¼ã¿æ¯ã«ï¼åªå
|
---|
518 | 度ã¨ï¼ã¿ã¼
|
---|
519 | ã²ããããã»ããµã®ãªã¹ããè¨å®ã§ããï¼
|
---|
520 |
|
---|
521 | ã»å²è¾¼ã¿æºã«ã¯ï¼ä»¥ä¸ã®ãã®ãããï¼
|
---|
522 | - ããã»ããµéå²è¾¼ã¿ï¼IPIï¼â¦ GICã®SGIã«ç¸å½
|
---|
523 | + ã½ããã¦ã§ã¢ããè¦æ±ããå²è¾¼ã¿ï¼ID0ãID15
|
---|
524 | - ãã©ã¤ãã¼ãã¿ã¤ãã¨ã¦ã©ãããã㰠⦠GICã®PPIã«ç¸å½
|
---|
525 | + ARM11 MPCoreå
|
---|
526 | èµã¿ã¤ãããã®å²è¾¼ã¿ï¼ID29ã¨ID30
|
---|
527 | - ã¬ã¬ã·ã¼ãªnIRQã㳠⦠GICã®å²è¾¼ã¿ãã¤ãã¹ã«ç¸å½
|
---|
528 | + åããã»ããµã«ç´çµï¼ID31
|
---|
529 | - ãã¼ãã¦ã§ã¢å²è¾¼ã¿ ⦠GICã®SPIã«ç¸å½
|
---|
530 | + åå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾å¿ããå²è¾¼ã¿ï¼ID32ãæ大ID255
|
---|
531 |
|
---|
532 | ã»nFIQã¯æ±ããªãï¼nFIQã®è¦æ±ã©ã¤ã³ã¯ï¼åããã»ããµã«ç´çµãããï¼
|
---|
533 |
|
---|
534 | ã»å²è¾¼ã¿ãã£ã¹ããªãã¥ã¼ã¿ã¯ï¼ããã»ããµæ¯ã«ãã³ãã£ã³ã°ãã¦ããå²è¾¼ã¿
|
---|
535 | ãã®ãªã¹ããæã¡ï¼ãã®ä¸ã§æãåªå
|
---|
536 | 度ã®é«ããã®ãé¸ãã§ï¼CPUå²è¾¼ã¿ã¤ã³ã¿
|
---|
537 | ããã§ã¼ã¹ã«éç¥ããï¼
|
---|
538 |
|
---|
539 | - åªå
|
---|
540 | 度ãåãå²è¾¼ã¿ã®éã§ã¯ï¼IDãå°ããæ¹ãåªå
|
---|
541 |
|
---|
542 |
|
---|
543 | - 1-Nã¢ãã«ã¨N-Nã¢ãã«ã®ä¸¡æ¹ããµãã¼ã
|
---|
544 | + 1-Nã¢ãã«ã§ï¼è¤æ°ã®ããã»ããµãåæã«IARã«ã¢ã¯ã»ã¹ããã¨ï¼å
|
---|
545 | ãå²è¾¼ã¿ãéç¥ããã
|
---|
546 | ï¼å²è¾¼ã¿å¦çã®ã½ããã¦ã§ã¢ã§è§£æ±ºããªããã°ãªããªãï¼
|
---|
547 | â»è¤æ°ã®ã¿ã¼ã²ããããã»ããµã¸ã®éç¥ã¯ä½¿ããªãæ¹ãç¡é£
|
---|
548 |
|
---|
549 | âå²è¾¼ã¿ãã£ã¹ããªãã¥ã¼ã¿ã®ã¬ã¸ã¹ã¿
|
---|
550 |
|
---|
551 | ã»å²è¾¼ã¿ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¬ã¸ã¹ã¿ã§ï¼1-Nã¢ãã«ãN-Nã¢ãã«ããè¨å®ãã
|
---|
552 | ãGICv1ããåã®ä¸é¨ã®å®è£
|
---|
553 | ãã«è©²å½
|
---|
554 |
|
---|
555 | âCPUå²è¾¼ã¿ã¤ã³ã¿ãã§ã¼ã¹ã®ã¬ã¸ã¹ã¿
|
---|
556 |
|
---|
557 | ã»ã¬ã¸ã¹ã¿ã®ä¸è¦§
|
---|
558 |
|
---|
559 | ã¬ã¸ã¹ã¿å ãªãã»ãã
|
---|
560 | ---------------------------------------------------
|
---|
561 | Control Register 0x00 R/W
|
---|
562 | Priority Mask Register 0x04 R/W
|
---|
563 | Binary Pointer Register 0x08 R/W
|
---|
564 | Interrupt Acknowledge Register 0x0c RO
|
---|
565 | End of Interrupt Register 0x10 WO
|
---|
566 | Running Priority Register 0x14 RO
|
---|
567 | Highest Pending Interrupt Register 0x18 RO
|
---|
568 |
|
---|
569 | ã»å¶å¾¡ã¬ã¸ã¹ã¿
|
---|
570 | [31:1] äºç´
|
---|
571 | [1] Enable
|
---|
572 | 0ï¼å¤é¨nIRQå
|
---|
573 | ¥åã®ã¿ãæå¹
|
---|
574 | 1ï¼ãã¹ã¦ã®å²è¾¼ã¿å
|
---|
575 | ¥åãæå¹
|
---|
576 |
|
---|
577 | ã»åªå
|
---|
578 | 度ãã¹ã¯ã¬ã¸ã¹ã¿
|
---|
579 | [31:8] SBZ
|
---|
580 | [7:4] åªå
|
---|
581 | 度ãã¹ã¯
|
---|
582 | 0x0ï¼ãã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯
|
---|
583 | ...
|
---|
584 | 0xEï¼å²è¾¼ã¿åªå
|
---|
585 | 度14ã15ããã¹ã¯
|
---|
586 | 0xFï¼å²è¾¼ã¿åªå
|
---|
587 | 度15ã®ã¿ãã¹ã¯
|
---|
588 | â»å²è¾¼ã¿åªå
|
---|
589 | 度15ã¯åãä»ããããªã
|
---|
590 | [3:0] SBZ
|
---|
591 |
|
---|
592 | â»ã«ã¼ãã«ã®å²è¾¼ã¿åªå
|
---|
593 | 度ãã¹ã¯ã¨ã®å¯¾å¿
|
---|
594 | 0x0 -15
|
---|
595 | ...
|
---|
596 | 0xE -1
|
---|
597 | 0xF 0
|
---|
598 |
|
---|
599 | ã»ãã¤ããªãã¤ã³ãã¬ã¸ã¹ã¿
|
---|
600 | [31:3] äºç´
|
---|
601 | [2:0] Binary point å²è¾¼ã¿åªå
|
---|
602 | 度ã®ã©ã®ããããããªã¨ã³ãã·ã§ã³ã®
|
---|
603 | å¤æã«ä½¿ããï¼
|
---|
604 | 0x3ï¼ãã¹ã¦ã®ãããã使ãï¼ããã©ã«ãï¼
|
---|
605 | 0x4ï¼ä¸ä½3ãããã使ã
|
---|
606 | 0x5ï¼ä¸ä½2ãããã使ã
|
---|
607 | 0x6ï¼æä¸ä½ãããã®ã¿ä½¿ã
|
---|
608 | 0x7ï¼ããªã¨ã³ãã·ã§ã³ããªã
|
---|
609 | ä»ã®å¤ãæ¸ãã¨ï¼0x03ãæ¸ããã®ã¨åãã«ãªã
|
---|
610 |
|
---|
611 | ã»å²è¾¼ã¿ã¢ã¯ãã¼ã¬ãã¸ã¬ã¸ã¹ã¿
|
---|
612 | [31:13] SBZ/RAZ
|
---|
613 | [12:10] ã½ã¼ã¹CPU ID ããã»ããµéå²è¾¼ã¿ãè¦æ±ããããã»ããµID
|
---|
614 | [9:0] å²è¾¼ã¿ID
|
---|
615 | 1023ï¼ã¹ããªã¢ã¹å²è¾¼ã¿
|
---|
616 |
|
---|
617 | ã»å²è¾¼ã¿å®äºã¬ã¸ã¹ã¿
|
---|
618 | å²è¾¼ã¿å¦çã®å®äºãéç¥ããããã®ã¬ã¸ã¹ã¿
|
---|
619 | å²è¾¼ã¿ã¢ã¯ãã¼ã¬ãã¸ã¬ã¸ã¹ã¿ã¨åããã©ã¼ããã
|
---|
620 |
|
---|
621 | ã»å®è¡ä¸åªå
|
---|
622 | 度ã¬ã¸ã¹ã¿
|
---|
623 | æå¾ã«ã¢ã¯ãã¼ã¬ãã¸ãã¦ï¼ã¾ã å®äºãã¦ããªãå²è¾¼ã¿ã®åªå
|
---|
624 | 度
|
---|
625 | [31:8] äºç´
|
---|
626 | [7:4] åªå
|
---|
627 | 度
|
---|
628 | [3:0] SBZ
|
---|
629 |
|
---|
630 | ã»æé«åªå
|
---|
631 | 度ãã³ãã£ã³ã°å²è¾¼ã¿ã¬ã¸ã¹ã¿
|
---|
632 | ãã³ãã£ã³ã°ãã¦ããå²è¾¼ã¿ã®ä¸ã§æé«åªå
|
---|
633 | 度ã®ãã®ãåå¾ããããã®ã¬ã¸ã¹ã¿
|
---|
634 | ãã³ãã£ã³ã°ãã¦ããå²è¾¼ã¿ããªãæã¯ï¼å²è¾¼ã¿IDã¨ãã¦1023ãè¿ã
|
---|
635 | å²è¾¼ã¿ã¢ã¯ãã¼ã¬ãã¸ã¬ã¸ã¹ã¿ã¨åããã©ã¼ããã
|
---|
636 |
|
---|
637 | 以ä¸
|
---|