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