2 * Blackfin Core MMR定義ファイル。
4 * このファイルはGDBでのデバッグの支援用に開発したものである。GCC環境での開発に用いても構わないが、
5 * VisualDSP++への移行は少々複雑になる。また、開発に使うための検証は行っていない。
7 * アドレスの正しさの検証は、以下の比較によって行っている。
9 $ readelf -s -W jsp | grep mmr | grep -v DUMMY | grep -v blackfin | sort -k 2 | awk '/_mmr/{print $8, $2}' - | sed 's/_mmr//p' | uniq > regelf.txt
10 $ cat ../jsp/config/blackfin/def_lpblackfin.h ../jsp/config/blackfin/defbf532.h | grep '0xFF[CE]0' | grep "#define" | sed 's/_MA /_MAP /' - | awk '{print $2,$3}' - | sort -k 2 | sed 's/0x//' - > regdef.txt
11 $ diff -i -w regelf.txt regdef.txt 24a25,27
22 > DCPLB_FAULT_STATUS FFE00008
24 > CODE_FAULT_STATUS FFE01008
26 > CODE_FAULT_ADDR FFE0100C
28 * 得られた結果では、def_lpblackfin.hにある3つのレジスタがcore_mmr.cでは無視されていることを指摘している。
29 * これらのレジスタはエイリアスであり、同じアドレスに別レジスタがあるので、この結果で正しい。
32 volatile void * volatile mmrSRAM_BASE_ADDRESS __attribute__ ((aligned(4), section("DMEMCTL")));
33 volatile unsigned long mmrDMEM_CONTROL __attribute__ ((aligned(4), section("DMEMCTL")));
34 volatile unsigned long mmrDCPLB_STATUS __attribute__ ((aligned(4), section("DMEMCTL")));
35 volatile void * volatile mmrDCPLB_FAULT_ADDR __attribute__ ((aligned(4), section("DMEMCTL")));
36 volatile void * volatile mmrDCPLB_ADDR0 __attribute__ ((aligned(4), section("DCPLBA")));
37 volatile void * volatile mmrDCPLB_ADDR1 __attribute__ ((aligned(4), section("DCPLBA")));
38 volatile void * volatile mmrDCPLB_ADDR2 __attribute__ ((aligned(4), section("DCPLBA")));
39 volatile void * volatile mmrDCPLB_ADDR3 __attribute__ ((aligned(4), section("DCPLBA")));
40 volatile void * volatile mmrDCPLB_ADDR4 __attribute__ ((aligned(4), section("DCPLBA")));
41 volatile void * volatile mmrDCPLB_ADDR5 __attribute__ ((aligned(4), section("DCPLBA")));
42 volatile void * volatile mmrDCPLB_ADDR6 __attribute__ ((aligned(4), section("DCPLBA")));
43 volatile void * volatile mmrDCPLB_ADDR7 __attribute__ ((aligned(4), section("DCPLBA")));
44 volatile void * volatile mmrDCPLB_ADDR8 __attribute__ ((aligned(4), section("DCPLBA")));
45 volatile void * volatile mmrDCPLB_ADDR9 __attribute__ ((aligned(4), section("DCPLBA")));
46 volatile void * volatile mmrDCPLB_ADDR10 __attribute__ ((aligned(4), section("DCPLBA")));
47 volatile void * volatile mmrDCPLB_ADDR11 __attribute__ ((aligned(4), section("DCPLBA")));
48 volatile void * volatile mmrDCPLB_ADDR12 __attribute__ ((aligned(4), section("DCPLBA")));
49 volatile void * volatile mmrDCPLB_ADDR13 __attribute__ ((aligned(4), section("DCPLBA")));
50 volatile void * volatile mmrDCPLB_ADDR14 __attribute__ ((aligned(4), section("DCPLBA")));
51 volatile void * volatile mmrDCPLB_ADDR15 __attribute__ ((aligned(4), section("DCPLBA")));
52 volatile unsigned long mmrDCPLB_DATA0 __attribute__ ((aligned(4), section("DCPLBD")));
53 volatile unsigned long mmrDCPLB_DATA1 __attribute__ ((aligned(4), section("DCPLBD")));
54 volatile unsigned long mmrDCPLB_DATA2 __attribute__ ((aligned(4), section("DCPLBD")));
55 volatile unsigned long mmrDCPLB_DATA3 __attribute__ ((aligned(4), section("DCPLBD")));
56 volatile unsigned long mmrDCPLB_DATA4 __attribute__ ((aligned(4), section("DCPLBD")));
57 volatile unsigned long mmrDCPLB_DATA5 __attribute__ ((aligned(4), section("DCPLBD")));
58 volatile unsigned long mmrDCPLB_DATA6 __attribute__ ((aligned(4), section("DCPLBD")));
59 volatile unsigned long mmrDCPLB_DATA7 __attribute__ ((aligned(4), section("DCPLBD")));
60 volatile unsigned long mmrDCPLB_DATA8 __attribute__ ((aligned(4), section("DCPLBD")));
61 volatile unsigned long mmrDCPLB_DATA9 __attribute__ ((aligned(4), section("DCPLBD")));
62 volatile unsigned long mmrDCPLB_DATA10 __attribute__ ((aligned(4), section("DCPLBD")));
63 volatile unsigned long mmrDCPLB_DATA11 __attribute__ ((aligned(4), section("DCPLBD")));
64 volatile unsigned long mmrDCPLB_DATA12 __attribute__ ((aligned(4), section("DCPLBD")));
65 volatile unsigned long mmrDCPLB_DATA13 __attribute__ ((aligned(4), section("DCPLBD")));
66 volatile unsigned long mmrDCPLB_DATA14 __attribute__ ((aligned(4), section("DCPLBD")));
67 volatile unsigned long mmrDCPLB_DATA15 __attribute__ ((aligned(4), section("DCPLBD")));
68 volatile unsigned long mmrDTEST_COMMAND __attribute__ ((aligned(4), section("DTESTC")));
69 volatile unsigned long mmrDTEST_DATA0 __attribute__ ((aligned(4), section("DTESTD")));
70 volatile unsigned long mmrDTEST_DATA1 __attribute__ ((aligned(4), section("DTESTD")));
73 volatile unsigned long mmrIMEM_DUMMY __attribute__ ((aligned(4), section("IMEMCTL")));
74 volatile unsigned long mmrIMEM_CONTROL __attribute__ ((aligned(4), section("IMEMCTL")));
75 volatile unsigned long mmrICPLB_STATUS __attribute__ ((aligned(4), section("IMEMCTL")));
76 volatile void * volatile mmrICPLB_FAULT_ADDR __attribute__ ((aligned(4), section("IMEMCTL")));
77 volatile void * volatile mmrICPLB_ADDR0 __attribute__ ((aligned(4), section("ICPLBA")));
78 volatile void * volatile mmrICPLB_ADDR1 __attribute__ ((aligned(4), section("ICPLBA")));
79 volatile void * volatile mmrICPLB_ADDR2 __attribute__ ((aligned(4), section("ICPLBA")));
80 volatile void * volatile mmrICPLB_ADDR3 __attribute__ ((aligned(4), section("ICPLBA")));
81 volatile void * volatile mmrICPLB_ADDR4 __attribute__ ((aligned(4), section("ICPLBA")));
82 volatile void * volatile mmrICPLB_ADDR5 __attribute__ ((aligned(4), section("ICPLBA")));
83 volatile void * volatile mmrICPLB_ADDR6 __attribute__ ((aligned(4), section("ICPLBA")));
84 volatile void * volatile mmrICPLB_ADDR7 __attribute__ ((aligned(4), section("ICPLBA")));
85 volatile void * volatile mmrICPLB_ADDR8 __attribute__ ((aligned(4), section("ICPLBA")));
86 volatile void * volatile mmrICPLB_ADDR9 __attribute__ ((aligned(4), section("ICPLBA")));
87 volatile void * volatile mmrICPLB_ADDR10 __attribute__ ((aligned(4), section("ICPLBA")));
88 volatile void * volatile mmrICPLB_ADDR11 __attribute__ ((aligned(4), section("ICPLBA")));
89 volatile void * volatile mmrICPLB_ADDR12 __attribute__ ((aligned(4), section("ICPLBA")));
90 volatile void * volatile mmrICPLB_ADDR13 __attribute__ ((aligned(4), section("ICPLBA")));
91 volatile void * volatile mmrICPLB_ADDR14 __attribute__ ((aligned(4), section("ICPLBA")));
92 volatile void * volatile mmrICPLB_ADDR15 __attribute__ ((aligned(4), section("ICPLBA")));
93 volatile unsigned long mmrICPLB_DATA0 __attribute__ ((aligned(4), section("ICPLBD")));
94 volatile unsigned long mmrICPLB_DATA1 __attribute__ ((aligned(4), section("ICPLBD")));
95 volatile unsigned long mmrICPLB_DATA2 __attribute__ ((aligned(4), section("ICPLBD")));
96 volatile unsigned long mmrICPLB_DATA3 __attribute__ ((aligned(4), section("ICPLBD")));
97 volatile unsigned long mmrICPLB_DATA4 __attribute__ ((aligned(4), section("ICPLBD")));
98 volatile unsigned long mmrICPLB_DATA5 __attribute__ ((aligned(4), section("ICPLBD")));
99 volatile unsigned long mmrICPLB_DATA6 __attribute__ ((aligned(4), section("ICPLBD")));
100 volatile unsigned long mmrICPLB_DATA7 __attribute__ ((aligned(4), section("ICPLBD")));
101 volatile unsigned long mmrICPLB_DATA8 __attribute__ ((aligned(4), section("ICPLBD")));
102 volatile unsigned long mmrICPLB_DATA9 __attribute__ ((aligned(4), section("ICPLBD")));
103 volatile unsigned long mmrICPLB_DATA10 __attribute__ ((aligned(4), section("ICPLBD")));
104 volatile unsigned long mmrICPLB_DATA11 __attribute__ ((aligned(4), section("ICPLBD")));
105 volatile unsigned long mmrICPLB_DATA12 __attribute__ ((aligned(4), section("ICPLBD")));
106 volatile unsigned long mmrICPLB_DATA13 __attribute__ ((aligned(4), section("ICPLBD")));
107 volatile unsigned long mmrICPLB_DATA14 __attribute__ ((aligned(4), section("ICPLBD")));
108 volatile unsigned long mmrICPLB_DATA15 __attribute__ ((aligned(4), section("ICPLBD")));
109 volatile unsigned long mmrITEST_COMMAND __attribute__ ((aligned(4), section("ITESTC")));
110 volatile unsigned long mmrITEST_DATA0 __attribute__ ((aligned(4), section("ITESTD")));
111 volatile unsigned long mmrITEST_DATA1 __attribute__ ((aligned(4), section("ITESTD")));
114 volatile void * volatile mmrEVT0 __attribute__ ((aligned(4), section("EVT")));
115 volatile void * volatile mmrEVT1 __attribute__ ((aligned(4), section("EVT")));
116 volatile void * volatile mmrEVT2 __attribute__ ((aligned(4), section("EVT")));
117 volatile void * volatile mmrEVT3 __attribute__ ((aligned(4), section("EVT")));
118 volatile void * volatile mmrEVT4 __attribute__ ((aligned(4), section("EVT")));
119 volatile void * volatile mmrEVT5 __attribute__ ((aligned(4), section("EVT")));
120 volatile void * volatile mmrEVT6 __attribute__ ((aligned(4), section("EVT")));
121 volatile void * volatile mmrEVT7 __attribute__ ((aligned(4), section("EVT")));
122 volatile void * volatile mmrEVT8 __attribute__ ((aligned(4), section("EVT")));
123 volatile void * volatile mmrEVT9 __attribute__ ((aligned(4), section("EVT")));
124 volatile void * volatile mmrEVT10 __attribute__ ((aligned(4), section("EVT")));
125 volatile void * volatile mmrEVT11 __attribute__ ((aligned(4), section("EVT")));
126 volatile void * volatile mmrEVT12 __attribute__ ((aligned(4), section("EVT")));
127 volatile void * volatile mmrEVT13 __attribute__ ((aligned(4), section("EVT")));
128 volatile void * volatile mmrEVT14 __attribute__ ((aligned(4), section("EVT")));
129 volatile void * volatile mmrEVT15 __attribute__ ((aligned(4), section("EVT")));
130 volatile unsigned long mmrIDUMMY __attribute__ ((aligned(4), section("CEC")));
131 volatile unsigned long mmrIMASK __attribute__ ((aligned(4), section("CEC")));
132 volatile unsigned long mmrIPEND __attribute__ ((aligned(4), section("CEC")));
133 volatile unsigned long mmrILAT __attribute__ ((aligned(4), section("CEC")));
134 volatile unsigned long mmrIPRIO __attribute__ ((aligned(4), section("CEC")));
137 volatile unsigned long mmrTCNTL __attribute__ ((aligned(4), section("CTMR")));
138 volatile unsigned long mmrTPERIOD __attribute__ ((aligned(4), section("CTMR")));
139 volatile unsigned long mmrTSCALE __attribute__ ((aligned(4), section("CTMR")));
140 volatile unsigned long mmrTCOUNT __attribute__ ((aligned(4), section("CTMR")));
143 volatile unsigned long mmrDSPID __attribute__ ((aligned(4), section("DBG")));
144 volatile unsigned short mmrDBGDUMMY __attribute__ ((aligned(4), section("DBG")));
145 volatile unsigned long mmrDBGSTAT __attribute__ ((aligned(4), section("DBG")));
148 volatile unsigned long mmrTBUFCTL __attribute__ ((aligned(4), section("TBCTL")));
149 volatile unsigned long mmrTBUFSTAT __attribute__ ((aligned(4), section("TBCTL")));
150 volatile void * volatile mmrTBUF __attribute__ ((aligned(4), section("TBUF")));
153 volatile unsigned long mmrWPIACTL __attribute__ ((aligned(4), section("WPICTL")));
154 volatile void * volatile mmrWPIA0 __attribute__ ((aligned(4), section("WPIADDR")));
155 volatile void * volatile mmrWPIA1 __attribute__ ((aligned(4), section("WPIADDR")));
156 volatile void * volatile mmrWPIA2 __attribute__ ((aligned(4), section("WPIADDR")));
157 volatile void * volatile mmrWPIA3 __attribute__ ((aligned(4), section("WPIADDR")));
158 volatile void * volatile mmrWPIA4 __attribute__ ((aligned(4), section("WPIADDR")));
159 volatile void * volatile mmrWPIA5 __attribute__ ((aligned(4), section("WPIADDR")));
160 volatile unsigned long mmrWPIACNT0 __attribute__ ((aligned(4), section("WPICNT")));
161 volatile unsigned long mmrWPIACNT1 __attribute__ ((aligned(4), section("WPICNT")));
162 volatile unsigned long mmrWPIACNT2 __attribute__ ((aligned(4), section("WPICNT")));
163 volatile unsigned long mmrWPIACNT3 __attribute__ ((aligned(4), section("WPICNT")));
164 volatile unsigned long mmrWPIACNT4 __attribute__ ((aligned(4), section("WPICNT")));
165 volatile unsigned long mmrWPIACNT5 __attribute__ ((aligned(4), section("WPICNT")));
166 volatile unsigned long mmrWPDACTL __attribute__ ((aligned(4), section("WPDCTL")));
167 volatile void * volatile mmrWPDA0 __attribute__ ((aligned(4), section("WPDADDR")));
168 volatile void * volatile mmrWPDA1 __attribute__ ((aligned(4), section("WPDADDR")));
169 volatile unsigned long mmrWPDACNT0 __attribute__ ((aligned(4), section("WPDCNT")));
170 volatile unsigned long mmrWPDACNT1 __attribute__ ((aligned(4), section("WPDCNT")));
171 volatile unsigned long mmrWPSTAT __attribute__ ((aligned(4), section("WPSTAT")));
174 volatile unsigned long mmrPFCTL __attribute__ ((aligned(4), section("PFCTL")));
175 volatile unsigned long mmrPFCNTR0 __attribute__ ((aligned(4), section("PFCNT")));
176 volatile unsigned long mmrPFCNTR1 __attribute__ ((aligned(4), section("PFCNT")));