Revision ea2b542a target-sh4/cpu.h
b/target-sh4/cpu.h | ||
---|---|---|
163 | 163 |
#define MMUCR 0x1F000010 |
164 | 164 |
#define MMUCR_AT (1<<0) |
165 | 165 |
#define MMUCR_SV (1<<8) |
166 |
#define MMUCR_URC_BITS (6) |
|
167 |
#define MMUCR_URC_OFFSET (10) |
|
168 |
#define MMUCR_URC_SIZE (1 << MMUCR_URC_BITS) |
|
169 |
#define MMUCR_URC_MASK (((MMUCR_URC_SIZE) - 1) << MMUCR_URC_OFFSET) |
|
170 |
static inline int cpu_mmucr_urc (uint32_t mmucr) |
|
171 |
{ |
|
172 |
return ((mmucr & MMUCR_URC_MASK) >> MMUCR_URC_OFFSET); |
|
173 |
} |
|
174 |
|
|
175 |
/* PTEH : Page Translation Entry High register */ |
|
176 |
#define PTEH_ASID_BITS (8) |
|
177 |
#define PTEH_ASID_SIZE (1 << PTEH_ASID_BITS) |
|
178 |
#define PTEH_ASID_MASK (PTEH_ASID_SIZE - 1) |
|
179 |
#define cpu_pteh_asid(pteh) ((pteh) & PTEH_ASID_MASK) |
|
180 |
#define PTEH_VPN_BITS (22) |
|
181 |
#define PTEH_VPN_OFFSET (10) |
|
182 |
#define PTEH_VPN_SIZE (1 << PTEH_VPN_BITS) |
|
183 |
#define PTEH_VPN_MASK (((PTEH_VPN_SIZE) - 1) << PTEH_VPN_OFFSET) |
|
184 |
static inline int cpu_pteh_vpn (uint32_t pteh) |
|
185 |
{ |
|
186 |
return ((pteh & PTEH_VPN_MASK) >> PTEH_VPN_OFFSET); |
|
187 |
} |
|
188 |
|
|
189 |
/* PTEL : Page Translation Entry Low register */ |
|
190 |
#define PTEL_V (1 << 8) |
|
191 |
#define cpu_ptel_v(ptel) (((ptel) & PTEL_V) >> 8) |
|
192 |
#define PTEL_C (1 << 3) |
|
193 |
#define cpu_ptel_c(ptel) (((ptel) & PTEL_C) >> 3) |
|
194 |
#define PTEL_D (1 << 2) |
|
195 |
#define cpu_ptel_d(ptel) (((ptel) & PTEL_D) >> 2) |
|
196 |
#define PTEL_SH (1 << 1) |
|
197 |
#define cpu_ptel_sh(ptel)(((ptel) & PTEL_SH) >> 1) |
|
198 |
#define PTEL_WT (1 << 0) |
|
199 |
#define cpu_ptel_wt(ptel) ((ptel) & PTEL_WT) |
|
200 |
|
|
201 |
#define PTEL_SZ_HIGH_OFFSET (7) |
|
202 |
#define PTEL_SZ_HIGH (1 << PTEL_SZ_HIGH_OFFSET) |
|
203 |
#define PTEL_SZ_LOW_OFFSET (4) |
|
204 |
#define PTEL_SZ_LOW (1 << PTEL_SZ_LOW_OFFSET) |
|
205 |
static inline int cpu_ptel_sz (uint32_t ptel) |
|
206 |
{ |
|
207 |
int sz; |
|
208 |
sz = (ptel & PTEL_SZ_HIGH) >> PTEL_SZ_HIGH_OFFSET; |
|
209 |
sz <<= 1; |
|
210 |
sz |= (ptel & PTEL_SZ_LOW) >> PTEL_SZ_LOW_OFFSET; |
|
211 |
return sz; |
|
212 |
} |
|
213 |
|
|
214 |
#define PTEL_PPN_BITS (19) |
|
215 |
#define PTEL_PPN_OFFSET (10) |
|
216 |
#define PTEL_PPN_SIZE (1 << PTEL_PPN_BITS) |
|
217 |
#define PTEL_PPN_MASK (((PTEL_PPN_SIZE) - 1) << PTEL_PPN_OFFSET) |
|
218 |
static inline int cpu_ptel_ppn (uint32_t ptel) |
|
219 |
{ |
|
220 |
return ((ptel & PTEL_PPN_MASK) >> PTEL_PPN_OFFSET); |
|
221 |
} |
|
222 |
|
|
223 |
#define PTEL_PR_BITS (2) |
|
224 |
#define PTEL_PR_OFFSET (5) |
|
225 |
#define PTEL_PR_SIZE (1 << PTEL_PR_BITS) |
|
226 |
#define PTEL_PR_MASK (((PTEL_PR_SIZE) - 1) << PTEL_PR_OFFSET) |
|
227 |
static inline int cpu_ptel_pr (uint32_t ptel) |
|
228 |
{ |
|
229 |
return ((ptel & PTEL_PR_MASK) >> PTEL_PR_OFFSET); |
|
230 |
} |
|
231 |
|
|
232 |
/* PTEA : Page Translation Entry Assistance register */ |
|
233 |
#define PTEA_SA_BITS (3) |
|
234 |
#define PTEA_SA_SIZE (1 << PTEA_SA_BITS) |
|
235 |
#define PTEA_SA_MASK (PTEA_SA_SIZE - 1) |
|
236 |
#define cpu_ptea_sa(ptea) ((ptea) & PTEA_SA_MASK) |
|
237 |
#define PTEA_TC (1 << 3) |
|
238 |
#define cpu_ptea_tc(ptea) (((ptea) & PTEA_TC) >> 3) |
|
166 | 239 |
|
167 | 240 |
#endif /* _CPU_SH4_H */ |
Also available in: Unified diff