OSDN Git Service

fcaf802fe0fcd6b69900726bee65ebc6c7cf8809
[trx-305dsp/dsp.git] / trx305 / kernel / config / blackfin / cpu_mmr.c
1 /*
2  * Blackfin Core MMR定義ファイル。
3  *
4  * このファイルはGDBでのデバッグの支援用に開発したものである。GCC環境での開発に用いても構わないが、
5  * VisualDSP++への移行は少々複雑になる。また、開発に使うための検証は行っていない。
6  *
7  * アドレスの正しさの検証は、以下の比較によって行っている。
8  *
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
12 > RTC_PREN FFC00314
13 > UART_DLL FFC00400
14 > UART_RBR FFC00400
15 25a29
16 > UART_DLH FFC00404
17 123a128
18 > DMA_TCPER FFC00B0C
19 124a130
20 > DMA_TCCNT FFC00B10
21 288a295
22 > DCPLB_FAULT_STATUS FFE00008
23 326a334
24 > CODE_FAULT_STATUS FFE01008
25 327a336
26 > CODE_FAULT_ADDR FFE0100C
27  *
28  * 得られた結果では、def_lpblackfin.hにある3つのレジスタがcore_mmr.cでは無視されていることを指摘している。
29  * これらのレジスタはエイリアスであり、同じアドレスに別レジスタがあるので、この結果で正しい。
30  *
31  */
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")));
71
72
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")));
112
113
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")));
135
136
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")));
141
142
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")));
146
147
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")));
151
152
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")));
172
173
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")));
177