source: asp3_wo_tecs/trunk/arch/arm_gcc/common/pl310.h@ 306

Last change on this file since 306 was 306, checked in by ertl-honda, 7 years ago

3.1.0を反映

File size: 6.0 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2013-2016 by Embedded and Real-Time Systems Laboratory
6 * Graduate School of Information Science, Nagoya Univ., JAPAN
7 *
8 * 上記著作権者
9は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
11 * 変・再é…
12å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15 * スコード中に含まれていること.
16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
17 * 用できる形で再é…
18å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
19å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
20 * 者
21マニュアルなど)に,上記の著作権表示,この利用条件および下記
22 * の無保証規定を掲載すること.
23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24 * 用できない形で再é…
25å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
26 * と.
27 * (a) 再é…
28å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
29マニュアルなど)に,上記の著
30 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
31 * (b) 再é…
32å¸ƒã®å½¢æ…
33‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
34 * 報告すること.
35 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
36 * 害からも,上記著作権者
37およびTOPPERSプロジェクトをå…
38è²¬ã™ã‚‹ã“と.
39 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
40 * 由に基づく請求からも,上記著作権者
41およびTOPPERSプロジェクトを
42 * å…
43è²¬ã™ã‚‹ã“と.
44 *
45 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
46お
47 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
48 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
49 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
50 * の責任を負わない.
51 *
52 * $Id$
53 */
54
55/*
56 * L2キャッシュコントローラ(PL310)に関する定義
57 */
58
59#ifndef TOPPERS_PL310_H
60#define TOPPERS_PL310_H
61
62/*
63 * 型キャストを行うマクロの定義
64 */
65#ifndef CAST
66#define CAST(type, val) ((type)(val))
67#endif /* CAST */
68
69/*
70 * PL310のレジスタの番地の定義
71 */
72#define PL310_CACHE_ID CAST(uint32_t *, PL310_BASE + 0x000)
73#define PL310_CACHE_TYPE CAST(uint32_t *, PL310_BASE + 0x004)
74#define PL310_CTRL CAST(uint32_t *, PL310_BASE + 0x100)
75#define PL310_AUX_CTRL CAST(uint32_t *, PL310_BASE + 0x104)
76#define PL310_TAG_RAM_CTRL CAST(uint32_t *, PL310_BASE + 0x108)
77#define PL310_DATA_RAM_CTRL CAST(uint32_t *, PL310_BASE + 0x10c)
78#define PL310_EVENT_CNT_CTRL CAST(uint32_t *, PL310_BASE + 0x200)
79#define PL310_EVENT_CNT1_CFG CAST(uint32_t *, PL310_BASE + 0x204)
80#define PL310_EVENT_CNT0_CFG CAST(uint32_t *, PL310_BASE + 0x208)
81#define PL310_EVENT_CNT1 CAST(uint32_t *, PL310_BASE + 0x20c)
82#define PL310_EVENT_CNT0 CAST(uint32_t *, PL310_BASE + 0x210)
83#define PL310_INT_MASK CAST(uint32_t *, PL310_BASE + 0x214)
84#define PL310_INT_MASK_STAT CAST(uint32_t *, PL310_BASE + 0x218)
85#define PL310_INT_RAW_STAT CAST(uint32_t *, PL310_BASE + 0x21c)
86#define PL310_INT_CLEAR CAST(uint32_t *, PL310_BASE + 0x220)
87#define PL310_CACHE_SYNC CAST(uint32_t *, PL310_BASE + 0x730)
88#define PL310_INV_PA CAST(uint32_t *, PL310_BASE + 0x770)
89#define PL310_INV_WAY CAST(uint32_t *, PL310_BASE + 0x77c)
90#define PL310_CLEAN_PA CAST(uint32_t *, PL310_BASE + 0x7b0)
91#define PL310_CLEAN_IDX CAST(uint32_t *, PL310_BASE + 0x7b8)
92#define PL310_CLEAN_WAY CAST(uint32_t *, PL310_BASE + 0x7bc)
93#define PL310_CLEAN_INV_PA CAST(uint32_t *, PL310_BASE + 0x7f0)
94#define PL310_CLEAN_INV_IDX CAST(uint32_t *, PL310_BASE + 0x7f8)
95#define PL310_CLEAN_INV_WAY CAST(uint32_t *, PL310_BASE + 0x7Fc)
96#define PL310_D_LOCKDOWN0 CAST(uint32_t *, PL310_BASE + 0x900)
97#define PL310_I_LOCKDOWN0 CAST(uint32_t *, PL310_BASE + 0x904)
98#define PL310_DEBUG_CTRL CAST(uint32_t *, PL310_BASE + 0xf40)
99#define PL310_PREFETCH_CTRL CAST(uint32_t *, PL310_BASE + 0xf60)
100#define PL310_POWER_CTRL CAST(uint32_t *, PL310_BASE + 0xf80)
101
102/*
103 * キャッシュ補助制御レジスタ(PL310_AUX_CTRL)の設定値
104 */
105#define PL310_AUX_CTRL_ASSOCIATIVITY 0x00010000
106#define PL310_AUX_CTRL_WAY_SIZE_SHIFT 17
107#define PL310_AUX_CTRL_WAY_SIZE_MASK 0x000e0000
108#define PL310_AUX_CTRL_IGNORE_SHARE 0x00400000
109#define PL310_AUX_CTRL_NS_LOCKDOWN 0x04000000
110#define PL310_AUX_CTRL_NS_INT_CTRL 0x08000000
111#define PL310_AUX_CTRL_DATA_PREFETCH 0x10000000
112#define PL310_AUX_CTRL_INST_PREFETCH 0x20000000
113#define PL310_AUX_CTRL_EARLY_BRESP 0x40000000
114
115/*
116 * プリフェッチ制御レジスタ(PL310_PREFETCH_CTRL)の設定値
117 */
118#define PL310_PREFETCH_CTRL_INCR_DLINEFILL 0x00800000
119#define PL310_PREFETCH_CTRL_DATA_PREFETCH 0x10000000
120#define PL310_PREFETCH_CTRL_INST_PREFETCH 0x20000000
121#define PL310_PREFETCH_CTRL_DLINEFILL 0x40000000
122
123#ifndef TOPPERS_MACRO_ONLY
124
125/*
126 * L2キャッシュの初期化とイネーブル
127 */
128extern void pl310_initialize(uint32_t aux_val, uint32_t aux_mask);
129
130/*
131 * L2キャッシュのディスエーブル
132 */
133extern void pl310_disable(void);
134
135/*
136 * L2キャッシュå…
137¨ä½“の無効化(書き戻さない)
138 */
139extern void pl310_invalidate_all(void);
140
141/*
142 * L2キャッシュå…
143¨ä½“のクリーンと無効化
144 */
145extern void pl310_clean_and_invalidate_all(void);
146
147#endif /* TOPPERS_MACRO_ONLY */
148#endif /* TOPPERS_PL310_H */
Note: See TracBrowser for help on using the repository browser.