Ignore:
Timestamp:
Apr 17, 2019, 12:13:00 PM (5 years ago)
Author:
nmir-saito
Message:

modify svn:mimetype of files

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  
    11=====================================================================
    2                          BCM283xチップ依存部
     2                         BCM283xチップ依存部
    33                                  Last Modified: '19/04/16
    44=====================================================================
    55
    66
    7 (1) 対応しているターゲットシステムの種類・構成
     7(1) 対応しているターゲットシステムの種類・構成
    88
    9 bcm283xチップ依存部は,主に Raspberry Pi で使用される Broadcom製チップを
    10 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã¨ã™ã‚‹ï¼Žç¾æ™‚点では Raspberru Pi 3B に搭載されるBCM2837 をサポートする.
     9bcm283xチップ依存部は,主に Raspberry Pi で使用される Broadcom製チップを
     10ターゲットとする.現時点では Raspberru Pi 3B に搭載されるBCM2837 をサポートする.
    1111
    12 (2) 使用する開発環境と動作検証した条件(バージョン,オプション等)
     12(2) 使用する開発環境と動作検証した条件(バージョン,オプション等)
    1313
    14 ã‚«ãƒ¼ãƒãƒ«ã¯GCCを用いてコンパイルする.動作確認したバージョンは各ターゲ
    15 ãƒƒãƒˆä¾å­˜éƒ¨ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«è¨˜è¼‰ã™ã‚‹ï¼Ž
     14カーネルはGCCを用いてコンパイルする.動作確認したバージョンは各ターゲ
     15ット依存部のドキュメントに記載する.
    1616
    17 (3) ターゲット定義事é 
    18 ã®è¦å®š
     17(3) ターゲット定義事項の規定
    1918
    20 (3-1) 割込み処理に関する規定
     19(3-1) 割込み処理に関する規定
    2120
    22 (3-1-1) 概要
     21(3-1-1) 概要
    2322
    24 BCM283x は独自の割込みコントローラを搭載し,以下の特徴を持つ.
    25 ãƒ»å‰²è¾¼ã¿å„ªå
    26 ˆãƒ¬ãƒ™ãƒ«ã¯ã‚µãƒãƒ¼ãƒˆã—ない.
    27 ãƒ»å‰²è¾¼ã¿ã¯å
    28 ¨ã¦ãƒ¬ãƒ™ãƒ«ãƒˆãƒªã‚¬ã§ã‚る.したがって割込み要求フラグは
    29   割込み発生å
    30 ƒã®ãƒ‡ãƒã‚¤ã‚¹ã‚’直接操作してクリアするå¿
    31 è¦ãŒã‚る.
     23BCM283x は独自の割込みコントローラを搭載し,以下の特徴を持つ.
     24・割込み優先レベルはサポートしない.
     25・割込みは全てレベルトリガである.したがって割込み要求フラグは
     26  割込み発生元のデバイスを直接操作してクリアする必要がある.
    3227
    33 BCM283x依存部では,IRQ をカーネル管理の割込み,FIQをカーネル管理外の割込みとする.
     28BCM283x依存部では,IRQ をカーネル管理の割込み,FIQをカーネル管理外の割込みとする.
    3429
    3530
    36 (3-1-2) 割込みハンドラ番号と割込み番号の割当て,両è€
    37 ã®å¯¾å¿œ
     31(3-1-2) 割込みハンドラ番号と割込み番号の割当て,両者の対応
    3832
    39 å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·ã¨å‰²è¾¼ã¿ç•ªå·ã¯ï¼ŒBCM2835及びBCM2836の
    40 ãƒšãƒªãƒ•ã‚§ãƒ©ãƒ«ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«(下記a及びb)から,ペンディングレジスタのビット位置に基づいて
    41 0から127の番号を割り当てる.(個ã€
    42 ã®å®šç¾©ã¯ bcm2837.h を参ç
    43 §)
     33割込みハンドラ番号と割込み番号は,BCM2835及びBCM2836の
     34ペリフェラルマニュアル(下記a及びb)から,ペンディングレジスタのビット位置に基づいて
     350から127の番号を割り当てる.(個々の定義は bcm2837.h を参照)
    4436
    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」に対応)
     3832 ... 63  ARM peripherals interrupt(bのP113「Basic pending register」に対応)
     3964 ... 95  ARM peripherals interrupt(bのP115「GPU pending register 1」に対応)
     4096 ...127  ARM peripherals interrupt(bのP115「GPU pending register 2」に対応)
    4941
    5042(a) QA7(ARM Quad A7 core)
     
    5547
    5648
    57 (3-1-3) 割込み優å
    58 ˆåº¦ã®æ®µéšŽæ•°ï¼ˆTMIN_INTPRIの値),その設定方法
     49(3-1-3) 割込み優先度の段階数(TMIN_INTPRIの値),その設定方法
    5950
    60 å‰²è¾¼ã¿å„ªå
    61 ˆåº¦ã®æ®µéšŽæ•°ã¯ï¼Œã‚¿ãƒ¼ã‚²ãƒƒãƒˆä¾å­˜éƒ¨æ¯Žã«ç•°ãªã‚‹ï¼Ž
    62 BCM283x の割込みコントローラは優å
    63 ˆåº¦åˆ¶å¾¡æ©Ÿèƒ½ã‚’持たないためソフトウェアで実現する.
    64 ãã®ãŸã‚æ®µéšŽæ•°ã‚’独自に設定することが可能である.
     51割込み優先度の段階数は,ターゲット依存部毎に異なる.
     52BCM283x の割込みコントローラは優先度制御機能を持たないためソフトウェアで実現する.
     53そのため段階数を独自に設定することが可能である.
    6554
    66 ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å†
    67 ã®å‰²è¾¼ã¿ã«å¯¾ã™ã‚‹æœ€é«˜å„ªå
    68 ˆåº¦(TMIN_INTPRI)はチップ依存部で
    69 æ—¢å®šå€¤ã‚’定義しているが,ターゲット依存部で設定することも可能である.
     55カーネル管理内の割込みに対する最高優先度(TMIN_INTPRI)はチップ依存部で
     56既定値を定義しているが,ターゲット依存部で設定することも可能である.
    7057
    71 å„割込みの割込み優å
    72 ˆåº¦ã¯ï¼ŒCFG_INT で設定する.優å
    73 ˆåº¦ã¯ TMIN_INTPRI 以上の値
    74 (優å
    75 ˆåº¦ã¨ã—ては低い値)を指定する.
     58各割込みの割込み優先度は,CFG_INT で設定する.優先度は TMIN_INTPRI 以上の値
     59(優先度としては低い値)を指定する.
    7660
    77 (3-1-4) dis_intとena_intのサポートの有無,その制限事é 
     61(3-1-4) dis_intとena_intのサポートの有無,その制限事項
     62
     63dis_int と ena_int はサポートしない
    7864
    7965
    80 dis_int と ena_int はサポートしない
     66(3-1-5) CFG_INTの制限事項と拡張(ターゲット定義で使用できる割込み属性)
     67
     68レベル割込みしかサポートしないため,エッジ/レベルのトリガ設定は意味をもたない.
     69その他,ターゲット独自に使用可能な割込み属性はない.
    8170
    8271
    83 (3-1-5) CFG_INTの制限事é 
    84 ã¨æ‹¡å¼µï¼ˆã‚¿ãƒ¼ã‚²ãƒƒãƒˆå®šç¾©ã§ä½¿ç”¨ã§ãã‚‹å‰²è¾¼ã¿å±žæ€§ï¼‰
     72(3-1-6) カーネル管理外の割込み
    8573
    86 ãƒ¬ãƒ™ãƒ«å‰²è¾¼ã¿ã—かサポートしないため,エッジ/レベルのトリガ設定は意味をもたない.
    87 ãã®ä»–,ターゲット独自に使用可能な割込み属性はない.
     74FIQ割込みをカーネル管理外の割込みとして扱う.
     75
     76FIQ割込みが発生すると該当する割込みベクタからレジスタの退避を行なった後に
     77call_fiq_handler (core_config.c) が呼び出される.この関数は,
     78コアの全ての例外がマスクされた状態(ステータスレジスタのD,A,I,Fが全て1)で
     79呼び出される.
     80
     81FIQを利用するための設定,発生したFIQ 割込みに対する要因判別,
     82及び対応するハンドラ等の処理は独自に実装する必要がある.
     83
     84カーネル管理外の割込みを設定するためのAPIはサポートしない.
    8885
    8986
    90 (3-1-6) カーネル管理外の割込み
     87(3-2) CPUロック・割込みロック
    9188
    92 FIQ割込みをカーネル管理外の割込みとして扱う.
     89CPUロックは,ステータスレジスタのIビットの値で判別する.
     90全割込みロックフラグの実装ではこれに加えFビットも使用する.
    9391
    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はサポートしない.
     92CPUロックフラグは割込みロックフラグとは独立したフラグとしてサポートする.
     93そのため,SIL_LOC_INT呼び出し時はIフラグの状態を記憶し,
     94SIL_UNL_INT呼び出し時に元の状態に戻している.
    10895
    10996
    110 (3-2) CPUロック・割込みロック
     97(3-3) 性能評価用システム時刻の参照に関する規定
    11198
    112 CPUロックは,ステータスレジスタのIビットの値で判別する.
    113 å
    114 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯ãƒ•ãƒ©ã‚°ã®å®Ÿè£
    115 ã§ã¯ã“れに加えFビットも使用する.
    116 
    117 CPUロックフラグは割込みロックフラグとは独立したフラグとしてサポートする.
    118 ãã®ãŸã‚ï¼ŒSIL_LOC_INT呼び出し時はIフラグの状æ
    119 ‹ã‚’記憶し,
    120 SIL_UNL_INT呼び出し時にå
    121 ƒã®çŠ¶æ
    122 ‹ã«æˆ»ã—ている.
     99get_utmをサポートしない.
    123100
    124101
    125 (3-3) 性能評価用システム時刻の参ç
    126 §ã«é–¢ã™ã‚‹è¦å®š
     102(3-4) スタートアップルーチンでの初期化内容
    127103
    128 get_utmをサポートしない.
     104スタートアップルーチンはターゲット依存部のドキュメントに記載する.
    129105
    130106
    131 (3-4) スタートアップルーチンでの初期化å†
    132 å®¹
    133 
    134 ã‚¹ã‚¿ãƒ¼ãƒˆã‚¢ãƒƒãƒ—ルーチンはターゲット依存部のドキュメントに記載する.
    135 
    136 
    137 (4) ディレクトリ構成・ファイル構成
     107(4) ディレクトリ構成・ファイル構成
    138108  ./arch/arm64_gcc/bcm283x/
    139109    MANIFEST
     
    163133    pl011.h
    164134
    165 (12) バージョン履歴
     135(12) バージョン履歴
    166136
    1671372018/05/30
    168  ãƒ»æœ€åˆã®ãƒªãƒªãƒ¼ã‚¹
     138 ・最初のリリース
    1691392019/04/15
    170  ãƒ»BCM283xチップ依存部の分離に合わせて修正
     140 ・BCM283xチップ依存部の分離に合わせて修正
Note: See TracChangeset for help on using the changeset viewer.