Changeset 356 for ssp_aarch64/trunk/arm64_gcc/gic_config.c
- 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.c
-
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 責ãããã¨ï¼ 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 * 免責すること. 46 32 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 50 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 51 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 52 * ã®è²¬ä»»ãè² ããªãï¼ 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 53 38 * 54 39 * $Id: gic_kernel_impl.c 714 2016-03-31 05:52:19Z ertl-hiro $ 55 40 */ 56 41 /* 57 * GIC ä¾åå¦çï¼ARM64ç¨ï¼42 * GIC依存処理(ARM64用) 58 43 */ 59 44 #include "kernel_impl.h" 60 45 61 46 /* 62 * CPU ã¤ã³ã¿ãã§ã¼ã¹ã®æä½47 * CPUインタフェースの操作 63 48 */ 64 49 65 50 /* 66 * CPU ã¤ã³ã¿ãã§ã¼ã¹ã®åæå51 * CPUインタフェースの初期化 67 52 */ 68 53 void … … 70 55 { 71 56 /* 72 * CPU ã¤ã³ã¿ãã§ã¼ã¹ããããã»ããµã¸ã®å²è¾¼ã¿ä¿¡å·éåºãç¡å¹ã«ãã57 * CPUインタフェースからプロセッサへの割込み信号送出を無効にする 73 58 */ 74 59 sil_wrw_mem(GICC_CTLR, GICC_CTLR_DISABLE); 75 60 76 61 /* 77 * å²è¾¼ã¿åªå 78 度ãã¹ã¯ãæä½åªå 79 度ã«è¨å® 62 * 割込み優先度マスクを最低優先度に設定 80 63 */ 81 64 gicc_set_priority((GIC_PRI_LEVEL - 1) << GIC_PRI_SHIFT); 82 65 83 66 /* 84 * å²è¾¼ã¿åªå 85 度ã®å 86 ¨ãããæå¹ã« 67 * 割込み優先度の全ビット有効に 87 68 */ 88 69 sil_wrw_mem(GICC_BPR, 0U); 89 70 90 71 /* 91 * ã¢ã¯ãã£ããªå²è¾¼ã¿ãããã°ï¼EOIã«ããã¯ãªã¢ãã72 * アクティブな割込みがあれば,EOIによりクリアする 92 73 */ 93 74 sil_wrw_mem(GICC_EOIR, sil_rew_mem(GICC_IAR)); 94 75 95 76 /* 96 * CPU ã¤ã³ã¿ãã§ã¼ã¹ãã¤ãã¼ãã«77 * CPUインタフェースをイネーブル 97 78 */ 98 79 sil_wrw_mem(GICC_CTLR, GICC_CTLR_ENABLE); … … 100 81 101 82 /* 102 * CPU ã¤ã³ã¿ãã§ã¼ã¹ã®çµäºå¦ç83 * CPUインタフェースの終了処理 103 84 */ 104 85 void … … 109 90 110 91 /* 111 * ãã£ã¹ããªãã¥ã¼ã¿ã®æä½92 * ディストリビュータの操作 112 93 */ 113 94 114 95 /* 115 * ãã£ã¹ããªãã¥ã¼ã¿ã®åæå96 * ディストリビュータの初期化 116 97 */ 117 98 void … … 121 102 122 103 /* 123 * ãã£ã¹ããªãã¥ã¼ã¿ãç¡å¹ã«ãã¦è»¢éãåæ¢104 * ディストリビュータを無効にして転送を停止 124 105 */ 125 106 sil_wrw_mem(GICD_CTLR, GICD_CTLR_DISABLE); 126 107 127 108 /* 128 * ãã¹ã¦ã®å²è¾¼ã¿ã®è»¢éãç¦æ¢109 * すべての割込みの転送を禁止 129 110 */ 130 111 for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) { … … 133 114 134 115 /* 135 * ãã¹ã¦ã®å²è¾¼ã¿å²è¾¼ã¿ä¿çç¶æ 136 ãã¯ãªã¢ 116 * すべての割込み割込み保留状態をクリア 137 117 */ 138 118 for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) { … … 141 121 142 122 /* 143 * ãã¹ã¦ã®å²è¾¼ã¿ãæä½åªå 144 度ã«è¨å® 123 * すべての割込みを最低優先度に設定 145 124 */ 146 125 for (i = 0; i < (GIC_TNUM_INTNO + 3) / 4; i++){ … … 148 127 } 149 128 /* 150 * ãã¹ã¦ã®å 151 ±æããªãã§ã©ã«å²è¾¼ã¿ã®ã¿ã¼ã²ãããããã»ããµ0ã«è¨å® 129 * すべての共有ペリフェラル割込みのターゲットをプロセッサ0に設定 152 130 */ 153 131 for (i = GIC_INTNO_SPI0 / 4; i < (GIC_TNUM_INTNO + 3) / 4; i++) { … … 156 134 157 135 /* 158 * ãã¹ã¦ã®ããªãã§ã©ã«å²è¾¼ã¿ãã¬ãã«ããªã¬ã«è¨å®136 * すべてのペリフェラル割込みをレベルトリガに設定 159 137 */ 160 138 for (i = GIC_INTNO_PPI0 / 16; i < (GIC_TNUM_INTNO + 15) / 16; i++) { … … 162 140 } 163 141 /* 164 * ãã£ã¹ããªãã¥ã¼ã¿ãæå¹ã«ãã¦åªå 165 度è¦åã«ããå²è¾¼ã¿ã®è»¢éãéå§ 142 * ディストリビュータを有効にして優先度規則による割込みの転送を開始 166 143 */ 167 144 sil_wrw_mem(GICD_CTLR, GICD_CTLR_ENABLE); … … 169 146 170 147 /* 171 * ãã£ã¹ããªãã¥ã¼ã¿ã®çµäºå¦ç148 * ディストリビュータの終了処理 172 149 */ 173 150 void -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.