source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/powerpc32/mpc860t/mpc860t.h@ 26

Last change on this file since 26 was 26, checked in by ykominami, 12 years ago

initial

File size: 24.1 KB
Line 
1/*
2 * TOPPERS/JSP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2001-2004 by Industrial Technology Institute,
9 * Miyagi Prefectural Government, JAPAN
10 *
11 * 上記著作権者
12は,以下の (1)〜(4) の条件か,Free Software Foundation
13 * によってå…
14¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
15 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
16 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
17å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
18 * 利用と呼ぶ)することを無償で許諾する.
19 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
21 * スコード中に含まれていること.
22 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23 * 用できる形で再é…
24å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
25å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
26 * 者
27マニュアルなど)に,上記の著作権表示,この利用条件および下記
28 * の無保証規定を掲載すること.
29 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30 * 用できない形で再é…
31å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
32 * と.
33 * (a) 再é…
34å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
35マニュアルなど)に,上記の著
36 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
37 * (b) 再é…
38å¸ƒã®å½¢æ…
39‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
40 * 報告すること.
41 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
42 * 害からも,上記著作権者
43およびTOPPERSプロジェクトをå…
44è²¬ã™ã‚‹ã“と.
45 *
46 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47お
48 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
49 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
50 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
51 *
52 * @(#) $Id: mpc860t.h,v 1.2 2004/10/07 17:10:56 honda Exp $
53 */
54
55/*
56 * MPC860のハードウェア資源の定義
57 */
58
59#ifndef _MPC860_H_
60#define _MPC860_H_
61
62/*
63 * 割込みの本数
64 */
65#define TMAX_SIU_INTNO 16 /* システムインターフェースユニットSIU */
66#define TMAX_CPM_INTNO 32 /* 通信プロセッサモジュールCPM */
67 /* MPC860å…
68¨ä½“ */
69#define TMAX_INTNO (TMAX_SIU_INTNO+TMAX_CPM_INTNO)
70
71/*
72 * 割込み関連の定義
73 *  割込み要因毎に3種類の値を管理している
74 *  1.割込み番号
75 *  2.SIUへの割込み要求レベル
76 *    内
77部レベルの設定
78 *    CPM割込みはå…
79¨ä½“でひとまとめの扱い
80 *     (1) No.:0〜7の数値
81 *        人間には分かりやすいが、プログラム中では
82 *        直接、使用されない
83 *     (1-2) 割込み要因の識別
84 *        擬似ベクタテーブルのインデックスとして読み出す
85 *        だけなので、即値としてマクロ定義しておく必
86要はない
87 *        予め2ビットシフトされている
88 *     (2) 1バイトのビットパターン
89 *        割込み要求レベルを設定する際にレジスタにセットする値
90 *        該当する1ビットだけをセットする
91 *  3.SIUのIPM
92 *    2バイトのビットパターン
93 *    CPM割込みはå…
94¨ä½“でひとまとめの扱い
95 *     (1) 割込みマスク
96 *        SIU割込みレジスタSIMASKに設定する値
97 *        自分よりレベルの低い割込み要求をすべてマスクする
98 *     (2) 保留中の割込み要因
99 *        該当するビットだけがセットされている
100 *
101 *  内
102部レベル2-(1)から割込み番号、割込みレベル設定用ビットパターン、
103 *  IPMを生成する方針で実装
104
105 *
106 */
107
108/*
109 * 割込み番号の定義
110 * ハードウェアマニュアルにはSIU割込みソースの16〜31番は予約済
111 * みとあるが、擬似ベクタテーブルが無駄に大きくなるだけなので、
112 * CPM割込みソースを割り当てている
113 *
114 * 割込み番号と優å…
115ˆåº¦ã®é–¢ä¿‚がSIU割込みとCPM割込み(デフォルト)
116 * で逆なので注意
117 *  SIU割込み
118 *   割込み番号  0:最上位
119 *   割込み番号  15:最下位
120 *  CPM割込み(デフォルト)
121 *   割込み番号  0x0:最下位
122 *   割込み番号 0x1f:最上位
123 */
124
125 /* SIU割込みソース */
126#define INTNO_IRQ0 0x0 /* IRQ0 */
127#define INTNO_LVL0 0x1 /* 内
128部レベル0 */
129#define INTNO_IRQ1 0x2 /* IRQ1 */
130#define INTNO_LVL1 0x3 /* 内
131部レベル1 */
132#define INTNO_IRQ2 0x4 /* IRQ2 */
133#define INTNO_LVL2 0x5 /* 内
134部レベル2 */
135#define INTNO_IRQ3 0x6 /* IRQ3 */
136#define INTNO_LVL3 0x7 /* 内
137部レベル3 */
138#define INTNO_IRQ4 0x8 /* IRQ4 */
139#define INTNO_LVL4 0x9 /* 内
140部レベル4 */
141#define INTNO_IRQ5 0xa /* IRQ5 */
142#define INTNO_LVL5 0xb /* 内
143部レベル5 */
144#define INTNO_IRQ6 0xc /* IRQ6 */
145#define INTNO_LVL6 0xd /* 内
146部レベル6 */
147#define INTNO_IRQ7 0xe /* IRQ7 */
148#define INTNO_LVL7 0xf /* 内
149部レベル7 */
150
151 /* CPM割込みソース */
152#define INTNO_ERR 0x10 /* エラー:0x0 */
153#define INTNO_PC4 0x11 /* パラレルI/O PC4:0x1 */
154#define INTNO_PC5 0x12 /* パラレルI/O PC5:0x2 */
155#define INTNO_SMC2 0x13 /* SMC2/PIP:0x3 */
156#define INTNO_SMC1 0x14 /* SMC1:0x4 */
157#define INTNO_SPI 0x15 /* SPI:0x5 */
158#define INTNO_PC6 0x16 /* パラレルI/O PC6:0x6 */
159#define INTNO_TIMER4 0x17 /* タイマ4:0x7 */
160/* CPM割込み番号8は予約済み */
161#define INTNO_PC7 0x19 /* パラレルI/O PC7:0x9 */
162#define INTNO_PC8 0x1a /* パラレルI/O PC8:0xa */
163#define INTNO_PC9 0x1b /* パラレルI/O PC9:0xb */
164#define INTNO_TIMER3 0x1c /* タイマ3:0xc */
165/* CPM割込み番号0xdは予約済み */
166#define INTNO_PC10 0x1e /* パラレルI/O PC10:0xe */
167#define INTNO_PC11 0x1f /* パラレルI/O PC11:0xf */
168#define INTNO_I2C 0x20 /* I2C:0x10 */
169#define INTNO_RISC 0x21 /* RISCタイマテーブル:0x11 */
170#define INTNO_TIMER2 0x22 /* タイマ2:0x12 */
171/* CPM割込み番号0x13は予約済み */
172#define INTNO_IDMA2 0x24 /* IDMA2:0x14 */
173#define INTNO_IDMA1 0x25 /* IDMA1:0x15 */
174#define INTNO_SDMA 0x26 /* SDMAチャネルバスエラー:0x16 */
175#define INTNO_PC12 0x27 /* パラレルI/O PC12:0x17 */
176#define INTNO_PC13 0x28 /* パラレルI/O PC13:0x18 */
177#define INTNO_TIMER1 0x29 /* タイマ1:0x19 */
178#define INTNO_PC14 0x2a /* パラレルI/O PC14: */
179#define INTNO_SCC4 0x2b /* SCC4:0x1a */
180#define INTNO_SCC3 0x2c /* SCC3:0x1c */
181#define INTNO_SCC2 0x2d /* SCC2:0x1d */
182#define INTNO_SCC1 0x2e /* SCC1:0x1e */
183#define INTNO_PC15 0x2f /* パラレルI/O PC15:0x1f */
184
185/*
186 * SIUのIPMの定義
187 * 2バイトのビットパターン
188 * ハードウェアのデフォルトの優å…
189ˆåº¦ã«åˆã‚ã›ã¦ã„ã‚‹
190 */
191#define IPM_IRQ0 0x00u /* IRQ0 */
192#define IPM_LVL0 BIT0_16 /* 内
193部レベル0 */
194#define IPM_IRQ1 (IPM_LVL0 | BIT1_16) /* IRQ1 */
195#define IPM_LVL1 (IPM_IRQ1 | BIT2_16) /* 内
196部レベル1 */
197#define IPM_IRQ2 (IPM_LVL1 | BIT3_16) /* IRQ2 */
198#define IPM_LVL2 (IPM_IRQ2 | BIT4_16) /* 内
199部レベル2 */
200#define IPM_IRQ3 (IPM_LVL2 | BIT5_16) /* IRQ3 */
201#define IPM_LVL3 (IPM_IRQ3 | BIT6_16) /* 内
202部レベル3 */
203#define IPM_IRQ4 (IPM_LVL3 | BIT7_16) /* IRQ4 */
204#define IPM_LVL4 (IPM_IRQ4 | BIT8_16) /* 内
205部レベル4 */
206#define IPM_IRQ5 (IPM_LVL4 | BIT9_16) /* IRQ5 */
207#define IPM_LVL5 (IPM_IRQ5 | BIT10_16) /* 内
208部レベル5 */
209#define IPM_IRQ6 (IPM_LVL5 | BIT11_16) /* IRQ6 */
210#define IPM_LVL6 (IPM_IRQ6 | BIT12_16) /* 内
211部レベル6 */
212#define IPM_IRQ7 (IPM_LVL6 | BIT13_16) /* IRQ7 */
213#define IPM_LVL7 (IPM_IRQ7 | BIT14_16) /* 内
214部レベル7 */
215
216
217/* 割込みレベルから割込み番号への変換 */
218#define _LEVEL_TO_INHNO(level) INTNO_LVL##level
219#define LEVEL_TO_INHNO(level) _LEVEL_TO_INHNO(level)
220
221/* 割込みレベルから登録用ビットパターンへの変換 */
222#define _LEVEL_TO_BIT_PATTERN(level) (0x1<<(7-(level)))
223#define LEVEL_TO_BIT_PATTERN(level) _LEVEL_TO_BIT_PATTERN(level)
224
225/* 割込みレベルからIPMへの変換 */
226#define _LEVEL_TO_IPM(level) IPM_LVL##level
227#define LEVEL_TO_IPM(level) _LEVEL_TO_IPM(level)
228
229/* 割込みレベルから割込み許可ビットへの変換 */
230#define _LEVEL_TO_ENABLE_BIT(level) SIMASK_LVM##level
231#define LEVEL_TO_ENABLE_BIT(level) _LEVEL_TO_ENABLE_BIT(level)
232
233
234/*
235 * CPUの内
236部レジスタ
237 */
238
239/*
240 * 8. 命令キャッシュ・データキャッシュ関連の定義
241 */
242
243/* 制御レジスタ */
244
245/* 命令キャッシュ関連 */
246#define IC_CST 560 /* 制御およびステータス・レジスタ */
247#define IC_ADR 561 /* アドレス・レジスタ */
248#define IC_DAT 562 /* データ・ポート・レジスタ */
249
250/* データ・キャッシュ関連 */
251#define DC_CST 568 /* 制御およびステータス・レジスタ */
252#define DC_ADR 569 /* アドレス・レジスタ */
253#define DC_DAT 570 /* データ・ポート・レジスタ */
254
255/*
256 * 9. メモリ管理ユニットMMU関連の定義
257 */
258/* 制御レジスタ */
259#define MI_CTR 784 /* IMMU 制御レジスタ */
260#define MD_CTR 792 /* DMMU 制御レジスタ */
261
262/* TLBソース・レジスタ */
263#define MI_EPN 787 /* IMMU 実効ページ番号レジスタ */
264#define MD_EPN 795 /* DMMU 実効ページ番号レジスタ */
265#define MI_TWC 789 /* IMMU テーブルウォーク制御レジスタ */
266#define MD_TWC 797 /* DMMU テーブルウォーク制御レジスタ */
267#define MI_RPN 790 /* IMMU 実(物理)ページ番号ポート */
268#define MD_RPN 798 /* DMMU 実(物理)ページ番号ポート */
269
270/* テーブルウォーク・ベース・レジスタ */
271#define M_TWD 796 /* MMU テーブルウォーク・ベース・レジスタ */
272
273/* 保護レジスタ */
274#define M_CASID 793 /* MMU カレント・アドレス空間ID レジスタ */
275#define MI_AP 786 /* IMMU アクセス保護レジスタ */
276#define MD_AP 794 /* DMMU アクセス保護レジスタ */
277
278/* スクラッチ・レジスタ */
279#define M_TB 799 /* MMU テーブルウォーク・スペシャル・レジスタ */
280
281/* デバッグ・レジスタ */
282#define MI_CAM 816 /* IMMU CAM エントリ・リード・レジスタ */
283#define MI_RAM0 817 /* IMMU RAM エントリ・リード・レジスタ 0 */
284#define MI_RAM1 818 /* IMMU RAM エントリ・リード・レジスタ 1 */
285#define MD_CAM 824 /* DMMU CAM エントリ・リード・レジスタ */
286#define MD_RAM0 825 /* DMMU RAM エントリ・リード・レジスタ 0 */
287#define MD_RAM1 826 /* DMMU RAM エントリ・リード・レジスタ 1 */
288
289/*
290 * 11. システムインターフェースユニットSIU関連の定義
291 */
292
293
294/*
295 * 内
296部メモリマップレジスタ
297 *   内
298部レジスタ群のå…
299ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹
300 *   
301 *    リセット直後は0x0000,0000番地を指しているがSDRAMと
302 *    ぶつかるので、別のアドレスに変える必
303要がある
304 */
305#define IMMR 638 /* レジスタ番号 */
306#define IMMR_UPPER_2BYTE 0xff00 /* 上位16ビット */
307#define IMMR_BASE (IMMR_UPPER_2BYTE << 16) /* ベースアドレス */
308
309#define TADR_SIU_SIUMCR 0x0 /* SIUモジュールコンフィギュレーション */
310 /* レジスタSIUMCR */
311
312/*
313 * 11.5 SIU割込みコントローラ関連の定義
314 */
315#define TADR_SIU_SIPEND 0x10 /* SIU割込み保留レジスタSIPEND */
316#define TADR_SIU_SIMASK 0x14 /* SIU割込みマスクレジスタSIMASK */
317
318 /* 上位2バイトのみ使用する */
319#define SIMASK (VH *)(IMMR_BASE + TADR_SIU_SIMASK)
320#define SIMASK_IRM0 BIT0_16 /* IRQ0 */
321#define SIMASK_LVM0 BIT1_16 /* 内
322部レベル0 */
323#define SIMASK_IRM1 BIT2_16 /* IRQ1 */
324#define SIMASK_LVM1 BIT3_16 /* 内
325部レベル1 */
326#define SIMASK_IRM2 BIT4_16 /* IRQ2 */
327#define SIMASK_LVM2 BIT5_16 /* 内
328部レベル2 */
329#define SIMASK_IRM3 BIT6_16 /* IRQ3 */
330#define SIMASK_LVM3 BIT7_16 /* 内
331部レベル3 */
332#define SIMASK_IRM4 BIT8_16 /* IRQ4 */
333#define SIMASK_LVM4 BIT9_16 /* 内
334部レベル4 */
335#define SIMASK_IRM5 BIT10_16 /* IRQ5 */
336#define SIMASK_LVM5 BIT11_16 /* 内
337部レベル5 */
338#define SIMASK_IRM6 BIT12_16 /* IRQ6 */
339#define SIMASK_LVM6 BIT13_16 /* 内
340部レベル6 */
341#define SIMASK_IRM7 BIT14_16 /* IRQ7 */
342#define SIMASK_LVM7 BIT15_16 /* 内
343部レベル7 */
344
345#define TADR_SIU_SIEL 0x18 /* SIU割込みエッジ/レベルレジスタSIEL */
346#define TADR_SIU_SIVEC 0x1c /* SIU割込みベクタレジスタSIVEC */
347#define TADR_SIU_TESR 0x20 /* 転送エラーステータスレジスタTESR */
348#define TADR_SIU_SDCR 0x30 /* SDMAコンフィギュレーションレジスタSDCR */
349
350/*
351 * 11.7 ソフトウェア・ウォッチドックタイマ関連の定義
352 */
353#define TADR_SIU_SYPCR 0x4 /* システム保護コントロールレジスタSYPCR */
354#define SYPCR_SWE BIT29_32 /* イネーブル */
355#define SYPCR_SWRI BIT30_32 /* リセット/割込み選択 */
356#define TADR_SIU_SWSR 0xe /* ソフトウェアサービスレジスタSWSR */
357#define SWSR_CLEAR1 0x556c /* クリア時に書き込む定数1 */
358#define SWSR_CLEAR2 0xaa39 /* クリア時に書き込む定数2 */
359
360/*
361 * 12 リセット関連の定義
362 */
363#define TADR_SIU_RSR 0x288 /* リセット・ステータス・レジスタRSR */
364#define TADR_SIU_RSRK 0x388 /* リセット・ステータス・レジスタ・キー */
365#define RSR_EHRS BIT0_32 /* 外部ハード・リセット・ステータス */
366#define RSR_ESRS BIT1_32 /* 外部ソフト・リセット・ステータス */
367#define RSR_LLRS BIT2_32 /* ロック解除リセット・ステータス */
368#define RSR_SWRS BIT3_32 /* ソフトウェア・ウォッチドック・リセット */
369#define RSR_CSRS BIT4_32 /* チェック・ストップ・リセット・ステータス */
370 /* デバッグ・ポート・ハード・リセット・ステータス */
371#define RSR_DBHRS BIT5_32
372 /* デバッグ・ポート・ソフト・リセット・ステータス */
373#define RSR_DBSRS BIT6_32
374#define RSR_JTRS BIT4_32 /* JTAGリセット・ステータス */
375
376
377/*
378 * 通信プロセッサモジュールCPM関連
379 */
380
381/*
382 * 35. CPM割込みコントローラ関連の定義
383 */
384#define TADR_CPM_CIVR 0x930 /* CPM割込みベクタレジスタCIVR */
385#define TADR_CPM_CICR 0x940 /* CPM割込みコンフィギュレーション */
386 /* レジスタCICR */
387#define TADR_CPM_CIPR 0x944 /* CPM割込み保留レジスタCIPR */
388#define TADR_CPM_CIMR 0x948 /* CPM割込みマスクレジスタCIMR */
389#define TADR_CPM_CISR 0x94c /* CPM割込みインサービスレジスタCISR */
390
391/* CPM割込みコンフィギュレーション レジスタCICR */
392#define CICR (VW *)(IMMR_BASE + TADR_CPM_CICR)
393#define CICR_IEN BIT24_32
394
395/* CPM割込みマスクレジスタCIMR */
396#define CIMR (VW *)(IMMR_BASE + TADR_CPM_CIMR)
397#define CIMR_PC15 BIT0_32
398#define CIMR_SCC1 BIT1_32
399#define CIMR_SCC2 BIT2_32
400#define CIMR_SCC3 BIT3_32
401#define CIMR_SCC4 BIT4_32
402#define CIMR_PC14 BIT5_32
403#define CIMR_TIMER1 BIT6_32
404#define CIMR_PC13 BIT7_32
405#define CIMR_PC12 BIT8_32
406#define CIMR_SDMA BIT9_32
407#define CIMR_IDMA1 BIT10_32
408#define CIMR_IDMA2 BIT11_32
409#define CIMR_TIMER2 BIT13_32
410#define CIMR_RTT BIT14_32
411#define CIMR_I2C BIT15_32
412#define CIMR_PC11 BIT16_32
413#define CIMR_PC10 BIT17_32
414#define CIMR_TIMER3 BIT19_32
415#define CIMR_PC9 BIT20_32
416#define CIMR_PC8 BIT21_32
417#define CIMR_PC7 BIT22_32
418#define CIMR_TIMER4 BIT24_32
419#define CIMR_PC6 BIT25_32
420#define CIMR_SPI BIT26_32
421#define CIMR_SMC1 BIT27_32
422#define CIMR_SMC2 BIT28_32
423#define CIMR_PC5 BIT29_32
424#define CIMR_PC4 BIT30_32
425
426/* CPM割込みインサービスレジスタCISR */
427#define CISR (VW *)(IMMR_BASE + TADR_CPM_CISR)
428#define CISR_BIT(device) _CISR_BIT(device)
429#define _CISR_BIT(device) CIMR_##device
430
431/*
432 * CPM割込み制御ビットの定義
433 */
434 /* CPM割込みベクタレジスタCIVRレジスタのIACKビット */
435#define TA_CPM_CIVR_IACK 0x1
436
437
438/*
439 * 15. クロック選択と電力制御関連のレジスタ定義
440 */
441
442/* システムクロックおよびリセット制御レジスタ */
443#define TADR_SCCR 0x280
444#define SCCR (VW *)(IMMR_BASE + TADR_SCCR)
445#define TADR_SCCRK 0x380 /* キーレジスタ */
446#define SCCRK (VW *)(IMMR_BASE + TADR_SCCRK)
447
448#define SCCR_RTDIV BIT7_32 /* リアルタイムクロック分周 */
449 /* 0:4で分周、1:512で分周 */
450#define SCCR_RTSEL BIT8_32 /* リアルタイムクロック選択 */
451 /* 0:OSCM(水晶オシレータ)、1:EXTCLK */
452#define SCCR_CRQEN BIT9_32 /* CPM要求イネーブル */
453#define SCCR_PRQEN BIT10_32 /* パワーマネジメント要求イネーブル */
454#define SCCR_EBDF (BIT13_32 | BIT14_32) /* 外部バス分周係数 */
455#define SCCR_DFBRG (BIT19_32 | BIT20_32) /* BRGCLKの分周係数 */
456
457/* SPLL 、低電力、およびリセット制御レジスタ */
458#define TADR_PLPRCRK 0x384 /* レジスタ・キー */
459#define TADR_PLPRCR 0x284
460#define PLPRCR_TIMIST BIT19_32 /* タイマ割込みステータス */
461#define PLPRCR_CSRC BIT21_32 /* クロックソース */
462 /* 低電力モード */
463#define PLPRCR_LPM (BIT22_32 | BIT23_32)
464#define PLPRCR_LPM10 BIT22_32
465
466
467/*
468 * 16. メモリコントローラのレジスタ定義
469 */
470
471/* ベースレジスタBRx */
472#define TADR_BR0 0x100
473#define TADR_BR1 0x108
474#define TADR_BR2 0x110
475#define TADR_BR3 0x118
476#define TADR_BR4 0x120
477#define TADR_BR5 0x128
478#define TADR_BR6 0x130
479#define TADR_BR7 0x138
480
481/* オプションレジスタORx */
482#define TADR_OR0 0x104
483#define TADR_OR1 0x10c
484#define TADR_OR2 0x114
485#define TADR_OR3 0x11c
486#define TADR_OR4 0x124
487#define TADR_OR5 0x12c
488#define TADR_OR6 0x134
489#define TADR_OR7 0x13c
490
491#define TADR_MAMR 0x170 /* マシンAモード・レジスタ */
492#define TADR_MBMR 0x174 /* マシンBモード・レジスタ */
493#define TADR_MSTAT 0x178 /* メモリステータス・レジスタMSTAT */
494
495#define TADR_MCR 0x168 /* メモリ・コマンド・レジスタMCR */
496#define TADR_MDR 0x17c /* メモリ・データ・レジスタMDR */
497#define TADR_MAR 0x164 /* メモリ・アドレス・レジスタMAR */
498#define TADR_MPTPR 0x17a /* メモリ周期タイマ・プリスケーラ */
499 /*           レジスタMPTPR */
500
501/*
502 * 19. 通信プロセッサCP関連のレジスタ定義
503 */
504
505/* CPコマンドレジスタ */
506#define CPCR (VH *)(IMMR_BASE + 0x9c0)
507#define CPCR_RST BIT0_16 /* リセット・フラグ */
508#define CPCR_FLG BIT15_16 /* コマンド・セマフォ・フラグ */
509#define CPCR_CH_NUM_SMC1 0x9 /* SMC1のチャネル番号 */
510
511/* CPコマンドのオペコード */
512#define CPCR_INIT_RX_TX_PARAMETERS 0x0
513#define CPCR_STOP_TX 0x4
514#define CPCR_RESTART_TX 0x6
515
516
517
518/* デュアル・ポートRAMのå…
519ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹ */
520#define DUAL_PORT_RAM (IMMR_BASE + 0x2000)
521
522
523/*
524 * 20. SDMAおよびIDMAエミュレーション
525 *     SDMA:シリアルDMA
526 *     IDMA:仮想SDMA
527 */
528
529/* SDMAコンフィギュレーション・レジスタ */
530#define SDCR (VW *)(IMMR_BASE + 0x30)
531 /* RISCコントローラ(CP)の調停ID */
532 /* SDMA のU バス調停優å…
533ˆåº¦5:通常処理 */
534#define SDCR_RAID_RB5 0x1
535
536/*
537 * 21. シリアルインターフェースSI関連のレジスタ定義
538 */
539
540/* SIモード・レジスタ */
541#define SIMODE (VW *)(IMMR_BASE + 0xae0)
542#define SIMODE_SMC1 BIT16_32 /* SMC1の接続 */
543 /*  0:NMSIモード */
544 /*  1:多重処理モード */
545
546 /* SMC1クロックソース */
547#define SIMODE_SMC1CS (BIT17_32 | BIT18_32 | BIT19_32)
548
549/* ボーレート・ジェネレータ・コンフィギュレーション・レジスタ */
550#define BRGC1 (VW *)(IMMR_BASE + 0x9f0)
551#define BRGC1_RST BIT14_32 /* BRGリセット */
552#define BRGC1_EN BIT15_32 /* BRGカウントイネーブル */
553#define BRGC1_EXTC (BIT16_32 | BIT17_32) /* 外部クロックソース */
554#define BRGC1_ATB BIT18_32 /* オートボー */
555#define BRGC1_CD 0x1ffe /* クロック・デバイダ */
556#define BRGC1_DIV16 BIT31_32 /* 16分周 */
557
558
559/*
560 * 34. パラレルI/O関連のレジスタ定義
561 */
562
563/* ポートBピン・アサイン・レジスタ */
564#define TADR_PBPAR 0xabc
565#define PBPAR (VW *)(IMMR_BASE + TADR_PBPAR)
566#define PBPAR_DD24 BIT24_32 /* PB24ピン:専用ペリフェラル機能 */
567#define PBPAR_DD25 BIT25_32 /* PB25ピン:専用ペリフェラル機能 */
568#define PBPAR_DD27 BIT27_32 /* PB27ピン:専用ペリフェラル機能 */
569
570/* ポートBデータ・ディレクション・レジスタ */
571#define TADR_PBDIR 0xab8
572#define PBDIR (VW *)(IMMR_BASE + TADR_PBDIR)
573#define PBDIR_DR24 BIT24_32 /* PB24ピン:ペリフェラル機能1 */
574#define PBDIR_DR25 BIT25_32 /* PB25ピン:ペリフェラル機能1 */
575#define PBDIR_DR27 BIT27_32 /* PB25ピン:ペリフェラル機能1 */
576
577/* ポートBオープン・ドレイン・レジスタ */
578#define TADR_PBODR 0xac0
579#define PBODR (VW *)(IMMR_BASE + TADR_PBODR)
580#define PBODR_OD24 BIT24_32 /* PB24ピン:オープン・ドレイン・ドライブ */
581#define PBODR_OD25 BIT25_32 /* PB25ピン:オープン・ドレイン・ドライブ */
582#define PBODR_OD27 BIT27_32 /* PB25ピン:オープン・ドレイン・ドライブ */
583
584/* ポートBデータレジスタ */
585#define TADR_PBDAT 0xac4
586#define PBDAT_D27 BIT27_32
587
588
589/* アンロックの際にキーレジスタに書き込む定数 */
590#define UNLOCK_KEY 0x55ccaa33
591
592/*
593 * 内
594部レジスタ保護のロックとアンロック
595 *
596 *  シリアルドライバとタイマドライバの両方で用いるため、
597 *  このファイルにå…
598¥ã‚Œã¦ã„ã‚‹
599 */
600
601/* SCCRロック */
602 /* 値はUNLOCK_KEY以外であれば良い */
603#define lock_sccr() mpc860_wrw_mem(SCCRK, 0)
604
605/* SCCRアンロック */
606#define unlock_sccr() mpc860_wrw_mem(SCCRK, UNLOCK_KEY)
607
608
609#endif /* _MPC860_H_ */
610/* end of file */
Note: See TracBrowser for help on using the repository browser.