1 /* 2 * Cortex-A9MPCore internal peripheral emulation. 3 * 4 * Copyright (c) 2009 CodeSourcery. 5 * Copyright (c) 2011 Linaro Limited. 6 * Written by Paul Brook, Peter Maydell. 7 * 8 * This code is licensed under the GPL. 9 */ 10 #ifndef HW_CPU_A9MPCORE_H 11 #define HW_CPU_A9MPCORE_H 12 13 #include "hw/sysbus.h" 14 #include "hw/intc/arm_gic.h" 15 #include "hw/misc/a9scu.h" 16 #include "hw/timer/arm_mptimer.h" 17 18 #define TYPE_A9MPCORE_PRIV "a9mpcore_priv" 19 #define A9MPCORE_PRIV(obj) \ 20 OBJECT_CHECK(A9MPPrivState, (obj), TYPE_A9MPCORE_PRIV) 21 22 typedef struct A9MPPrivState { 23 /*< private >*/ 24 SysBusDevice parent_obj; 25 /*< public >*/ 26 27 uint32_t num_cpu; 28 MemoryRegion container; 29 uint32_t num_irq; 30 31 GICState gic; 32 A9SCUState scu; 33 ARMMPTimerState mptimer; 34 ARMMPTimerState wdt; 35 } A9MPPrivState; 36 37 #endif 38