Changeset 386 for ssp_rpi3/trunk/arch/arm64_gcc/bcm283x/chip_user.txt
- 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_user.txt
-
Property svn:mime-type
set to
text/plain; charset=utf-8
r384 r386 1 1 ===================================================================== 2 BCM283x ãããä¾åé¨2 BCM283xチップ依存部 3 3 Last Modified: '19/04/16 4 4 ===================================================================== 5 5 6 6 7 (1) 対å¿ãã¦ããã¿ã¼ã²ããã·ã¹ãã ã®ç¨®é¡ã»æ§æ7 (1) 対応しているターゲットシステムの種類・構成 8 8 9 bcm283x ãããä¾åé¨ã¯ï¼ä¸»ã« Raspberry Pi ã§ä½¿ç¨ããã Broadcom製ãããã10 ã¿ã¼ã²ããã¨ããï¼ç¾æç¹ã§ã¯ Raspberru Pi 3B ã«æè¼ãããBCM2837 ããµãã¼ãããï¼ 9 bcm283xチップ依存部は,主に Raspberry Pi で使用される Broadcom製チップを 10 ターゲットとする.現時点では Raspberru Pi 3B に搭載されるBCM2837 をサポートする. 11 11 12 (2) 使ç¨ããéçºç°å¢ã¨åä½æ¤è¨¼ããæ¡ä»¶ï¼ãã¼ã¸ã§ã³ï¼ãªãã·ã§ã³çï¼12 (2) 使用する開発環境と動作検証した条件(バージョン,オプション等) 13 13 14 ã«ã¼ãã«ã¯GCCãç¨ãã¦ã³ã³ãã¤ã«ããï¼åä½ç¢ºèªãããã¼ã¸ã§ã³ã¯åã¿ã¼ã² 15 ããä¾åé¨ã®ããã¥ã¡ã³ãã«è¨è¼ããï¼ 14 カーネルはGCCを用いてコンパイルする.動作確認したバージョンは各ターゲ 15 ット依存部のドキュメントに記載する. 16 16 17 (3) ã¿ã¼ã²ããå®ç¾©äºé 18 ã®è¦å® 17 (3) ターゲット定義事項の規定 19 18 20 (3-1) å²è¾¼ã¿å¦çã«é¢ããè¦å®19 (3-1) 割込み処理に関する規定 21 20 22 (3-1-1) æ¦è¦21 (3-1-1) 概要 23 22 24 BCM283x ã¯ç¬èªã®å²è¾¼ã¿ã³ã³ããã¼ã©ãæè¼ãï¼ä»¥ä¸ã®ç¹å¾´ãæã¤ï¼ 25 ã»å²è¾¼ã¿åªå 26 ã¬ãã«ã¯ãµãã¼ãããªãï¼ 27 ã»å²è¾¼ã¿ã¯å 28 ¨ã¦ã¬ãã«ããªã¬ã§ããï¼ãããã£ã¦å²è¾¼ã¿è¦æ±ãã©ã°ã¯ 29 å²è¾¼ã¿çºçå 30 ã®ããã¤ã¹ãç´æ¥æä½ãã¦ã¯ãªã¢ããå¿ 31 è¦ãããï¼ 23 BCM283x は独自の割込みコントローラを搭載し,以下の特徴を持つ. 24 ・割込み優先レベルはサポートしない. 25 ・割込みは全てレベルトリガである.したがって割込み要求フラグは 26 割込み発生元のデバイスを直接操作してクリアする必要がある. 32 27 33 BCM283x ä¾åé¨ã§ã¯ï¼IRQ ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ï¼FIQãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ããï¼28 BCM283x依存部では,IRQ をカーネル管理の割込み,FIQをカーネル管理外の割込みとする. 34 29 35 30 36 (3-1-2) å²è¾¼ã¿ãã³ãã©çªå·ã¨å²è¾¼ã¿çªå·ã®å²å½ã¦ï¼ä¸¡è 37 ã®å¯¾å¿ 31 (3-1-2) 割込みハンドラ番号と割込み番号の割当て,両者の対応 38 32 39 å²è¾¼ã¿ãã³ãã©çªå·ã¨å²è¾¼ã¿çªå·ã¯ï¼BCM2835åã³BCM2836ã® 40 ããªãã§ã©ã«ããã¥ã¢ã«(ä¸è¨aåã³b)ããï¼ãã³ãã£ã³ã°ã¬ã¸ã¹ã¿ã®ãããä½ç½®ã«åºã¥ã㦠41 0ãã127ã®çªå·ãå²ãå½ã¦ãï¼(åã 42 ã®å®ç¾©ã¯ bcm2837.h ãåç 43 §) 33 割込みハンドラ番号と割込み番号は,BCM2835及びBCM2836の 34 ペリフェラルマニュアル(下記a及びb)から,ペンディングレジスタのビット位置に基づいて 35 0から127の番号を割り当てる.(個々の定義は bcm2837.h を参照) 44 36 45 0 ... 31 Core interrupt ( ä¸è¨aã®P16 ãCore0 interrupt sourceãã«å¯¾å¿)46 32 ... 63 ARM peripherals interrupt(b ã®P113ãBasic pending registerãã«å¯¾å¿)47 64 ... 95 ARM peripherals interrupt(b ã®P115ãGPU pending register 1ãã«å¯¾å¿)48 96 ...127 ARM peripherals interrupt(b ã®P115ãGPU pending register 2ãã«å¯¾å¿)37 0 ... 31 Core interrupt (下記aのP16 「Core0 interrupt source」に対応) 38 32 ... 63 ARM peripherals interrupt(bのP113「Basic pending register」に対応) 39 64 ... 95 ARM peripherals interrupt(bのP115「GPU pending register 1」に対応) 40 96 ...127 ARM peripherals interrupt(bのP115「GPU pending register 2」に対応) 49 41 50 42 (a) QA7(ARM Quad A7 core) … … 55 47 56 48 57 (3-1-3) å²è¾¼ã¿åªå 58 度ã®æ®µéæ°ï¼TMIN_INTPRIã®å¤ï¼ï¼ãã®è¨å®æ¹æ³ 49 (3-1-3) 割込み優先度の段階数(TMIN_INTPRIの値),その設定方法 59 50 60 å²è¾¼ã¿åªå 61 度ã®æ®µéæ°ã¯ï¼ã¿ã¼ã²ããä¾åé¨æ¯ã«ç°ãªãï¼ 62 BCM283x ã®å²è¾¼ã¿ã³ã³ããã¼ã©ã¯åªå 63 度å¶å¾¡æ©è½ãæããªãããã½ããã¦ã§ã¢ã§å®ç¾ããï¼ 64 ãã®ãã段éæ°ãç¬èªã«è¨å®ãããã¨ãå¯è½ã§ããï¼ 51 割込み優先度の段階数は,ターゲット依存部毎に異なる. 52 BCM283x の割込みコントローラは優先度制御機能を持たないためソフトウェアで実現する. 53 そのため段階数を独自に設定することが可能である. 65 54 66 ã«ã¼ãã«ç®¡çå 67 ã®å²è¾¼ã¿ã«å¯¾ããæé«åªå 68 度(TMIN_INTPRI)ã¯ãããä¾åé¨ã§ 69 æ¢å®å¤ãå®ç¾©ãã¦ãããï¼ã¿ã¼ã²ããä¾åé¨ã§è¨å®ãããã¨ãå¯è½ã§ããï¼ 55 カーネル管理内の割込みに対する最高優先度(TMIN_INTPRI)はチップ依存部で 56 既定値を定義しているが,ターゲット依存部で設定することも可能である. 70 57 71 åå²è¾¼ã¿ã®å²è¾¼ã¿åªå 72 度ã¯ï¼CFG_INT ã§è¨å®ããï¼åªå 73 度㯠TMIN_INTPRI 以ä¸ã®å¤ 74 (åªå 75 度ã¨ãã¦ã¯ä½ãå¤)ãæå®ããï¼ 58 各割込みの割込み優先度は,CFG_INT で設定する.優先度は TMIN_INTPRI 以上の値 59 (優先度としては低い値)を指定する. 76 60 77 (3-1-4) dis_intã¨ena_intã®ãµãã¼ãã®æç¡ï¼ãã®å¶éäºé 61 (3-1-4) dis_intとena_intのサポートの有無,その制限事項 62 63 dis_int と ena_int はサポートしない 78 64 79 65 80 dis_int 㨠ena_int ã¯ãµãã¼ãããªã 66 (3-1-5) CFG_INTの制限事項と拡張(ターゲット定義で使用できる割込み属性) 67 68 レベル割込みしかサポートしないため,エッジ/レベルのトリガ設定は意味をもたない. 69 その他,ターゲット独自に使用可能な割込み属性はない. 81 70 82 71 83 (3-1-5) CFG_INTã®å¶éäºé 84 ã¨æ¡å¼µï¼ã¿ã¼ã²ããå®ç¾©ã§ä½¿ç¨ã§ããå²è¾¼ã¿å±æ§ï¼ 72 (3-1-6) カーネル管理外の割込み 85 73 86 ã¬ãã«å²è¾¼ã¿ãããµãã¼ãããªãããï¼ã¨ãã¸/ã¬ãã«ã®ããªã¬è¨å®ã¯æå³ããããªãï¼ 87 ãã®ä»ï¼ã¿ã¼ã²ããç¬èªã«ä½¿ç¨å¯è½ãªå²è¾¼ã¿å±æ§ã¯ãªãï¼ 74 FIQ割込みをカーネル管理外の割込みとして扱う. 75 76 FIQ割込みが発生すると該当する割込みベクタからレジスタの退避を行なった後に 77 call_fiq_handler (core_config.c) が呼び出される.この関数は, 78 コアの全ての例外がマスクされた状態(ステータスレジスタのD,A,I,Fが全て1)で 79 呼び出される. 80 81 FIQを利用するための設定,発生したFIQ 割込みに対する要因判別, 82 及び対応するハンドラ等の処理は独自に実装する必要がある. 83 84 カーネル管理外の割込みを設定するためのAPIはサポートしない. 88 85 89 86 90 (3- 1-6) ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿87 (3-2) CPUロック・割込みロック 91 88 92 FIQå²è¾¼ã¿ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ãã¦æ±ãï¼ 89 CPUロックは,ステータスレジスタのIビットの値で判別する. 90 全割込みロックフラグの実装ではこれに加えFビットも使用する. 93 91 94 FIQå²è¾¼ã¿ãçºçããã¨è©²å½ããå²è¾¼ã¿ãã¯ã¿ããã¬ã¸ã¹ã¿ã®éé¿ãè¡ãªã£ãå¾ã« 95 call_fiq_handler (core_config.c) ãå¼ã³åºãããï¼ãã®é¢æ°ã¯ï¼ 96 ã³ã¢ã®å 97 ¨ã¦ã®ä¾å¤ããã¹ã¯ãããç¶æ 98 (ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã®D,A,I,Fãå 99 ¨ã¦1)㧠100 å¼ã³åºãããï¼ 101 102 FIQãå©ç¨ããããã®è¨å®ï¼çºçããFIQ å²è¾¼ã¿ã«å¯¾ããè¦å å¤å¥ï¼ 103 åã³å¯¾å¿ãããã³ãã©çã®å¦çã¯ç¬èªã«å®è£ 104 ããå¿ 105 è¦ãããï¼ 106 107 ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãè¨å®ããããã®APIã¯ãµãã¼ãããªãï¼ 92 CPUロックフラグは割込みロックフラグとは独立したフラグとしてサポートする. 93 そのため,SIL_LOC_INT呼び出し時はIフラグの状態を記憶し, 94 SIL_UNL_INT呼び出し時に元の状態に戻している. 108 95 109 96 110 (3- 2) CPUããã¯ã»å²è¾¼ã¿ããã¯97 (3-3) 性能評価用システム時刻の参照に関する規定 111 98 112 CPUããã¯ã¯ï¼ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ã®Iãããã®å¤ã§å¤å¥ããï¼ 113 å 114 ¨å²è¾¼ã¿ããã¯ãã©ã°ã®å®è£ 115 ã§ã¯ããã«å ãFãããã使ç¨ããï¼ 116 117 CPUããã¯ãã©ã°ã¯å²è¾¼ã¿ããã¯ãã©ã°ã¨ã¯ç¬ç«ãããã©ã°ã¨ãã¦ãµãã¼ãããï¼ 118 ãã®ããï¼SIL_LOC_INTå¼ã³åºãæã¯Iãã©ã°ã®ç¶æ 119 ãè¨æ¶ãï¼ 120 SIL_UNL_INTå¼ã³åºãæã«å 121 ã®ç¶æ 122 ã«æ»ãã¦ããï¼ 99 get_utmをサポートしない. 123 100 124 101 125 (3-3) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç 126 §ã«é¢ããè¦å® 102 (3-4) スタートアップルーチンでの初期化内容 127 103 128 get_utmããµãã¼ãããªãï¼ 104 スタートアップルーチンはターゲット依存部のドキュメントに記載する. 129 105 130 106 131 (3-4) ã¹ã¿ã¼ãã¢ããã«ã¼ãã³ã§ã®åæåå 132 容 133 134 ã¹ã¿ã¼ãã¢ããã«ã¼ãã³ã¯ã¿ã¼ã²ããä¾åé¨ã®ããã¥ã¡ã³ãã«è¨è¼ããï¼ 135 136 137 (4) ãã£ã¬ã¯ããªæ§æã»ãã¡ã¤ã«æ§æ 107 (4) ディレクトリ構成・ファイル構成 138 108 ./arch/arm64_gcc/bcm283x/ 139 109 MANIFEST … … 163 133 pl011.h 164 134 165 (12) ãã¼ã¸ã§ã³å±¥æ´135 (12) バージョン履歴 166 136 167 137 2018/05/30 168 ã»æåã®ãªãªã¼ã¹138 ・最初のリリース 169 139 2019/04/15 170 ã»BCM283xãããä¾åé¨ã®åé¢ã«åããã¦ä¿®æ£140 ・BCM283xチップ依存部の分離に合わせて修正 -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.