source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.h@ 352

Last change on this file since 352 was 352, checked in by coas-nagasima, 6 years ago

arm向けASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
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 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
13 * スコード中に含まれていること.
14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
17 * の無保証規定を掲載すること.
18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
20 * と.
21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
22 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
24 * 報告すること.
25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
29 * 免責すること.
30 *
31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
35 * の責任を負わない.
36 *
37 * $Id$
38 */
39
40/*
41 * L2キャッシュコントローラ(PL310)に関する定義
42 */
43
44#ifndef TOPPERS_PL310_H
45#define TOPPERS_PL310_H
46
47/*
48 * 型キャストを行うマクロの定義
49 */
50#ifndef CAST
51#define CAST(type, val) ((type)(val))
52#endif /* CAST */
53
54/*
55 * PL310のレジスタの番地の定義
56 */
57#define PL310_CACHE_ID CAST(uint32_t *, PL310_BASE + 0x000)
58#define PL310_CACHE_TYPE CAST(uint32_t *, PL310_BASE + 0x004)
59#define PL310_CTRL CAST(uint32_t *, PL310_BASE + 0x100)
60#define PL310_AUX_CTRL CAST(uint32_t *, PL310_BASE + 0x104)
61#define PL310_TAG_RAM_CTRL CAST(uint32_t *, PL310_BASE + 0x108)
62#define PL310_DATA_RAM_CTRL CAST(uint32_t *, PL310_BASE + 0x10c)
63#define PL310_EVENT_CNT_CTRL CAST(uint32_t *, PL310_BASE + 0x200)
64#define PL310_EVENT_CNT1_CFG CAST(uint32_t *, PL310_BASE + 0x204)
65#define PL310_EVENT_CNT0_CFG CAST(uint32_t *, PL310_BASE + 0x208)
66#define PL310_EVENT_CNT1 CAST(uint32_t *, PL310_BASE + 0x20c)
67#define PL310_EVENT_CNT0 CAST(uint32_t *, PL310_BASE + 0x210)
68#define PL310_INT_MASK CAST(uint32_t *, PL310_BASE + 0x214)
69#define PL310_INT_MASK_STAT CAST(uint32_t *, PL310_BASE + 0x218)
70#define PL310_INT_RAW_STAT CAST(uint32_t *, PL310_BASE + 0x21c)
71#define PL310_INT_CLEAR CAST(uint32_t *, PL310_BASE + 0x220)
72#define PL310_CACHE_SYNC CAST(uint32_t *, PL310_BASE + 0x730)
73#define PL310_INV_PA CAST(uint32_t *, PL310_BASE + 0x770)
74#define PL310_INV_WAY CAST(uint32_t *, PL310_BASE + 0x77c)
75#define PL310_CLEAN_PA CAST(uint32_t *, PL310_BASE + 0x7b0)
76#define PL310_CLEAN_IDX CAST(uint32_t *, PL310_BASE + 0x7b8)
77#define PL310_CLEAN_WAY CAST(uint32_t *, PL310_BASE + 0x7bc)
78#define PL310_CLEAN_INV_PA CAST(uint32_t *, PL310_BASE + 0x7f0)
79#define PL310_CLEAN_INV_IDX CAST(uint32_t *, PL310_BASE + 0x7f8)
80#define PL310_CLEAN_INV_WAY CAST(uint32_t *, PL310_BASE + 0x7Fc)
81#define PL310_D_LOCKDOWN0 CAST(uint32_t *, PL310_BASE + 0x900)
82#define PL310_I_LOCKDOWN0 CAST(uint32_t *, PL310_BASE + 0x904)
83#define PL310_DEBUG_CTRL CAST(uint32_t *, PL310_BASE + 0xf40)
84#define PL310_PREFETCH_CTRL CAST(uint32_t *, PL310_BASE + 0xf60)
85#define PL310_POWER_CTRL CAST(uint32_t *, PL310_BASE + 0xf80)
86
87/*
88 * キャッシュ補助制御レジスタ(PL310_AUX_CTRL)の設定値
89 */
90#define PL310_AUX_CTRL_ASSOCIATIVITY 0x00010000
91#define PL310_AUX_CTRL_WAY_SIZE_SHIFT 17
92#define PL310_AUX_CTRL_WAY_SIZE_MASK 0x000e0000
93#define PL310_AUX_CTRL_IGNORE_SHARE 0x00400000
94#define PL310_AUX_CTRL_NS_LOCKDOWN 0x04000000
95#define PL310_AUX_CTRL_NS_INT_CTRL 0x08000000
96#define PL310_AUX_CTRL_DATA_PREFETCH 0x10000000
97#define PL310_AUX_CTRL_INST_PREFETCH 0x20000000
98#define PL310_AUX_CTRL_EARLY_BRESP 0x40000000
99
100/*
101 * プリフェッチ制御レジスタ(PL310_PREFETCH_CTRL)の設定値
102 */
103#define PL310_PREFETCH_CTRL_INCR_DLINEFILL 0x00800000
104#define PL310_PREFETCH_CTRL_DATA_PREFETCH 0x10000000
105#define PL310_PREFETCH_CTRL_INST_PREFETCH 0x20000000
106#define PL310_PREFETCH_CTRL_DLINEFILL 0x40000000
107
108#ifndef TOPPERS_MACRO_ONLY
109
110/*
111 * L2キャッシュの初期化とイネーブル
112 */
113extern void pl310_initialize(uint32_t aux_val, uint32_t aux_mask);
114
115/*
116 * L2キャッシュのディスエーブル
117 */
118extern void pl310_disable(void);
119
120/*
121 * L2キャッシュ全体の無効化(書き戻さない)
122 */
123extern void pl310_invalidate_all(void);
124
125/*
126 * L2キャッシュ全体のクリーンと無効化
127 */
128extern void pl310_clean_and_invalidate_all(void);
129
130#endif /* TOPPERS_MACRO_ONLY */
131#endif /* TOPPERS_PL310_H */
Note: See TracBrowser for help on using the repository browser.