Revision c1713132 target-arm/cpu.h
b/target-arm/cpu.h | ||
---|---|---|
38 | 38 |
#define EXCP_FIQ 6 |
39 | 39 |
#define EXCP_BKPT 7 |
40 | 40 |
|
41 |
typedef void ARMWriteCPFunc(void *opaque, int cp_info, |
|
42 |
int srcreg, int operand, uint32_t value); |
|
43 |
typedef uint32_t ARMReadCPFunc(void *opaque, int cp_info, |
|
44 |
int dstreg, int operand); |
|
45 |
|
|
41 | 46 |
/* We currently assume float and double are IEEE single and double |
42 | 47 |
precision respectively. |
43 | 48 |
Doing runtime conversions is tricky because VFP registers may contain |
... | ... | |
75 | 80 |
/* System control coprocessor (cp15) */ |
76 | 81 |
struct { |
77 | 82 |
uint32_t c0_cpuid; |
83 |
uint32_t c0_cachetype; |
|
78 | 84 |
uint32_t c1_sys; /* System control register. */ |
79 | 85 |
uint32_t c1_coproc; /* Coprocessor access register. */ |
80 | 86 |
uint32_t c2; /* MMU translation table base. */ |
... | ... | |
87 | 93 |
uint32_t c9_data; |
88 | 94 |
uint32_t c13_fcse; /* FCSE PID. */ |
89 | 95 |
uint32_t c13_context; /* Context ID. */ |
96 |
uint32_t c15_cpar; /* XScale Coprocessor Access Register */ |
|
90 | 97 |
} cp15; |
91 | 98 |
|
99 |
/* Coprocessor IO used by peripherals */ |
|
100 |
struct { |
|
101 |
ARMReadCPFunc *cp_read; |
|
102 |
ARMWriteCPFunc *cp_write; |
|
103 |
void *opaque; |
|
104 |
} cp[15]; |
|
105 |
|
|
92 | 106 |
/* Internal CPU feature flags. */ |
93 | 107 |
uint32_t features; |
94 | 108 |
|
... | ... | |
204 | 218 |
#define ARM_VFP_FPINST 9 |
205 | 219 |
#define ARM_VFP_FPINST2 10 |
206 | 220 |
|
207 |
|
|
208 | 221 |
enum arm_features { |
209 | 222 |
ARM_FEATURE_VFP, |
210 |
ARM_FEATURE_AUXCR /* ARM1026 Auxiliary control register. */ |
|
223 |
ARM_FEATURE_AUXCR, /* ARM1026 Auxiliary control register. */ |
|
224 |
ARM_FEATURE_XSCALE, /* Intel XScale extensions. */ |
|
211 | 225 |
}; |
212 | 226 |
|
213 | 227 |
static inline int arm_feature(CPUARMState *env, int feature) |
... | ... | |
218 | 232 |
void arm_cpu_list(void); |
219 | 233 |
void cpu_arm_set_model(CPUARMState *env, const char *name); |
220 | 234 |
|
221 |
#define ARM_CPUID_ARM1026 0x4106a262 |
|
222 |
#define ARM_CPUID_ARM926 0x41069265 |
|
235 |
void cpu_arm_set_cp_io(CPUARMState *env, int cpnum, |
|
236 |
ARMReadCPFunc *cp_read, ARMWriteCPFunc *cp_write, |
|
237 |
void *opaque); |
|
238 |
|
|
239 |
#define ARM_CPUID_ARM1026 0x4106a262 |
|
240 |
#define ARM_CPUID_ARM926 0x41069265 |
|
241 |
#define ARM_CPUID_PXA250 0x69052100 |
|
242 |
#define ARM_CPUID_PXA255 0x69052d00 |
|
243 |
#define ARM_CPUID_PXA260 0x69052903 |
|
244 |
#define ARM_CPUID_PXA261 0x69052d05 |
|
245 |
#define ARM_CPUID_PXA262 0x69052d06 |
|
246 |
#define ARM_CPUID_PXA270 0x69054110 |
|
247 |
#define ARM_CPUID_PXA270_A0 0x69054110 |
|
248 |
#define ARM_CPUID_PXA270_A1 0x69054111 |
|
249 |
#define ARM_CPUID_PXA270_B0 0x69054112 |
|
250 |
#define ARM_CPUID_PXA270_B1 0x69054113 |
|
251 |
#define ARM_CPUID_PXA270_C0 0x69054114 |
|
252 |
#define ARM_CPUID_PXA270_C5 0x69054117 |
|
223 | 253 |
|
224 | 254 |
#if defined(CONFIG_USER_ONLY) |
225 | 255 |
#define TARGET_PAGE_BITS 12 |
Also available in: Unified diff