Changeset 386 for ssp_rpi3/trunk/arch/arm64_gcc/bcm283x/chip_config.h
- Timestamp:
- Apr 17, 2019, 12:13:00 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ssp_rpi3/trunk/arch/arm64_gcc/bcm283x/chip_config.h
-
Property svn:mime-type
set to
text/plain; charset=utf-8
r384 r386 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 * ã®è²¬ä»»ãè² ããªãï¼ 53 * 54 */ 55 56 /* 57 * ãããä¾åå¦ç(BCM2837ç¨) 58 * 59 * ãã®ããããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ã 60 * ããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ 61 * ä»ã®ãã¡ã¤ã«ããç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼ 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 * の責任を負わない. 38 * 39 */ 40 41 /* 42 * チップ依存処理(BCM2837用) 43 * 44 * このヘッダファイルは,target_config.h(または,そこからインクルード 45 * されるファイル)のみからインクルードされる. 46 * 他のファイルから直接インクルードしてはならない. 62 47 */ 63 48 … … 66 51 67 52 /* 68 * ãã¼ãã¦ã§ã¢å®ç¾©53 * ハードウェア定義 69 54 */ 70 55 #include "bcm2837.h" 71 56 72 57 /* 73 * å²è¾¼ã¿é¢é£ 74 */ 75 76 /* 77 * å²è¾¼ã¿åªå 78 度ã®å¤æ 79 */ 80 #define EXT_IPM(pri) (-pri) // å 81 é¨è¡¨ç¾ããå¤é¨è¡¨ç¾ã¸ 82 #define INT_IPM(ipm) (-ipm) // å¤é¨è¡¨ç¾ããå 83 é¨è¡¨ç¾ã¸ 84 85 /* 86 * TIPM_ENAALLï¼å²è¾¼ã¿åªå 87 度ãã¹ã¯å 88 ¨è§£é¤ï¼ã®å 89 é¨è¡¨ç¾ 58 * 割込み関連 59 */ 60 61 /* 62 * 割込み優先度の変換 63 */ 64 #define EXT_IPM(pri) (-pri) // 内部表現から外部表現へ 65 #define INT_IPM(ipm) (-ipm) // 外部表現から内部表現へ 66 67 /* 68 * TIPM_ENAALL(割込み優先度マスク全解除)の内部表現 90 69 */ 91 70 #define IIPM_ENAALL (0) 92 71 93 72 /* 94 * å²è¾¼ã¿çªå·ã®ç¯å²ã®å¤å®73 * 割込み番号の範囲の判定 95 74 */ 96 75 #define VALID_INTNO(intno) ((TMIN_INTNO <= (intno)) && ((intno) <= TMAX_INTNO)) … … 98 77 99 78 /* 100 * å²è¾¼ã¿ãã³ãã©ã®åºå 101 ¥å£å¦çã®çæãã¯ã 79 * 割込みハンドラの出入口処理の生成マクロ 102 80 */ 103 81 #define INT_ENTRY(inhno, inthdr) inthdr … … 107 85 108 86 /* 109 * CPUããã¯ç¶æ 110 ã¸ã®ç§»è¡ 87 * CPUロック状態への移行 111 88 */ 112 89 Inline void … … 120 97 121 98 /* 122 * CPUããã¯ç¶æ 123 ã®è§£é¤ 99 * CPUロック状態の解除 124 100 */ 125 101 Inline void … … 133 109 134 110 /* 135 * CPUããã¯ç¶æ 136 ã®åç 137 § 111 * CPUロック状態の参照 138 112 */ 139 113 Inline bool_t … … 156 130 157 131 /* 158 * ããã»ããµã®å²è¾¼ã¿åªå 159 度 160 * ãããã®å²è¾¼ã¿ã³ã³ããã¼ã©ã«ã¯å²è¾¼ã¿åªå 161 度ã«ããå¶å¾¡æ©è½ã 162 * å®è£ 163 ããã¦ããªãããï¼å²è¾¼ã¿åªå 164 度ãæ ¼ç´ããå¤æ°ãç¨æãã 132 * プロセッサの割込み優先度 133 * チップの割込みコントローラには割込み優先度による制御機能が 134 * 実装されていないため,割込み優先度を格納する変数を用意する 165 135 */ 166 136 extern PRI current_intpri; 167 137 168 138 /* 169 * å²è¾¼ã¿ãã³ãã©ã®è¨å®139 * 割込みハンドラの設定 170 140 */ 171 141 Inline void … … 175 145 176 146 /* 177 * å²è¾¼ã¿ãã³ãã©å 178 ¥å£ã§å¿ 179 è¦ãªIRCæä½ 147 * 割込みハンドラ入口で必要なIRC操作 180 148 */ 181 149 Inline void … … 185 153 186 154 /* 187 * å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¿ 188 è¦ãªIRCæä½ 155 * 割込みハンドラの出口で必要なIRC操作 189 156 */ 190 157 Inline void … … 194 161 195 162 /* 196 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®163 * 割込み要求ラインの属性の設定 197 164 */ 198 165 extern void x_config_int(INTNO intno, ATR intatr, PRI intpri); 199 166 200 167 /* 201 * å²è¾¼ã¿åªå 202 度ã«ãã¨ã¥ãå²è¾¼ã¿ã®ãã¹ã¯ 203 * å²è¾¼ã¿ã®å 204 ¥å£ã§ï¼åãä»ããå²è¾¼ã¿ã®å²è¾¼ã¿ã¬ãã«ã«å¿ã㦠205 * å²è¾¼ã¿ããã¹ã¯ãã 168 * 割込み優先度にもとづく割込みのマスク 169 * 割込みの入口で,受け付けた割込みの割込みレベルに応じて 170 * 割込みをマスクする 206 171 */ 207 172 extern void chip_mask_interrupt(PRI pri); 208 173 209 174 /* 210 * å²è¾¼ã¿ãã¹ã¯ã®è§£é¤211 * å²è¾¼ã¿ã®åºå£ã§ï¼åãä»ãç´åã®å²è¾¼ã¿ã¬ãã«ããã¨ã«212 * å²è¾¼ã¿ã®ãã¹ã¯ã解é¤ãã175 * 割込みマスクの解除 176 * 割込みの出口で,受け付け直前の割込みレベルをもとに 177 * 割込みのマスクを解除する 213 178 */ 214 179 extern void chip_unmask_interrupt(PRI pri); 215 180 216 181 /* 217 * å²è¾¼ã¿å 218 ¥å£ã®å²è¾¼ã¿æä½ï¼chip_support.Sï¼ 182 * 割込み入口の割込み操作(chip_support.S) 219 183 */ 220 184 extern void chip_int_entry(void); 221 185 222 186 /* 223 * å²è¾¼ã¿åªå 224 度ãã¼ãã«(kernel_cfg.c) 187 * 割込み優先度テーブル(kernel_cfg.c) 225 188 */ 226 189 extern const PRI intpri_table[]; 227 190 228 191 /* 229 * å²è¾¼ã¿ãã¹ã¯ãã¼ãã«(kernel_cfg.c)192 * 割込みマスクテーブル(kernel_cfg.c) 230 193 */ 231 194 extern const uint32_t iipm_mask_table[]; 232 195 233 196 /* 234 * å²è¾¼ã¿ãã³ãã©ãã¼ãã«(kernel_cfg.c)197 * 割込みハンドラテーブル(kernel_cfg.c) 235 198 */ 236 199 extern const INTHDR inh_table[]; … … 241 204 242 205 /* 243 * CPU ä¾å¤é¢é£244 */ 245 246 /* 247 * CPU ä¾å¤ãã³ãã©çªå·206 * CPU例外関連 207 */ 208 209 /* 210 * CPU例外ハンドラ番号 248 211 */ 249 212 #define VALID_EXCNO_DEFEXC(excno) (TMIN_EXCNO <= (excno) && (excno) <= TMAX_EXCNO) 250 213 251 214 /* 252 * CPUä¾å¤ãã³ãã©ã®å 253 ¥å£å¦çã®çæãã¯ã 215 * CPU例外ハンドラの入口処理の生成マクロ 254 216 */ 255 217 #define EXC_ENTRY(excno, exchdr) exchdr … … 260 222 261 223 /* 262 * CPU ä¾å¤ãã³ãã©ã®è¨å®224 * CPU例外ハンドラの設定 263 225 */ 264 226 Inline void … … 268 230 269 231 /* 270 * ä¾å¤å 271 ¥å£ã®å²è¾¼ã¿æä½ï¼chip_support.Sï¼ 232 * 例外入口の割込み操作(chip_support.S) 272 233 */ 273 234 extern void chip_exc_entry(void); 274 235 275 236 /* 276 * ä¾å¤ãã³ãã©ãã¼ãã«(kernel_cfg.c)237 * 例外ハンドラテーブル(kernel_cfg.c) 277 238 */ 278 239 extern const EXCHDR exc_table[]; … … 281 242 282 243 /* 283 * ãã®ä»244 * その他 284 245 */ 285 246 … … 287 248 288 249 /* 289 * ãããä¾åã®åæå250 * チップ依存の初期化 290 251 */ 291 252 extern void chip_initialize(void); 292 253 293 254 /* 294 * ãããä¾åã®çµäºå¦ç255 * チップ依存の終了処理 295 256 */ 296 257 extern void chip_terminate(void) NoReturn; … … 299 260 300 261 /* 301 * ã³ã¢ä¾åå®ç¾©262 * コア依存定義 302 263 */ 303 264 #include "arm64_gcc/common/core_config.h" -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.