1de4c2dcfSAndreas Färber /* 2de4c2dcfSAndreas Färber * Cortex-A9MPCore internal peripheral emulation. 3de4c2dcfSAndreas Färber * 4de4c2dcfSAndreas Färber * Copyright (c) 2009 CodeSourcery. 5de4c2dcfSAndreas Färber * Copyright (c) 2011 Linaro Limited. 6de4c2dcfSAndreas Färber * Written by Paul Brook, Peter Maydell. 7de4c2dcfSAndreas Färber * 8de4c2dcfSAndreas Färber * This code is licensed under the GPL. 9de4c2dcfSAndreas Färber */ 10de4c2dcfSAndreas Färber #ifndef HW_CPU_A9MPCORE_H 11de4c2dcfSAndreas Färber #define HW_CPU_A9MPCORE_H 12de4c2dcfSAndreas Färber 13de4c2dcfSAndreas Färber #include "hw/sysbus.h" 14de4c2dcfSAndreas Färber #include "hw/intc/arm_gic.h" 15de4c2dcfSAndreas Färber #include "hw/misc/a9scu.h" 16de4c2dcfSAndreas Färber #include "hw/timer/arm_mptimer.h" 1757e72f2aSFrançois LEGAL #include "hw/timer/a9gtimer.h" 18db1015e9SEduardo Habkost #include "qom/object.h" 19de4c2dcfSAndreas Färber 20de4c2dcfSAndreas Färber #define TYPE_A9MPCORE_PRIV "a9mpcore_priv" 21*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(A9MPPrivState, A9MPCORE_PRIV) 22de4c2dcfSAndreas Färber 23db1015e9SEduardo Habkost struct A9MPPrivState { 24de4c2dcfSAndreas Färber /*< private >*/ 25de4c2dcfSAndreas Färber SysBusDevice parent_obj; 26de4c2dcfSAndreas Färber /*< public >*/ 27de4c2dcfSAndreas Färber 28de4c2dcfSAndreas Färber uint32_t num_cpu; 29de4c2dcfSAndreas Färber MemoryRegion container; 30de4c2dcfSAndreas Färber uint32_t num_irq; 31de4c2dcfSAndreas Färber 32de4c2dcfSAndreas Färber A9SCUState scu; 334c25f365SPeter Crosthwaite GICState gic; 3457e72f2aSFrançois LEGAL A9GTimerState gtimer; 35de4c2dcfSAndreas Färber ARMMPTimerState mptimer; 36de4c2dcfSAndreas Färber ARMMPTimerState wdt; 37db1015e9SEduardo Habkost }; 38de4c2dcfSAndreas Färber 39de4c2dcfSAndreas Färber #endif 40