source: anotherchoice/tags/jsp-1.4.4-full-UTF8/config/sh2/apsh2a1a/sys_config.c@ 26

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

initial

File size: 6.5 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 * Copyright (C) 2002-2004 by Hokkaido Industrial Research Institute, JAPAN
11 * Copyright (C) 2010 by Cronus Computer Works, JAPAN
12 *
13 * 上記著作権者
14は,以下の (1)〜(4) の条件か,Free Software Foundation
15 * によってå…
16¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
17 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
18 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
19å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
20 * 利用と呼ぶ)することを無償で許諾する.
21 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
22 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
23 * スコード中に含まれていること.
24 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
25 * 用できる形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
27å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
28 * 者
29マニュアルなど)に,上記の著作権表示,この利用条件および下記
30 * の無保証規定を掲載すること.
31 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
32 * 用できない形で再é…
33å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
34 * と.
35 * (a) 再é…
36å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
37マニュアルなど)に,上記の著
38 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
39 * (b) 再é…
40å¸ƒã®å½¢æ…
41‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
42 * 報告すること.
43 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
44 * 害からも,上記著作権者
45およびTOPPERSプロジェクトをå…
46è²¬ã™ã‚‹ã“と.
47 *
48 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
49お
50 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
51 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
52 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
53 *
54 * @(#) $Id
55 */
56
57#include "jsp_kernel.h"
58#include <sil.h>
59#include <s_services.h>
60#include "sh726xscif.h"
61
62/*
63 * ターゲットシステム依存の初期化
64 */
65/*
66 * シリアルI/Oポートの初期化 banner出力のためカーネルの初期化と無関係に行う
67 */
68void
69sys_initialize ()
70{
71 SIOPCB *siopcb;
72
73 /* 使用する周辺機器はここで有効にしておく。 */
74 /* SCIFデータå…
75¥å‡ºåŠ›ãƒãƒ¼ãƒˆã®è¨­å®š */
76
77#ifndef GDB_STUB
78
79 /* SCIF3 */
80 sil_wrb_mem (STBCR4, (VB) ((VB) sil_reb_mem (STBCR4) & ~0x10));
81 sil_wrh_mem (PECRL4, sil_reh_mem (PECRL4) | (0x0030 | 0x0003));
82
83#else /* GDB_STUB */
84
85 /* SCIF3 */
86 sil_wrb_mem (STBCR4, (VB) ((VB) sil_reb_mem (STBCR4) & ~0x10));
87 sil_wrh_mem (PECRL4, sil_reh_mem (PECRL4) | (0x0003 | 0x0030));
88
89#endif /* GDB_STUB */
90
91 /* CMT0 */
92 sil_wrb_mem (STBCR4, (VB) ((VB) sil_reb_mem (STBCR4) & ~0x04));
93 /*
94 * デバイス依存のオープン処理.
95 */
96 /*バナー出力するため */
97 sh2scif_initialize();
98 siopcb = sh2scif_opn_por (LOGTASK_PORTID, 0);
99}
100
101/*
102 * ターゲットシステムの終了
103 */
104void
105sys_exit ()
106{
107 sh2_exit ();
108}
109
110/*
111 * ターゲットシステムの文字出力
112 */
113void
114sys_putc (char c)
115{
116 if (c == '\n') {
117 sh2_putc (LOGTASK_PORTID, '\r');
118 }
119 sh2_putc (LOGTASK_PORTID, c);
120}
121
122/* ハードウェアの設定 */
123/* ここではバスの設定のみ行う。周辺機器の設定はsys_initializeで行う。 */
124#ifndef GDB_STUB
125void
126hardware_init_hook (void)
127{
128 /* クロック発振器の初期化 */
129 sil_wrh_mem (FRQCR, 0x0104); /* クロック設定 Iφ=200MHz, Bφ=66.666MHz, Pφ=33.333MHz */
130
131 /* バスコントローラの設定 */
132 sil_wrw_mem (CMNCR, 0x00001010);
133 sil_wrw_mem (CS0BCR, 0x24920400);
134 sil_wrw_mem (CS0WCR, 0x00001382);
135 sil_wrw_mem (CS3BCR, 0x24924600);
136 sil_wrw_mem (CS3WCR, 0x00004912);
137 sil_wrw_mem (SDCR, 0x00000909);
138 sil_wrw_mem (RTCSR, 0xa55a0010);
139 sil_wrw_mem (RTCOR, 0xa55a0040);
140
141 /* I/Oポートの設定 */
142 sil_wrh_mem (PBIORL, 0x0c00); /* PC11,PC10 出力方向 (LED接続ポート) */
143 sil_wrh_mem (PBCRL4, 0x5a00);
144 sil_wrh_mem (PBCRL3, 0x0000); /* PC11,PC10モード ポート選択 (LED接続ポート) */
145 sil_wrh_mem (PBCRL2, 0x0000);
146 sil_wrh_mem (PBCRL1, 0x0000);
147 sil_wrh_mem (PCIORL, 0x0000);
148 sil_wrh_mem (PCCRL4, 0x0011);
149 sil_wrh_mem (PCCRL3, 0x1111);
150 sil_wrh_mem (PCCRL2, 0x1111);
151 sil_wrh_mem (PCCRL1, 0x1111);
152 sil_wrh_mem (PDIORL, 0x0000);
153 sil_wrh_mem (PDCRL4, 0x1111);
154 sil_wrh_mem (PDCRL3, 0x1111);
155 sil_wrh_mem (PDCRL2, 0x1111);
156 sil_wrh_mem (PDCRL1, 0x1111);
157 sil_wrh_mem (PEIORL, 0x0000);
158 sil_wrh_mem (PECRL4, 0x0000);
159 sil_wrh_mem (PECRL3, 0x1010);
160 sil_wrh_mem (PECRL2, 0x1111);
161 sil_wrh_mem (PECRL1, 0x1111);
162 sil_wrh_mem (PFIORH, 0x7fff);
163 sil_wrh_mem (PFIORL, 0xffff);
164 sil_wrh_mem (PFCRH4, 0x0000);
165 sil_wrh_mem (PFCRH3, 0x0000);
166 sil_wrh_mem (PFCRH2, 0x0000);
167 sil_wrh_mem (PFCRH1, 0x0000);
168 sil_wrh_mem (PFCRL4, 0x0000);
169 sil_wrh_mem (PFCRL3, 0x0000);
170 sil_wrh_mem (PFCRL2, 0x0000);
171 sil_wrh_mem (PFCRL1, 0x0000);
172
173 /* CMT へクロック供給 */
174 sil_wrb_mem (STBCR4, (VB) ((VB) sil_reb_mem (STBCR4) & ~0x04));
175
176 /* 100usec 待
177ち */
178 sil_wrh_mem (CMSTR, 0x0000); /* STR0=0 カウンタ0 停止 */
179 sil_wrh_mem (CMCSR_0, 0x0000); /* CKS=00 クロック選択 PΦ/8 */
180 sil_wrh_mem (CMCNT_0, 0); /* カウンタ0 クリア,↓コンスタント値設定 */
181 sil_wrh_mem (CMCOR_0, ((((PCLOCK / 8)/1000000) * 100) - 1));
182 sil_wrh_mem (CMSTR, 0x0001); /* STR0=1 カウンタ0 開始 */
183 while ((sil_reh_mem (CMCSR_0) & 0x0080) == 0);
184 /* CMF==1 になるまで待
185つ */
186
187 sil_wrh_mem (SDRAM_MODE, 0x000); /* SDRAMモードレジスタを設定 */
188
189 /* キャッシュの設定 */
190 sil_wrw_mem (CCR1, 0x00000808); /* キャッシュをフラッシュ */
191 sil_wrw_mem (CCR1, CCR_MODE); /* キャッシュモードを設定 */
192}
193#else /* GDB_STUB */
194void
195hardware_init_hook (void)
196{
197}
198#endif /* GDB_STUB */
Note: See TracBrowser for help on using the repository browser.