OSDN Git Service

ADSP-BF609への対応
[toppersjsp4bf/jsp.git] / jsp / config / blackfin / ucb_bf609 / sys_config.h
1 /*
2  *  TOPPERS/JSP Kernel
3  *      Toyohashi Open Platform for Embedded Real-Time Systems/
4  *      Just Standard Profile Kernel
5  *
6  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7  *                              Toyohashi Univ. of Technology, JAPAN
8  *
9  *  TOPPERS/JSP for Blackfin
10  *
11  *  Copyright (C) 2004,2006,2009 by Takemasa Nakamura
12  *  Copyright (C) 2004 by Ujinosuke
13  *  Copyright (C) 2010-2013 by Kaneko System Co., Ltd.
14  *
15  *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
16  *  によって公表されている GNU General Public License の Version 2 に記
17  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
18  *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
19  *  利用と呼ぶ)することを無償で許諾する.
20  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
21  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
22  *      スコード中に含まれていること.
23  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
24  *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
25  *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
26  *      の無保証規定を掲載すること.
27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28  *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
29  *      と.
30  *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
32  *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
33  *        報告すること.
34  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
35  *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
36  *
37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
38  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
39  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
40  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
41  *
42  *
43  */
44
45
46 #ifndef _SYS_CONFIG_H_
47 #define _SYS_CONFIG_H_
48
49
50 /*
51  *  カーネルの内部識別名のリネーム
52  */
53 #include <sys_rename.h>
54
55 #include <chip_config.h>
56
57 /*
58  *  ターゲットシステム依存モジュール(UCB-BF609用)
59  *
60  *  このインクルードファイルは,t_config.h のみからインクルードされる.
61  *  他のファイルから直接インクルードしてはならない.
62 */
63
64 /*
65  * ADSP-BF609に依存せず、ボードへの実装によって決まるパラメータを
66  * ここで定義する。
67  */
68
69 /*
70  * どのようなクロック入力にも対応できるよう、以下でCGUのレジスタの値
71  * とクロック入力周波数(Hz)を指定する。PLLのプログラムはsys_config.cの
72  * sys_initialize()関数で行われる。
73  * OSELはOUTCLKのディバイダの設定値を定義し、出力EN設定は管理しない
74  *
75  * 範囲
76  * MSELVAL  : 1~127
77  * CSELVAL  : 1~31
78  * S0SELVAL : 1~31
79  * S0SELVAL : 1~7
80  * S1SELVAL : 1~7
81  * DSELVAL  : 1~31
82  * OSELVAL  : 1~127
83  * DFVAL    : 0~1 (PLLの入力クロックを1/2にする場合1を設定)
84  * CLKINの単位はHz
85  *
86  * VCO   = 25MHz * 20 = 500MHz
87  * CCLK  = VCO / CSEL = 500MHz
88  * S0CLK = VCO / SSEL / S0SEL = 125MHz
89  * S1CLK = VCO / SSEL / S1SEL = 125MHz
90  * DCLK  = VCO / DSELL = 250MHz
91  * OCLK  = VCO / OSEL = 100MHz
92  */
93
94 #define MSELVAL   20
95 #define CSELVAL   1
96 #define S0SELVAL  1
97 #define SYSSELVAL 4
98 #define S1SELVAL  1
99 #define DSELVAL   2
100 #define OSELVAL   5
101 #define CLKIN     25000000
102 #define DFVAL     0
103
104 /*
105  * TIC用タイマーの選択
106  * USE_TIC_COREをdefineすると、COREタイマーが使用される
107  * コメントアウトすると、GP_TIMER_7を使用する
108  *
109  * COREタイマーはwakeup信号を生成しないため、ディスパッチャ
110  * はidle命令を使ってCOREタイマーイベントを待つことができない。
111  * そのため、USE_TIC_COREを使うとディスパッチャはidle命令を
112  * 使わずに割り込み発生をポーリングで待つ。これは消費電力の
113  * 点で不利である。
114  *
115  */
116 //#define USE_TIC_CORE
117
118 /*
119  * ハードウェア・エラー割り込みの許可
120  * QUICK_HW_ERRORをdefineすると、ハードウェア・エラー・イベント
121  * が即座に受理される。defineしない場合には、割り込み待ち状態で
122  * ハードウェア・エラー・割り込みが発生した場合、次の割り込みまで
123  * 待たされることになる。
124  *
125  */
126 //#define QUICK_HW_ERROR
127
128
129 /*
130  * 実行時初期化関数の使用
131  *
132  * マクロ USE_RUNTIME_INIT を定義すると、start.asmのなかで _mi_initialize
133  * を呼び出す。この関数はノーブートモードで起動するときにのみ必要になるので
134  * 通常は USE_RUNTIME_INITを使う必要はない。
135  * 詳細はADIのEE239に詳しい。http://tinyurl.com/2hpbk (tinyURL)
136  *
137 */
138 //#define USE_RUNTIME_INIT
139
140 /*
141  * カーネル管理外割り込みの宣言
142  *
143  * マクロUNMANAGED_INTはカーネル管理外割り込みを宣言する。この
144  * マクロは16ビットのビットマップになっており、以下にあるパターン
145  * のうちひとつを使う。なお、どのようなパターンを選んでもNMIは管理外
146  * 割込みとして扱われる。
147  * UNMANAGED_INTを宣言しない場合、NMIだけが管理外割込みとして扱われる。
148  *
149 */
150 //#define UNMANAGED_INT 0x0020          // IVHWがカーネル管理外.
151 //#define UNMANAGED_INT 0x0060          // IVTMRとIVHWがカーネル管理外.
152 //#define UNMANAGED_INT 0x00E0          // IVG7, IVTMRとIVHWがカーネル管理外.
153 //#define UNMANAGED_INT 0x01E0          // IVG8 ... IVG7, IVTMRとIVHWがカーネル管理外.
154 //#define UNMANAGED_INT 0x03E0          // IVG9 ... IVG7, IVTMRとIVHWがカーネル管理外.
155 //#define UNMANAGED_INT 0x07E0          // IVG10 ... IVG7, IVTMRとIVHWがカーネル管理外.
156 //#define UNMANAGED_INT 0x0FE0          // IVG11 ... IVG7, IVTMRとIVHWがカーネル管理外.
157 //#define UNMANAGED_INT 0x1FE0          // IVG12 ... IVG7, IVTMRとIVHWがカーネル管理外.
158 //#define UNMANAGED_INT 0x3FE0          // IVG13 ... IVG7, IVTMRとIVHWがカーネル管理外.
159
160 /*
161  * C++関連資源を用意する
162  *
163  * マクロINIT_C_PLUS_PLUSを定義すると、C++言語用のテーブルを
164  * 初期化コードを実行する。また、C++言語用のテーブルを宣言する
165  *
166 */
167 //#define INIT_C_PLUS_PLUS
168
169 /*
170  * SECの設定
171  */
172 /* SECのLOCK機構を使用する場合1 */
173 #define SEC_ENABLE_LOCKING              (0)
174
175
176 /*
177  *  起動メッセージのターゲットシステム名
178  */
179 #define TARGET_NAME "UCB-BF609"
180
181
182 /*
183  *  シリアルポート数の定義
184  *  TNUM_SIOP_XXXは、UARTの種別ごとに宣言する。
185  *  TNUM_SIOP_UARTはBF548内蔵UARTのうち、PDICが使用するもの。
186  *  TNUM_PORTは、TNUM_SIOP_XXXのうち、GDICが使用するものの総和。
187  *  uart.cで使う。
188  */
189 #define TNUM_PORT   2       /* GDICがサポートするシリアルポートの数 */
190 #define TNUM_SIOP_UART  2   /* PIDCがサポートするシリアルポートの数 */
191
192 /*
193  *  シリアルポート番号に関する定義
194  *  ログタスクがシリアルポートを使わない場合は無視していい。
195  */
196 #define LOGTASK_PORTID  1   /* システムログに用いるシリアルポート番号 */
197
198 /*  UART0のボーレート. */
199 #define UART0_BAUD_RATE 57600       /* 57600 bps*/
200 #define UART1_BAUD_RATE 57600       /* 57600 bps*/
201
202 /*
203  * PLLの初期化の強制
204  * PLLは、PLL_CTLレジスタがデフォルト値で、かつ、SDRAMコントローラが
205  * ディセーブルのときに限り初期化を行うようになっている。これは、ブート
206  * ローダーなどの初期化ソフトがSDRAMを初期化したときにそれを保護するため
207  * である。一方でVisualDSP++のデバッガはSDRAMを自分で初期化するため、
208  * この機能とうまく折り合いがつかない場合がある。
209  * 上京に関わらず常に初期化したい時には FORCE_PLL_INITIALIZE マクロを
210  * 宣言する。
211  */
212 #define FORCE_PLL_INITIALIZE
213
214 #endif /* _SYS_CONFIG_H_ */