xref: /openbmc/qemu/include/hw/cpu/a9mpcore.h (revision 4dad0a9aa818698e0735c8352bf7925a1660df6f)
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