source: atk2-sc3_fl850f1l/arch/v850_gcc/rh850_f1h.h@ 117

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

ATK2-SC3 1.3.2 FL850F1L(RH850F1L)依存部(GCC/GHS/CCRH)を追加

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