bcm2836.h (cc5a0ae03e0d011521ca5b32d3995a299b6b3ad3) bcm2836.h (926dcdf073a2f9cf8f8d4d71b35110544dae2b40)
1/*
2 * Raspberry Pi emulation (c) 2012 Gregory Estrade
3 * Upstreaming code cleanup [including bcm2835_*] (c) 2013 Jan Petrous
4 *
5 * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft
6 * Written by Andrew Baumann
7 *
8 * This code is licensed under the GNU GPLv2 and later.
9 */
10
11#ifndef BCM2836_H
12#define BCM2836_H
13
14#include "hw/arm/arm.h"
15#include "hw/arm/bcm2835_peripherals.h"
16#include "hw/intc/bcm2836_control.h"
17
1/*
2 * Raspberry Pi emulation (c) 2012 Gregory Estrade
3 * Upstreaming code cleanup [including bcm2835_*] (c) 2013 Jan Petrous
4 *
5 * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft
6 * Written by Andrew Baumann
7 *
8 * This code is licensed under the GNU GPLv2 and later.
9 */
10
11#ifndef BCM2836_H
12#define BCM2836_H
13
14#include "hw/arm/arm.h"
15#include "hw/arm/bcm2835_peripherals.h"
16#include "hw/intc/bcm2836_control.h"
17
18#define TYPE_BCM2836 "bcm2836"
19#define BCM2836(obj) OBJECT_CHECK(BCM2836State, (obj), TYPE_BCM2836)
18#define TYPE_BCM283X "bcm283x"
19#define BCM283X(obj) OBJECT_CHECK(BCM283XState, (obj), TYPE_BCM283X)
20
20
21#define BCM2836_NCPUS 4
21#define BCM283X_NCPUS 4
22
22
23typedef struct BCM2836State {
23typedef struct BCM283XState {
24 /*< private >*/
25 DeviceState parent_obj;
26 /*< public >*/
27
28 char *cpu_type;
29 uint32_t enabled_cpus;
30
24 /*< private >*/
25 DeviceState parent_obj;
26 /*< public >*/
27
28 char *cpu_type;
29 uint32_t enabled_cpus;
30
31 ARMCPU cpus[BCM2836_NCPUS];
31 ARMCPU cpus[BCM283X_NCPUS];
32 BCM2836ControlState control;
33 BCM2835PeripheralState peripherals;
32 BCM2836ControlState control;
33 BCM2835PeripheralState peripherals;
34} BCM2836State;
34} BCM283XState;
35
36#endif /* BCM2836_H */
35
36#endif /* BCM2836_H */