3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
9 * TOPPERS/JSP for Blackfin
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.
15 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
16 * によって公表されている GNU General Public License の Version 2 に記
17 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
18 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
20 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
21 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
23 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
24 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
25 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
27 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
30 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
31 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
32 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
34 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
35 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
37 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
38 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
39 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
40 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
46 #ifndef _SYS_CONFIG_H_
47 #define _SYS_CONFIG_H_
53 #include <sys_rename.h>
55 #include <chip_config.h>
58 * ターゲットシステム依存モジュール(UCB-BF609用)
60 * このインクルードファイルは,t_config.h のみからインクルードされる.
61 * 他のファイルから直接インクルードしてはならない.
65 * ADSP-BF609に依存せず、ボードへの実装によって決まるパラメータを
70 * どのようなクロック入力にも対応できるよう、以下でCGUのレジスタの値
71 * とクロック入力周波数(Hz)を指定する。PLLのプログラムはsys_config.cの
72 * sys_initialize()関数で行われる。
73 * OSELはOUTCLKのディバイダの設定値を定義し、出力EN設定は管理しない
83 * DFVAL : 0~1 (PLLの入力クロックを1/2にする場合1を設定)
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
101 #define CLKIN 25000000
106 * USE_TIC_COREをdefineすると、COREタイマーが使用される
107 * コメントアウトすると、GP_TIMER_7を使用する
109 * COREタイマーはwakeup信号を生成しないため、ディスパッチャ
110 * はidle命令を使ってCOREタイマーイベントを待つことができない。
111 * そのため、USE_TIC_COREを使うとディスパッチャはidle命令を
112 * 使わずに割り込み発生をポーリングで待つ。これは消費電力の
116 //#define USE_TIC_CORE
120 * QUICK_HW_ERRORをdefineすると、ハードウェア・エラー・イベント
121 * が即座に受理される。defineしない場合には、割り込み待ち状態で
122 * ハードウェア・エラー・割り込みが発生した場合、次の割り込みまで
126 //#define QUICK_HW_ERROR
132 * マクロ USE_RUNTIME_INIT を定義すると、start.asmのなかで _mi_initialize
133 * を呼び出す。この関数はノーブートモードで起動するときにのみ必要になるので
134 * 通常は USE_RUNTIME_INITを使う必要はない。
135 * 詳細はADIのEE239に詳しい。http://tinyurl.com/2hpbk (tinyURL)
138 //#define USE_RUNTIME_INIT
143 * マクロUNMANAGED_INTはカーネル管理外割り込みを宣言する。この
144 * マクロは16ビットのビットマップになっており、以下にあるパターン
145 * のうちひとつを使う。なお、どのようなパターンを選んでもNMIは管理外
147 * UNMANAGED_INTを宣言しない場合、NMIだけが管理外割込みとして扱われる。
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がカーネル管理外.
163 * マクロINIT_C_PLUS_PLUSを定義すると、C++言語用のテーブルを
164 * 初期化コードを実行する。また、C++言語用のテーブルを宣言する
167 //#define INIT_C_PLUS_PLUS
172 /* SECのLOCK機構を使用する場合1 */
173 #define SEC_ENABLE_LOCKING (0)
179 #define TARGET_NAME "UCB-BF609"
184 * TNUM_SIOP_XXXは、UARTの種別ごとに宣言する。
185 * TNUM_SIOP_UARTはBF548内蔵UARTのうち、PDICが使用するもの。
186 * TNUM_PORTは、TNUM_SIOP_XXXのうち、GDICが使用するものの総和。
189 #define TNUM_PORT 2 /* GDICがサポートするシリアルポートの数 */
190 #define TNUM_SIOP_UART 2 /* PIDCがサポートするシリアルポートの数 */
194 * ログタスクがシリアルポートを使わない場合は無視していい。
196 #define LOGTASK_PORTID 1 /* システムログに用いるシリアルポート番号 */
199 #define UART0_BAUD_RATE 57600 /* 57600 bps*/
200 #define UART1_BAUD_RATE 57600 /* 57600 bps*/
204 * PLLは、PLL_CTLレジスタがデフォルト値で、かつ、SDRAMコントローラが
205 * ディセーブルのときに限り初期化を行うようになっている。これは、ブート
206 * ローダーなどの初期化ソフトがSDRAMを初期化したときにそれを保護するため
207 * である。一方でVisualDSP++のデバッガはSDRAMを自分で初期化するため、
208 * この機能とうまく折り合いがつかない場合がある。
209 * 上京に関わらず常に初期化したい時には FORCE_PLL_INITIALIZE マクロを
212 #define FORCE_PLL_INITIALIZE
214 #endif /* _SYS_CONFIG_H_ */