Changeset 356 for ssp_aarch64/trunk/arm64_gcc/gic_config.h
- Timestamp:
- Jun 8, 2018, 11:24:32 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ssp_aarch64/trunk/arm64_gcc/gic_config.h
-
Property svn:mime-type
set to
text/plain; charset=utf-8
r353 r356 8 8 * Nagoya Municipal Industrial Research Institute, JAPAN 9 9 * 10 * ä¸è¨èä½æ¨©è 11 ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 12 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 13 * å¤ã»åé 14 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 28 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 41 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 42 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 43 ããã³TOPPERSããã¸ã§ã¯ãã 44 * å 45 責ãããã¨ï¼ 46 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 50 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 51 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 52 * ã®è²¬ä»»ãè² ããªãï¼ 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 53 38 * 54 39 * $Id: gic_config.h 714 2018-05-29 05:52:19Z saito $ … … 56 41 57 42 /* 58 * ã«ã¼ãã«ã®å²è¾¼ã¿ã³ã³ããã¼ã©ä¾åé¨ï¼GICç¨ï¼59 * 60 * ãã®ããããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ã61 * ããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼62 * ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼43 * カーネルの割込みコントローラ依存部(GIC用) 44 * 45 * このヘッダファイルは,target_config.h(または,そこからインクルード 46 * されるファイル)のみからインクルードされる. 47 * 他のファイルから直接インクルードしてはならない. 63 48 */ 64 49 … … 70 55 71 56 /* 72 * å²è¾¼ã¿çªå·ã®å®ç¾©57 * 割込み番号の定義 73 58 */ 74 59 #define GIC_INTNO_PPI0 16U … … 76 61 77 62 /* 78 * å²è¾¼ã¿åªå 79 度ã®æä½ 80 * 81 * å²è¾¼ã¿åªå 82 度ã®å 83 é¨è¡¨ç¾ã¯ï¼uint_tåã§è¡¨ãï¼0ãæé«åªå 84 度ã§ï¼å¤ã大ã 85 * ãã»ã©åªå 86 度ãä¸ãããã®ã¨ããï¼GICã®ã¬ã¸ã¹ã¿æ§æã¨æ´åãããããã«ï¼ 87 * åªå 88 度ã®æ®µæ°ã256段éã®æã«ãããã¦è¡¨ãï¼ 63 * 割込み優先度の操作 64 * 65 * 割込み優先度の内部表現は,uint_t型で表し,0が最高優先度で,値が大き 66 * いほど優先度が下がるものとする.GICのレジスタ構成と整合させるために, 67 * 優先度の段数が256段階の時にあわせて表す. 89 68 */ 90 69 #define GIC_PRI_LEVEL (TMAX_INTPRI - TMIN_INTPRI + 2) … … 109 88 #endif /* GIC_PRI_LEVEL == 16 */ 110 89 111 /* å¤é¨è¡¨ç¾ã¸ã®å¤æ*/90 /* 外部表現への変換 */ 112 91 #define EXT_IPM(pri) \ 113 92 (((PRI)((pri) >> GIC_PRI_SHIFT)) - (GIC_PRI_LEVEL - 1)) 114 93 115 /* å 116 é¨è¡¨ç¾ã¸ã®å¤æ */ 94 /* 内部表現への変換 */ 117 95 #define INT_IPM(ipm) \ 118 96 (((uint_t)((ipm) + (GIC_PRI_LEVEL - 1))) << GIC_PRI_SHIFT) 119 97 120 98 /* 121 * GICã¬ã¸ã¹ã¿ã®ã¢ãã¬ã¹ãå®ç¾©ããããã®ãã¯ã 122 * 123 * GICã¬ã¸ã¹ã¿ã®ã¢ãã¬ã¹ãï¼ã¢ã»ã³ããªè¨èªãããåç 124 §ã§ããããã«ããã 125 * ãã®ãã¯ãï¼ 99 * GICレジスタのアドレスを定義するためのマクロ 100 * 101 * GICレジスタのアドレスを,アセンブリ言語からも参照できるようにするた 102 * めのマクロ. 126 103 */ 127 104 #ifndef GIC_REG … … 130 107 131 108 /* 132 * CPU ã¤ã³ã¿ãã§ã¼ã¹é¢é£ã®å®ç¾©109 * CPUインタフェース関連の定義 133 110 */ 134 111 #define GICC_CTLR GIC_REG(GICC_BASE, 0x00) … … 141 118 142 119 /* 143 * CPU ã¤ã³ã¿ãã§ã¼ã¹å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICC_CTLRï¼ã®è¨å®å¤144 * ï¼GICv1ã§ã»ãã¥ãªãã£æ¡å¼µããªãå ´åï¼120 * CPUインタフェース制御レジスタ(GICC_CTLR)の設定値 121 * (GICv1でセキュリティ拡張がない場合) 145 122 */ 146 123 #define GICC_CTLR_DISABLE UINT_C(0x00) … … 148 125 149 126 /* 150 * ãã£ã¹ããªãã¥ã¼ã¿é¢é£ã®å®ç¾©127 * ディストリビュータ関連の定義 151 128 */ 152 129 #define GICD_CTLR GIC_REG(GICD_BASE, 0x000) … … 169 146 170 147 /* 171 * ãã£ã¹ããªãã¥ã¼ã¿å¶å¾¡ã¬ã¸ã¹ã¿ï¼GICD_CTLRï¼ã®è¨å®å¤148 * ディストリビュータ制御レジスタ(GICD_CTLR)の設定値 172 149 */ 173 150 #define GICD_CTLR_DISABLE UINT_C(0x00) … … 175 152 176 153 /* 177 * å²è¾¼ã¿ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¬ã¸ã¹ã¿ï¼GICD_ICFGRnï¼ã®è¨å®å¤154 * 割込みコンフィギュレーションレジスタ(GICD_ICFGRn)の設定値 178 155 */ 179 156 #define GICD_ICFGRn_LEVEL UINT_C(0x00) … … 183 160 184 161 /* 185 * CPUã¤ã³ã¿ãã§ã¼ã¹ã®æä½ 186 */ 187 188 /* 189 * å²è¾¼ã¿åªå 190 度ãã¹ã¯ãè¨å®ï¼priã¯å 191 é¨è¡¨ç¾ï¼ 162 * CPUインタフェースの操作 163 */ 164 165 /* 166 * 割込み優先度マスクを設定(priは内部表現) 192 167 */ 193 168 Inline void … … 198 173 199 174 /* 200 * å²è¾¼ã¿åªå 201 度ãã¹ã¯ãåå¾ï¼å 202 é¨è¡¨ç¾ã§è¿ãï¼ 175 * 割込み優先度マスクを取得(内部表現で返す) 203 176 */ 204 177 Inline uint_t … … 209 182 210 183 /* 211 * CPU ã¤ã³ã¿ãã§ã¼ã¹ã®åæå184 * CPUインタフェースの初期化 212 185 */ 213 186 extern void gicc_initialize(void); 214 187 215 188 /* 216 * CPU ã¤ã³ã¿ãã§ã¼ã¹ã®çµäº189 * CPUインタフェースの終了 217 190 */ 218 191 extern void gicc_terminate(void); 219 192 220 193 /* 221 * ãã£ã¹ããªãã¥ã¼ã¿ã®æä½222 */ 223 224 /* 225 * å²è¾¼ã¿ç¦æ¢ï¼å²è¾¼ã¿ã¤ãã¼ãã«ã®ã¯ãªã¢ï¼194 * ディストリビュータの操作 195 */ 196 197 /* 198 * 割込み禁止(割込みイネーブルのクリア) 226 199 */ 227 200 Inline void … … 232 205 233 206 /* 234 * å²è¾¼ã¿è¨±å¯ï¼å²è¾¼ã¿ã¤ãã¼ãã«ã®ã»ããï¼207 * 割込み許可(割込みイネーブルのセット) 235 208 */ 236 209 Inline void … … 241 214 242 215 /* 243 * å²è¾¼ã¿ãã³ãã£ã³ã°ã®ã¯ãªã¢216 * 割込みペンディングのクリア 244 217 */ 245 218 Inline void … … 250 223 251 224 /* 252 * å²è¾¼ã¿ãã³ãã£ã³ã°ã®ã»ãã225 * 割込みペンディングのセット 253 226 */ 254 227 Inline void … … 259 232 260 233 /* 261 * å²è¾¼ã¿ãã³ãã£ã³ã°ã®ãã§ãã¯234 * 割込みペンディングのチェック 262 235 */ 263 236 Inline bool_t … … 268 241 269 242 /* 270 * å²è¾¼ã¿ã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³243 * 割込みのコンフィグレーション 271 244 */ 272 245 Inline void … … 283 256 284 257 /* 285 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿åªå 286 度ã®è¨å®ï¼priã¯å 287 é¨è¡¨ç¾ï¼ 258 * 割込み要求ラインに対する割込み優先度の設定(priは内部表現) 288 259 */ 289 260 Inline void … … 300 271 301 272 /* 302 * å²è¾¼ã¿ã¿ã¼ã²ããããã»ããµã®è¨å®303 * 304 * prcs ã¯ï¼ã¿ã¼ã²ããã¨ããããã»ããµã表ããããã®ãããæ¯è«çåã§æ305 * å®ããï¼306 * ããã»ããµ0 : 0x01307 * ããã»ããµ1 : 0x02308 * ããã»ããµ2 : 0x04309 * ããã»ããµ3 : 0x08273 * 割込みターゲットプロセッサの設定 274 * 275 * prcsは,ターゲットとするプロセッサを表すビットのビット毎論理和で指 276 * 定する. 277 * プロセッサ0 : 0x01 278 * プロセッサ1 : 0x02 279 * プロセッサ2 : 0x04 280 * プロセッサ3 : 0x08 310 281 */ 311 282 Inline void … … 322 293 323 294 /* 324 * ãã£ã¹ããªãã¥ã¼ã¿ã®åæå295 * ディストリビュータの初期化 325 296 */ 326 297 extern void gicd_initialize(void); 327 298 328 299 /* 329 * ãã£ã¹ããªãã¥ã¼ã¿ã®çµäº300 * ディストリビュータの終了 330 301 */ 331 302 extern void gicd_terminate(void); 332 303 333 304 /* 334 * ä¾å¤å 335 ¥å£ã®GICæä½ï¼gic_support.Sï¼ 305 * 例外入口のGIC操作(gic_support.S) 336 306 */ 337 307 extern void gic_exc_entry(void); 338 308 339 309 /* 340 * å²è¾¼ã¿å 341 ¥å£ã®GICæä½ï¼gic_support.Sï¼ 310 * 割込み入口のGIC操作(gic_support.S) 342 311 */ 343 312 extern void gic_int_entry(void); -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.