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

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

add target dependent files of ssp for rpi3

  • Property svn:keywords set to Id
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
26(3-1) データ型に関する規定
27
28データ型は arch/gcc/tool_stddef.h で定義されている内
29容で,float型と
30double型は,それぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点
31数である.
32
33このほか,スタック領域を確保するためのデータ型のために
34int128_t および uint128_t を定義している.
35
36(3-2) 割込み処理に関する規定
37
38チップに搭載される割込みコントローラにより異なる.
39そのため,以下の事項
40についてはチップ依存部に記載する.
41
42・割込みハンドラ番号と割込み番号の割当て,両者
43の対応
44・割込み優å…
45ˆåº¦ã®æ®µéšŽæ•°ï¼ˆTMIN_INTPRIの値),その設定方法
46・dis_intとena_intのサポートの有無,その制限事項
47
48・CFG_INTの制限事項
49と拡張(ターゲット定義で使用できる割込み属性)
50・カーネル管理外の割込み
51
52(3-3) CPU例外処理に関する規定
53
54・CPU例外ハンドラ番号
55
56Synchronous例外およびSError例外をCPU例外として扱う.
57
58ARMv8では,例外発生時の例外レベル(EL),使用スタック,実行状æ…
59‹(AArch32 or AArch64),
60発生した例外の種類により,ジャンプå…
61ˆã¨ãªã‚‹ä¾‹å¤–ベクタ中のオフセットアドレスが異なる.
62CPU例外ハンドラはこのジャンプå…
63ˆã®ã‚ªãƒ•ã‚»ãƒƒãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã§åŒºåˆ¥ã™ã‚‹ã“とにし,
64それぞれ異なるCPU例外ハンドラ番号を割り当てる.
65
66 例外発生時の状æ…
67‹ 例外の種類 例外番号  例外ベクタå…
68ˆé ­ã‹ã‚‰ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ
69 AArch64, EL1t(EL1, SP_EL0) Synchronous 0 0x0000
70 AArch64, EL1t(EL1, SP_EL0) SError 1 0x0180
71 AArch64, EL1h(EL1, SP_EL1) Synchronous 2 0x0200
72 AArch64, EL1h(EL1, SP_EL1) SError 3 0x0380
73 AArch64, EL0 (EL0, SP_EL0) Synchronous 4 0x0400
74 AArch64, EL0 (EL0, SP_EL0) SError 5 0x0580
75 AArch32, EL0 (EL0, SP_EL0) Synchronous 6 0x0600
76 AArch32, EL0 (EL0, SP_EL0) SError 7 0x0780
77
78
79(3-4) CPUロック・割込みロック
80
81チップにより実装
82方法が異なるため,チップ依存部に記載する.
83
84
85(3-5) 性能評価用システム時刻の参ç…
86§ã«é–¢ã™ã‚‹è¦å®š
87
88システムによって異なるためチップ依存部またはターゲット依存部のドキュメントで記載する.
89
90
91(3-6) スタートアップルーチンでの初期化内
92容
93
94スタートアップルーチンが前提とするプロセッサの状æ…
95‹ã¯ã‚·ã‚¹ãƒ†ãƒ ã«ã‚ˆã‚Šç•°ãªã‚‹ãŸã‚ï¼Œ
96スタートアップルーチンはターゲット依存部のドキュメントに記載する.
97
98(4) タイマドライバ関連の情
99å ±
100
101カーネルのタイムティックとして,Generic Timer を使用する,
102ティック周期は1msecとする.またTIC_DENO及びTIC_NUMEの既定値として1に定義する.
103
104
105(5) ターゲット依存部での設定可能項
106目
107
108ターゲット依存部では以下のマクロを定義する.
109いくつかはプロセッサの依存部において既定値が定義されている.
110
111 ・TMIN_INTPRI : 割込み優å…
112ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰
113 ・TIC_NUME : タイムティックの周期の分子
114 ・TIC_DENO : タイムティックの周期の分母
115 ・INTPRI_TIMER : タイマ割込み優å…
116ˆåº¦
117 ・INTATR_TIMER : タイマ割込みの割込み属性
118 ・DEFAULT_ISTKSZ : スタックサイズ(16byte単位で指定)
119
120
121(6) ディレクトリ構成・ファイル構成
122 ./arch/arm64_gcc/
123 MANIFEST
124 common/Makefile.core
125 common/arm64.h
126 common/core_cfg1_out.h
127 common/core_check.trb
128 common/core_config.c
129 common/core_config.h
130 common/core_design.txt
131 common/core_kernel.h
132 common/core_kernel.trb
133 common/core_rename.def
134 common/core_rename.h
135 common/core_sil.h
136 common/core_stddef.h
137 common/core_support.S
138 common/core_sym.def
139 common/core_test.h
140 common/core_timer.c
141 common/core_timer.cfg
142 common/core_timer.h
143 common/core_unrename.h
144 common/core_user.txt
145
146(12) バージョン履歴
147
1482018/05/30
149 ・最初のリリース
1502019/04/15
151 ・BCM283xチップ依存部の分離に合わせて修正
Note: See TracBrowser for help on using the repository browser.