source: atk2-sc3-1.4.0-ntisr/arch/v850_gcc/rh850_f1h.h@ 172

Last change on this file since 172 was 172, checked in by ertl-ishikawa, 8 years ago

ATK2-SC3 1.4.0 RH850依存部 非信頼C2ISR対応を追加

  • Property svn:executable set to *
File size: 12.1 KB
Line 
1/*
2 * TOPPERS ATK2
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 * Automotive Kernel Version 2
5 *
6 * Copyright (C) 2012-2014 by Center for Embedded Computing Systems
7 * Graduate School of Information Science, Nagoya Univ., JAPAN
8 *
9 * 上記著作権者
10は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
12 * 変・再é…
13å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
16 * スコード中に含まれていること.
17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
18 * 用できる形で再é…
19å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
20å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
21 * 者
22マニュアルなど)に,上記の著作権表示,この利用条件および下記
23 * の無保証規定を掲載すること.
24 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
25 * 用できない形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
27 * と.
28 * (a) 再é…
29å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
30マニュアルなど)に,上記の著
31 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
32 * (b) 再é…
33å¸ƒã®å½¢æ…
34‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
35 * 報告すること.
36 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
37 * 害からも,上記著作権者
38およびTOPPERSプロジェクトをå…
39è²¬ã™ã‚‹ã“と.
40 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
41 * 由に基づく請求からも,上記著作権者
42およびTOPPERSプロジェクトを
43 * å…
44è²¬ã™ã‚‹ã“と.
45 *
46 * 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
47 * 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
48 * はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
49 * 用する者
50に対して,AUTOSARパートナーになることを求めている.
51 *
52 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
53お
54 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
55 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
56 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
57 * の責任を負わない.
58 *
59 * $Id: rh850_f1h.h 187 2015-06-25 03:39:04Z t_ishikawa $
60 */
61
62/*
63 * RH850/F1Lのハードウェア資源の定義
64 */
65
66#ifndef TOPPERS_RH850_F1H_H
67#define TOPPERS_RH850_F1H_H
68
69#define _RH850G3M_
70
71/*
72 * 保護コマンドレジスタ
73 */
74#define PROTCMD0 0xFFF80000
75#define PROTCMD1 0xFFF88000
76#define CLMA0PCMD 0xFFF8C010
77#define CLMA1PCMD 0xFFF8D010
78#define CLMA2PCMD 0xFFF8E010
79#define PROTCMDCLMA 0xFFF8C200
80#define JPPCMD0 0xFFC204C0
81#define PPCMD0 0xFFC14C00
82#define PPCMD1 0xFFC14C04
83#define PPCMD2 0xFFC14C08
84#define PPCMD3 0xFFC14C0C
85#define PPCMD8 0xFFC14C20
86#define PPCMD9 0xFFC14C24
87#define PPCMD10 0xFFC14C28
88#define PPCMD11 0xFFC14C2C
89#define PPCMD12 0xFFC14C30
90#define PPCMD13 0xFFC14C34
91#define PPCMD18 0xFFC14C48
92#define PPCMD19 0xFFC14C4C
93#define PPCMD20 0xFFC14C50
94#define PPCMD21 0xFFC14C54
95#define PPCMD22 0xFFC14C58
96#define PROTCMDCVM 0xFFF83200
97#define FLMDPCMD 0xFFA00004
98
99/*
100 * 保護ステータスレジスタ
101 */
102#define PROTS0 0xFFF80004
103#define PROTS1 0xFFF88004
104#define CLMA0PS 0xFFF8C014
105#define CLMA1PS 0xFFF8D014
106#define CLMA2PS 0xFFF8E014
107#define PROTSCLMA 0xFFF8C204
108#define JPPROTS0 0xFFC204B0
109#define PPROTS0 0xFFC14B00
110#define PPROTS1 0xFFC14B04
111#define PPROTS2 0xFFC14B08
112#define PPROTS3 0xFFC14B0C
113#define PPROTS8 0xFFC14B20
114#define PPROTS9 0xFFC14B24
115#define PPROTS10 0xFFC14B28
116#define PPROTS11 0xFFC14B2C
117#define PPROTS12 0xFFC14B30
118#define PPROTS13 0xFFC14B34
119#define PPROTS18 0xFFC14B48
120#define PPROTS19 0xFFC14B4C
121#define PPROTS20 0xFFC14B50
122#define PPROTS21 0xFFC14B54
123#define PPROTS22 0xFFC14B58
124#define PROTSCVM 0xFFF83204
125#define FLMDPS 0xFFA00008
126
127/*
128 * 保護コマンドレジスタの番号
129 */
130#define PNO_CtrlProt0 0
131#define PNO_CtrlProt1 1
132#define PNO_ClkMonitorCtrlProt0 2
133#define PNO_ClkMonitorCtrlProt1 3
134#define PNO_ClkMonitorCtrlProt2 4
135#define PNO_ClkMonitorTestProt 5
136#define PNO_PortProt0 6
137#define PNO_PortProt0_0 7
138#define PNO_PortProt0_1 8
139#define PNO_PortProt0_2 9
140#define PNO_PortProt0_3 10
141#define PNO_PortProt0_8 11
142#define PNO_PortProt1_9 12
143#define PNO_PortProt1_10 13
144#define PNO_PortProt1_11 14
145#define PNO_PortProt1_12 15
146#define PNO_PortProt1_13 16
147#define PNO_PortProt1_18 17
148#define PNO_PortProt1_19 18
149#define PNO_PortProt1_20 19
150#define PNO_PortProt1_21 20
151#define PNO_PortProt1_22 21
152#define PNO_CoreVMonitorProt 22
153#define PNO_SelfProgProt 23
154
155/*
156 * PORTレジスタ
157 */
158#define PORT_BASE UINT_C(0xffc10000)
159
160/* 端子機能設定 (USE)*/
161#define PMC(n) ((PORT_BASE) +0x0400 + (n * 0x04U)) /* ポート・モード・コントロール・レジスタ */
162#define PMCSR(n) ((PORT_BASE) +0x0900 + (n * 0x04U)) /* ポート・モード・コントロール・セット/リセット・レジスタ */
163#define PIPC(n) ((PORT_BASE) +0x4200 + (n * 0x04U)) /* ポートIP コントロール・レジスタ */
164#define PM(n) ((PORT_BASE) +0x0300 + (n * 0x04U)) /* ポート・モード・レジスタ */
165#define PMSR(n) ((PORT_BASE) +0x0800 + (n * 0x04U)) /* ポート・モード・セット/リセット・レジスタ */
166#define PIBC(n) ((PORT_BASE) +0x4000 + (n * 0x04U)) /* ポートå…
167¥åŠ›ãƒãƒƒãƒ•ã‚¡ãƒ»ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ãƒ»ãƒ¬ã‚¸ã‚¹ã‚¿ */
168#define PFC(n) ((PORT_BASE) +0x0500 + (n * 0x04U)) /* ポート機能コントロール・レジスタ */
169#define PFCE(n) ((PORT_BASE) +0x0600 + (n * 0x04U)) /* ポート機能コントロール拡張・レジスタ */
170#define PFCAE(n) ((PORT_BASE) +0x0A00 + (n * 0x04U)) /* ポート機能コントロール追加拡張・レジスタ */
171
172/* 端子データå…
173¥åŠ›ï¼å‡ºåŠ› (USE)*/
174#define PBDC(n) ((PORT_BASE) +0x4100 + (n * 0x04U)) /* ポート双方向コントロール・レジスタ */
175#define PPR(n) ((PORT_BASE) +0x0200 + (n * 0x04U)) /* ポート端子リード・レジスタ */
176#define P(n) ((PORT_BASE) +0x0000 + (n * 0x04U)) /* ポート・レジスタ */
177#define PNOT(n) ((PORT_BASE) +0x0700 + (n * 0x04U)) /* ポート・ノット・レジスタ */
178#define PSR(n) ((PORT_BASE) +0x0100 + (n * 0x04U)) /* ポート・セット/リセット・レジスタ */
179
180
181#define RLN3xBASE 0xffce2040
182
183#define RLN3xLWBR_B 0x00000001
184#define RLN3xLBRP01_H 0x00000002
185#define RLN3xLBRP0_B 0x00000002
186#define RLN3xLBRP1_B 0x00000003
187#define RLN3xLSTC_B 0x00000004
188#define RLN3xLMD_B 0x00000008
189#define RLN3xLBFC_B 0x00000009
190#define RLN3xLSC_B 0x0000000a
191#define RLN3xLWUP_B 0x0000000b
192#define RLN3xLIE_B 0x0000000c
193#define RLN3xLEDE_B 0x0000000d
194#define RLN3xLCUC_B 0x0000000e
195#define RLN3xLTRC_B 0x00000010
196#define RLN3xLMST_B 0x00000011
197#define RLN3xLST_B 0x00000012
198#define RLN3xLEST_B 0x00000013
199#define RLN3xLDFC_B 0x00000014
200#define RLN3xLIDB_B 0x00000015
201#define RLN3xLCBR_B 0x00000016
202#define RLN3xLUDB0_B 0x00000017
203#define RLN3xLDBR1_B 0x00000018
204#define RLN3xLDBR2_B 0x00000019
205#define RLN3xLDBR3_B 0x0000001a
206#define RLN3xLDBR4_B 0x0000001b
207#define RLN3xLDBR5_B 0x0000001c
208#define RLN3xLDBR6_B 0x0000001d
209#define RLN3xLDBR7_B 0x0000001e
210#define RLN3xLDBR8_B 0x0000001f
211#define RLN3xLUOER_B 0x00000020
212#define RLN3xLUOR1_B 0x00000021
213#define RLN3xLUTDR_H 0x00000024
214#define RLN3xLUTDRL_B 0x00000024
215#define RLN3xLUTDRH_B 0x00000025
216#define RLN3xLURDR_H 0x00000026
217#define RLN3xLURDRL_B 0x00000026
218#define RLN3xLURDRH_B 0x00000027
219#define RLN3xLUWTDR_H 0x00000028
220#define RLN3xLUWTDRL_B 0x00000028
221#define RLN3xLUWTDRH_B 0x00000029
222
223
224/*
225 * OSTM
226 */
227#if 0
228#define OSTM_IRQ UINT_C(147)
229
230#define OSTM0_BASE 0xFFD70000
231#define OSTM1_BASE 0xFFD70100
232#define OSTM2_BASE 0xFFD70200
233#define OSTM3_BASE 0xFFD70300
234#define OSTM4_BASE 0xFFD70400
235#define OSTM5_BASE 0xFFD71000
236#define OSTM6_BASE 0xFFD71100
237#define OSTM7_BASE 0xFFD71200
238#define OSTM8_BASE 0xFFD71300
239#define OSTM9_BASE 0xFFD71400
240
241#define OSTM_CMP_W 0x00
242#define OSTM_CNT_W 0x04
243#define OSTM_TE 0x10
244#define OSTM_TS_B 0x14
245#define OSTM_TT_B 0x18
246#define OSTM_CTL_B 0x20
247#endif
248/*
249 * PLL関連のレジスタと定義
250 */
251/* Main OSC */
252#define MOSCE 0xfff81100
253#define MOSCS 0xfff81104
254#define MOSCC 0xfff81108
255#define MOSCST 0xfff8110c
256#define MOSCSTPM 0xfff81118
257
258/* Sub OSC */
259#define SOSCE 0xfff81200
260#define SOSCS 0xfff81204
261#define SOSCST 0xfff8120C
262
263/* PLL */
264#define PLL0E 0xfff89000
265#define PLL0S 0xfff89004
266#define PLL0C 0xfff89008
267#define PLL1E 0xfff89100
268#define PLL1S 0xfff89104
269#define PLL1C 0xfff89108
270
271
272#define CKSC_CPUCLKS_CTL 0xfff8a000
273#define CKSC_CPUCLKS_ACT 0xfff8a008
274#define CKSC_CPUCLKD_CTL 0xfff8a100
275#define CKSC_CPUCLKD_ACT 0xfff8a108
276
277#define CKSC_ILINS_CTL 0xfff8a400
278#define CKSC_ILINS_ACT 0xfff8a408
279#define CKSC_ILIND_CTL 0xfff8a800
280#define CKSC_ILIND_ACT 0xfff8a808
281
282#define CKSC_ATAUJS_CTL 0xfff82100
283#define CKSC_ATAUJS_ACT 0xfff82108
284#define CKSC_ATAUJD_CTL 0xfff82200
285#define CKSC_ATAUJD_ACT 0xfff82208
286
287#define MHz(n) ((n) * 1000 * 1000)
288#define CLK_MHz(num) (num * 1000 * 1000)
289
290/* xxxS Register (USE) */
291#define CLK_S_STPACK 0x08
292#define CLK_S_CLKEN 0x04
293#define CLK_S_CLKACT 0x02
294#define CLK_S_CLKSTAB 0x01
295
296
297/* Return Parameter */
298#define UC_SUCCESS 0
299#define UC_ERROR 1
300#define UC_INVALIDPARAM 2
301#define UC_PROTREGERROR 3
302#define UC_CLKSTATUSERR 4
303#define UC_CLKNOTENABLE 5
304#define UC_CLKNOTACTIVE 6
305#define UC_CLKNOTSTAB 7
306
307/*
308 * RLIN3
309 */
310#define RLIN30_BASE 0xffce2000
311#define RLIN31_BASE 0xffce2040
312#define RLIN32_BASE 0xffce2080
313#define RLIN33_BASE 0xffce20c0
314#define RLIN34_BASE 0xffce2100
315#define RLIN35_BASE 0xffce2140
316
317/*
318 * INTC
319 */
320#define INTC1_BASE 0xFFFEEA00
321#define INTC2_BASE 0xFFFFB000
322
323#define INTC2_EIC 0x040
324#define INTC2_EIBD 0x880
325#define INTC2_INTNO_OFFSET 32
326
327/* intno は unsigned を想定 */
328#define EIC_ADDRESS(intno) (intno <= 31)? (INTC1_BASE + (intno * 2)) : (INTC2_BASE + INTC2_EIC + ((intno - INTC2_INTNO_OFFSET) * 2))
329
330#define INTC_HAS_IBD
331
332#define IBD_ADDRESS(intno) (intno <= 31)? (0xFFFEEB00 + (intno * 4)) : (0xFFFFB880 + ((intno - INTC2_INTNO_OFFSET) * 4))
333
334#define TMIN_INTNO UINT_C(0)
335#define TMAX_INTNO UINT_C(350)
336#define TNUM_INT UINT_C(351)
337
338/*
339 * INTNO
340 */
341#define RLIN30_TX_INTNO UINT_C(34)
342#define RLIN30_RX_INTNO UINT_C(35)
343#define RLIN30_ER_INTNO UINT_C(36)
344#define RLIN31_TX_INTNO UINT_C(121)
345#define RLIN31_RX_INTNO UINT_C(122)
346#define RLIN31_ER_INTNO UINT_C(123)
347#define RLIN35_TX_INTNO UINT_C(237)
348#define RLIN35_RX_INTNO UINT_C(238)
349#define RLIN35_ER_INTNO UINT_C(239)
350
351#define TAUFJ0I0_INTNO UINT_C(80)
352#define TAUFJ0I1_INTNO UINT_C(81)
353#define TAUFJ0I2_INTNO UINT_C(82)
354#define TAUFJ0I3_INTNO UINT_C(83)
355#define TAUFJ1I0_INTNO UINT_C(168)
356#define TAUFJ1I1_INTNO UINT_C(169)
357#define TAUFJ1I2_INTNO UINT_C(170)
358#define TAUFJ1I3_INTNO UINT_C(171)
359
360/*
361 * PE間割込みレジスタ
362 */
363#define IPIR_CH0 0xfffeec80
364#define IPIR_CH1 0xfffeec84
365#define IPIR_CH2 0xfffeec88
366#define IPIR_CH3 0xfffeec8c
367
368#define IPIC_ADDR(ch) (IPIR_CH0 + ch * 4)
369
370
371#ifndef TOPPERS_MACRO_ONLY
372
373extern uint32 EnableSubOSC(void);
374
375extern uint32 EnableMainOSC(uint32 clk_in);
376
377extern uint32 EnablePLL0(void);
378
379extern uint32 EnablePLL1(void);
380
381extern uint32 SetClockSelection(uint32 s_control, uint32 s_status, uint8 regno, uint16 sel,
382 uint32 d_control, uint32 d_status, uint8 divider);
383
384extern void raise_ipir(uint8 ch);
385
386#endif /* TOPPERS_MACRO_ONLY */
387
388
389#include "v850.h"
390
391#endif /* TOPPERS_RH850_F1H_H */
Note: See TracBrowser for help on using the repository browser.