- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 8 * ä¸è¨èä½æ¨©è 9 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 10 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 11 * å¤ã»åé 12 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 13 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 14 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 15 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 16 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 17 * ç¨ã§ããå½¢ã§åé 18 å¸ããå ´åã«ã¯ï¼åé 19 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 20 * è 21 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 22 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 23 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããªãå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 26 * ã¨ï¼ 27 * (a) åé 28 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 29 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 30 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 31 * (b) åé 32 å¸ã®å½¢æ 33 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 34 * å ±åãããã¨ï¼ 35 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 36 * 害ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ããå 38 責ãããã¨ï¼ 39 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 40 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ãã 42 * å 43 責ãããã¨ï¼ 8 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * $Id$ … … 54 39 55 40 /* 56 * L2 ãã£ãã·ã¥ã³ã³ããã¼ã©ï¼PL310ï¼ã®æä½ã©ã¤ãã©ãª41 * L2キャッシュコントローラ(PL310)の操作ライブラリ 57 42 */ 58 43 … … 67 52 aux = sil_rew_mem(PL310_AUX_CTRL); 68 53 if ((aux & PL310_AUX_CTRL_ASSOCIATIVITY) != 0U) { 69 /* 16 ã¦ã§ã¤*/54 /* 16ウェイ */ 70 55 return(0x0000ffffU); 71 56 } 72 57 else { 73 /* 8 ã¦ã§ã¤*/58 /* 8ウェイ */ 74 59 return(0x000000ffU); 75 60 } … … 87 72 uint32_t way_mask = get_way_mask(); 88 73 89 /* ãã¹ã¦ã®ã¦ã§ã¤ãç¡å¹åãã*/74 /* すべてのウェイを無効化する */ 90 75 sil_wrw_mem(PL310_INV_WAY, 0xffff); 91 76 while ((sil_rew_mem(PL310_INV_WAY) & way_mask) != 0U) ; … … 100 85 101 86 /* 102 * PL310 ã®åæå87 * PL310の初期化 103 88 */ 104 89 void … … 109 94 uint32_t prefetch_val = 0U; 110 95 111 /* L2 ãã£ãã·ã¥ããã£ã¹ã¨ã¼ãã«ã®å ´åã®ã¿åæåãè¡ã*/96 /* L2キャッシュがディスエーブルの場合のみ初期化を行う */ 112 97 if ((sil_rew_mem(PL310_CTRL) & 0x01) == 0U) { 113 /* å 114 ±æå±æ§ãç¡è¦ãã */ 98 /* 共有属性を無視する */ 115 99 aux_val |= PL310_AUX_CTRL_IGNORE_SHARE; 116 100 117 /* å½ä»¤ããªãã§ãããã¤ãã¼ãã«*/101 /* 命令プリフェッチをイネーブル */ 118 102 aux_val |= PL310_AUX_CTRL_INST_PREFETCH; 119 103 prefetch_val |= PL310_AUX_CTRL_INST_PREFETCH; 120 104 121 /* ãã¼ã¿ããªãã§ãããã¤ãã¼ãã«*/105 /* データプリフェッチをイネーブル */ 122 106 aux_val |= PL310_AUX_CTRL_DATA_PREFETCH; 123 107 prefetch_val |= PL310_AUX_CTRL_DATA_PREFETCH; 124 108 125 /* ããã«ã©ã¤ã³ãã£ã«ãã¤ãã¼ãã«*/109 /* ダブルラインフィルをイネーブル */ 126 110 prefetch_val |= PL310_PREFETCH_CTRL_DLINEFILL; 127 111 prefetch_val |= PL310_PREFETCH_CTRL_INCR_DLINEFILL; 128 112 129 /* è£å©å¶å¾¡ã¬ã¸ã¹ã¿ãè¨å®*/113 /* 補助制御レジスタを設定 */ 130 114 aux = sil_rew_mem(PL310_AUX_CTRL); 131 115 sil_wrw_mem(PL310_AUX_CTRL, ((aux & aux_mask) | aux_val)); 132 116 133 /* ããªãã§ããå¶å¾¡ã¬ã¸ã¹ã¿ãè¨å®*/117 /* プリフェッチ制御レジスタを設定 */ 134 118 prefetch = sil_rew_mem(PL310_PREFETCH_CTRL); 135 119 sil_wrw_mem(PL310_PREFETCH_CTRL, (prefetch | prefetch_val)); 136 120 137 /* L2ãã£ãã·ã¥ã®å 138 ¨ä½ã®ç¡å¹å */ 121 /* L2キャッシュの全体の無効化 */ 139 122 pl310_inv_all(); 140 123 141 /* ã¯ããã¯ã²ã¼ãã£ã³ã°ã¨ã¹ã¿ã³ãã¤ã¢ã¼ããã¤ãã¼ãã«*/124 /* クロックゲーティングとスタンバイモードをイネーブル */ 142 125 sil_wrw_mem(PL310_POWER_CTRL, 0x03); 143 126 144 /* L2 ãã£ãã·ã¥ã®ã¤ãã¼ãã«*/127 /* L2キャッシュのイネーブル */ 145 128 sil_wrw_mem(PL310_CTRL, 0x01); 146 129 } … … 148 131 149 132 /* 150 * L2 ãã£ãã·ã¥ã®ãã£ã¹ã¨ã¼ãã«133 * L2キャッシュのディスエーブル 151 134 */ 152 135 void … … 158 141 159 142 /* 160 * L2ãã£ãã·ã¥å 161 ¨ä½ã®ç¡å¹åï¼æ¸ãæ»ããªãï¼ 143 * L2キャッシュ全体の無効化(書き戻さない) 162 144 */ 163 145 void … … 170 152 171 153 /* 172 * L2ãã£ãã·ã¥å 173 ¨ä½ã®ã¯ãªã¼ã³ã¨ç¡å¹å 154 * L2キャッシュ全体のクリーンと無効化 174 155 */ 175 156 void
Note:
See TracChangeset
for help on using the changeset viewer.