source: ssp_rpi3/trunk/arch/arm64_gcc/common/core_user.txt@ 386

Last change on this file since 386 was 386, checked in by nmir-saito, 5 years ago

modify svn:mimetype of files

  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain; charset=utf-8
File size: 5.2 KB
Line 
1=====================================================================
2 ARM64プロセッサ依存部
3 Last Modified: '19/04/16
4=====================================================================
5
6
7(1) 対応しているターゲットシステムの種類・構成
8
9ARM64依存部は,ARMv8-A アーキテクチャをターゲットとしている.ARMv8-A は
1064ビットアーキテクチャであり命令セットレベルでもARMとは異なるため,
11ARM依存部と分けている.
12
13コア略称等は次の通り.
14
15 コア略称:arm64
16 開発環境略称:gcc
17
18(2) 使用する開発環境と動作検証した条件(バージョン,オプション等)
19
20カーネルはGCCを用いてコンパイルする.動作確認したバージョンは各ターゲ
21ット依存部のドキュメントに記載する.
22
23(3) ターゲット定義事項の規定
24
25(3-1) データ型に関する規定
26
27データ型は arch/gcc/tool_stddef.h で定義されている内容で,float型と
28double型は,それぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点
29数である.
30
31このほか,スタック領域を確保するためのデータ型のために
32int128_t および uint128_t を定義している.
33
34(3-2) 割込み処理に関する規定
35
36チップに搭載される割込みコントローラにより異なる.
37そのため,以下の事項についてはチップ依存部に記載する.
38
39・割込みハンドラ番号と割込み番号の割当て,両者の対応
40・割込み優先度の段階数(TMIN_INTPRIの値),その設定方法
41・dis_intとena_intのサポートの有無,その制限事項
42・CFG_INTの制限事項と拡張(ターゲット定義で使用できる割込み属性)
43・カーネル管理外の割込み
44
45(3-3) CPU例外処理に関する規定
46
47・CPU例外ハンドラ番号
48
49Synchronous例外およびSError例外をCPU例外として扱う.
50
51ARMv8では,例外発生時の例外レベル(EL),使用スタック,実行状態(AArch32 or AArch64),
52発生した例外の種類により,ジャンプ先となる例外ベクタ中のオフセットアドレスが異なる.
53CPU例外ハンドラはこのジャンプ先のオフセットアドレスで区別することにし,
54それぞれ異なるCPU例外ハンドラ番号を割り当てる.
55
56 例外発生時の状態 例外の種類 例外番号  例外ベクタ先頭からのオフセット
57 AArch64, EL1t(EL1, SP_EL0) Synchronous 0 0x0000
58 AArch64, EL1t(EL1, SP_EL0) SError 1 0x0180
59 AArch64, EL1h(EL1, SP_EL1) Synchronous 2 0x0200
60 AArch64, EL1h(EL1, SP_EL1) SError 3 0x0380
61 AArch64, EL0 (EL0, SP_EL0) Synchronous 4 0x0400
62 AArch64, EL0 (EL0, SP_EL0) SError 5 0x0580
63 AArch32, EL0 (EL0, SP_EL0) Synchronous 6 0x0600
64 AArch32, EL0 (EL0, SP_EL0) SError 7 0x0780
65
66
67(3-4) CPUロック・割込みロック
68
69チップにより実装方法が異なるため,チップ依存部に記載する.
70
71
72(3-5) 性能評価用システム時刻の参照に関する規定
73
74システムによって異なるためチップ依存部またはターゲット依存部のドキュメントで記載する.
75
76
77(3-6) スタートアップルーチンでの初期化内容
78
79スタートアップルーチンが前提とするプロセッサの状態はシステムにより異なるため,
80スタートアップルーチンはターゲット依存部のドキュメントに記載する.
81
82(4) タイマドライバ関連の情報
83
84カーネルのタイムティックとして,Generic Timer を使用する,
85ティック周期は1msecとする.またTIC_DENO及びTIC_NUMEの既定値として1に定義する.
86
87
88(5) ターゲット依存部での設定可能項目
89
90ターゲット依存部では以下のマクロを定義する.
91いくつかはプロセッサの依存部において既定値が定義されている.
92
93 ・TMIN_INTPRI : 割込み優先度の最小値(最高値)
94 ・TIC_NUME : タイムティックの周期の分子
95 ・TIC_DENO : タイムティックの周期の分母
96 ・INTPRI_TIMER : タイマ割込み優先度
97 ・INTATR_TIMER : タイマ割込みの割込み属性
98 ・DEFAULT_ISTKSZ : スタックサイズ(16byte単位で指定)
99
100
101(6) ディレクトリ構成・ファイル構成
102 ./arch/arm64_gcc/
103 MANIFEST
104 common/Makefile.core
105 common/arm64.h
106 common/core_cfg1_out.h
107 common/core_check.trb
108 common/core_config.c
109 common/core_config.h
110 common/core_design.txt
111 common/core_kernel.h
112 common/core_kernel.trb
113 common/core_rename.def
114 common/core_rename.h
115 common/core_sil.h
116 common/core_stddef.h
117 common/core_support.S
118 common/core_sym.def
119 common/core_test.h
120 common/core_timer.c
121 common/core_timer.cfg
122 common/core_timer.h
123 common/core_unrename.h
124 common/core_user.txt
125
126(12) バージョン履歴
127
1282018/05/30
129 ・最初のリリース
1302019/04/15
131 ・BCM283xチップ依存部の分離に合わせて修正
Note: See TracBrowser for help on using the repository browser.