Changeset 386 for ssp_rpi3/trunk/arch/arm64_gcc/common/core_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/common/core_user.txt
-
Property svn:mime-type
set to
text/plain; charset=utf-8
r384 r386 1 1 ===================================================================== 2 ARM64 ããã»ããµä¾åé¨2 ARM64プロセッサ依存部 3 3 Last Modified: '19/04/16 4 4 ===================================================================== 5 5 6 6 7 (1) 対å¿ãã¦ããã¿ã¼ã²ããã·ã¹ãã ã®ç¨®é¡ã»æ§æ7 (1) 対応しているターゲットシステムの種類・構成 8 8 9 ARM64 ä¾åé¨ã¯ï¼ARMv8-A ã¢ã¼ããã¯ãã£ãã¿ã¼ã²ããã¨ãã¦ããï¼ARMv8-A ã¯10 64 ãããã¢ã¼ããã¯ãã£ã§ããå½ä»¤ã»ããã¬ãã«ã§ãARMã¨ã¯ç°ãªãããï¼11 ARM ä¾åé¨ã¨åãã¦ããï¼9 ARM64依存部は,ARMv8-A アーキテクチャをターゲットとしている.ARMv8-A は 10 64ビットアーキテクチャであり命令セットレベルでもARMとは異なるため, 11 ARM依存部と分けている. 12 12 13 ã³ã¢ç¥ç§°çã¯æ¬¡ã®éãï¼ 13 コア略称等は次の通り. 14 14 15 ã³ã¢ç¥ç§°ï¼arm6416 éçºç°å¢ç¥ç§°ï¼gcc15 コア略称:arm64 16 開発環境略称:gcc 17 17 18 (2) 使ç¨ããéçºç°å¢ã¨åä½æ¤è¨¼ããæ¡ä»¶ï¼ãã¼ã¸ã§ã³ï¼ãªãã·ã§ã³çï¼18 (2) 使用する開発環境と動作検証した条件(バージョン,オプション等) 19 19 20 ã«ã¼ãã«ã¯GCCãç¨ãã¦ã³ã³ãã¤ã«ããï¼åä½ç¢ºèªãããã¼ã¸ã§ã³ã¯åã¿ã¼ã² 21 ããä¾åé¨ã®ããã¥ã¡ã³ãã«è¨è¼ããï¼ 20 カーネルはGCCを用いてコンパイルする.動作確認したバージョンは各ターゲ 21 ット依存部のドキュメントに記載する. 22 22 23 (3) ã¿ã¼ã²ããå®ç¾©äºé 24 ã®è¦å® 23 (3) ターゲット定義事項の規定 25 24 26 (3-1) ãã¼ã¿åã«é¢ããè¦å®25 (3-1) データ型に関する規定 27 26 28 ãã¼ã¿å㯠arch/gcc/tool_stddef.h ã§å®ç¾©ããã¦ããå 29 容ã§ï¼floatå㨠30 doubleåã¯ï¼ããããIEEE754æºæ ã®å精度浮åå°æ°ç¹æ°ã¨å精度浮åå°æ°ç¹ 31 æ°ã§ããï¼ 27 データ型は arch/gcc/tool_stddef.h で定義されている内容で,float型と 28 double型は,それぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点 29 数である. 32 30 33 ãã®ã»ãï¼ã¹ã¿ãã¯é åã確ä¿ããããã®ãã¼ã¿åã®ããã« 34 int128_t ããã³ uint128_t ãå®ç¾©ãã¦ããï¼31 このほか,スタック領域を確保するためのデータ型のために 32 int128_t および uint128_t を定義している. 35 33 36 (3-2) å²è¾¼ã¿å¦çã«é¢ããè¦å®34 (3-2) 割込み処理に関する規定 37 35 38 ãããã«æè¼ãããå²è¾¼ã¿ã³ã³ããã¼ã©ã«ããç°ãªãï¼ 39 ãã®ããï¼ä»¥ä¸ã®äºé 40 ã«ã¤ãã¦ã¯ãããä¾åé¨ã«è¨è¼ããï¼ 36 チップに搭載される割込みコントローラにより異なる. 37 そのため,以下の事項についてはチップ依存部に記載する. 41 38 42 ã»å²è¾¼ã¿ãã³ãã©çªå·ã¨å²è¾¼ã¿çªå·ã®å²å½ã¦ï¼ä¸¡è 43 ã®å¯¾å¿ 44 ã»å²è¾¼ã¿åªå 45 度ã®æ®µéæ°ï¼TMIN_INTPRIã®å¤ï¼ï¼ãã®è¨å®æ¹æ³ 46 ã»dis_intã¨ena_intã®ãµãã¼ãã®æç¡ï¼ãã®å¶éäºé 39 ・割込みハンドラ番号と割込み番号の割当て,両者の対応 40 ・割込み優先度の段階数(TMIN_INTPRIの値),その設定方法 41 ・dis_intとena_intのサポートの有無,その制限事項 42 ・CFG_INTの制限事項と拡張(ターゲット定義で使用できる割込み属性) 43 ・カーネル管理外の割込み 47 44 48 ã»CFG_INTã®å¶éäºé 49 ã¨æ¡å¼µï¼ã¿ã¼ã²ããå®ç¾©ã§ä½¿ç¨ã§ããå²è¾¼ã¿å±æ§ï¼ 50 ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ 45 (3-3) CPU例外処理に関する規定 51 46 52 (3-3) CPUä¾å¤å¦çã«é¢ããè¦å® 47 ・CPU例外ハンドラ番号 53 48 54 ã»CPUä¾å¤ãã³ãã©çªå· 49 Synchronous例外およびSError例外をCPU例外として扱う. 55 50 56 Synchronousä¾å¤ããã³SErrorä¾å¤ãCPUä¾å¤ã¨ãã¦æ±ãï¼ 51 ARMv8では,例外発生時の例外レベル(EL),使用スタック,実行状態(AArch32 or AArch64), 52 発生した例外の種類により,ジャンプ先となる例外ベクタ中のオフセットアドレスが異なる. 53 CPU例外ハンドラはこのジャンプ先のオフセットアドレスで区別することにし, 54 それぞれ異なるCPU例外ハンドラ番号を割り当てる. 57 55 58 ARMv8ã§ã¯ï¼ä¾å¤çºçæã®ä¾å¤ã¬ãã«(EL)ï¼ä½¿ç¨ã¹ã¿ãã¯ï¼å®è¡ç¶æ 59 (AArch32 or AArch64)ï¼ 60 çºçããä¾å¤ã®ç¨®é¡ã«ããï¼ã¸ã£ã³ãå 61 ã¨ãªãä¾å¤ãã¯ã¿ä¸ã®ãªãã»ããã¢ãã¬ã¹ãç°ãªãï¼ 62 CPUä¾å¤ãã³ãã©ã¯ãã®ã¸ã£ã³ãå 63 ã®ãªãã»ããã¢ãã¬ã¹ã§åºå¥ãããã¨ã«ãï¼ 64 ããããç°ãªãCPUä¾å¤ãã³ãã©çªå·ãå²ãå½ã¦ãï¼ 65 66 ä¾å¤çºçæã®ç¶æ 67 ä¾å¤ã®ç¨®é¡ ä¾å¤çªå· ãä¾å¤ãã¯ã¿å 68 é ããã®ãªãã»ãã 56 例外発生時の状態 例外の種類 例外番号 例外ベクタ先頭からのオフセット 69 57 AArch64, EL1t(EL1, SP_EL0) Synchronous 0 0x0000 70 58 AArch64, EL1t(EL1, SP_EL0) SError 1 0x0180 … … 77 65 78 66 79 (3-4) CPU ããã¯ã»å²è¾¼ã¿ããã¯67 (3-4) CPUロック・割込みロック 80 68 81 ãããã«ããå®è£ 82 æ¹æ³ãç°ãªãããï¼ãããä¾åé¨ã«è¨è¼ããï¼ 69 チップにより実装方法が異なるため,チップ依存部に記載する. 83 70 84 71 85 (3-5) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç 86 §ã«é¢ããè¦å® 72 (3-5) 性能評価用システム時刻の参照に関する規定 87 73 88 ã·ã¹ãã ã«ãã£ã¦ç°ãªããããããä¾åé¨ã¾ãã¯ã¿ã¼ã²ããä¾åé¨ã®ããã¥ã¡ã³ãã§è¨è¼ããï¼ 74 システムによって異なるためチップ依存部またはターゲット依存部のドキュメントで記載する. 89 75 90 76 91 (3-6) ã¹ã¿ã¼ãã¢ããã«ã¼ãã³ã§ã®åæåå 92 容 77 (3-6) スタートアップルーチンでの初期化内容 93 78 94 ã¹ã¿ã¼ãã¢ããã«ã¼ãã³ãåæã¨ããããã»ããµã®ç¶æ 95 ã¯ã·ã¹ãã ã«ããç°ãªãããï¼ 96 ã¹ã¿ã¼ãã¢ããã«ã¼ãã³ã¯ã¿ã¼ã²ããä¾åé¨ã®ããã¥ã¡ã³ãã«è¨è¼ããï¼ 79 スタートアップルーチンが前提とするプロセッサの状態はシステムにより異なるため, 80 スタートアップルーチンはターゲット依存部のドキュメントに記載する. 97 81 98 (4) ã¿ã¤ããã©ã¤ãé¢é£ã®æ 99 å ± 82 (4) タイマドライバ関連の情報 100 83 101 ã«ã¼ãã«ã®ã¿ã¤ã ãã£ãã¯ã¨ãã¦ï¼Generic Timer ã使ç¨ããï¼ 102 ãã£ãã¯å¨æã¯1msecã¨ããï¼ã¾ãTIC_DENOåã³TIC_NUMEã®æ¢å®å¤ã¨ãã¦1ã«å®ç¾©ããï¼ 84 カーネルのタイムティックとして,Generic Timer を使用する, 85 ティック周期は1msecとする.またTIC_DENO及びTIC_NUMEの既定値として1に定義する. 103 86 104 87 105 (5) ã¿ã¼ã²ããä¾åé¨ã§ã®è¨å®å¯è½é 106 ç® 88 (5) ターゲット依存部での設定可能項目 107 89 108 ã¿ã¼ã²ããä¾åé¨ã§ã¯ä»¥ä¸ã®ãã¯ããå®ç¾©ããï¼ 109 ããã¤ãã¯ããã»ããµã®ä¾åé¨ã«ããã¦æ¢å®å¤ãå®ç¾©ããã¦ããï¼ 90 ターゲット依存部では以下のマクロを定義する. 91 いくつかはプロセッサの依存部において既定値が定義されている. 110 92 111 ã»TMIN_INTPRI : å²è¾¼ã¿åªå 112 度ã®æå°å¤ï¼æé«å¤ï¼ 113 ã»TIC_NUME : ã¿ã¤ã ãã£ãã¯ã®å¨æã®åå 114 ã»TIC_DENO : ã¿ã¤ã ãã£ãã¯ã®å¨æã®åæ¯ 115 ã»INTPRI_TIMER : ã¿ã¤ãå²è¾¼ã¿åªå 116 度 117 ã»INTATR_TIMER : ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿å±æ§ 118 ã»DEFAULT_ISTKSZ : ã¹ã¿ãã¯ãµã¤ãºï¼16byteåä½ã§æå®ï¼ 93 ・TMIN_INTPRI : 割込み優先度の最小値(最高値) 94 ・TIC_NUME : タイムティックの周期の分子 95 ・TIC_DENO : タイムティックの周期の分母 96 ・INTPRI_TIMER : タイマ割込み優先度 97 ・INTATR_TIMER : タイマ割込みの割込み属性 98 ・DEFAULT_ISTKSZ : スタックサイズ(16byte単位で指定) 119 99 120 100 121 (6) ãã£ã¬ã¯ããªæ§æã»ãã¡ã¤ã«æ§æ101 (6) ディレクトリ構成・ファイル構成 122 102 ./arch/arm64_gcc/ 123 103 MANIFEST … … 144 124 common/core_user.txt 145 125 146 (12) ãã¼ã¸ã§ã³å±¥æ´126 (12) バージョン履歴 147 127 148 128 2018/05/30 149 ã»æåã®ãªãªã¼ã¹129 ・最初のリリース 150 130 2019/04/15 151 ã»BCM283xãããä¾åé¨ã®åé¢ã«åããã¦ä¿®æ£131 ・BCM283xチップ依存部の分離に合わせて修正 -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.