qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

bcm2836.h (1224B)


      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 work is licensed under the terms of the GNU GPL, version 2 or later.
      9  * See the COPYING file in the top-level directory.
     10  */
     11 
     12 #ifndef BCM2836_H
     13 #define BCM2836_H
     14 
     15 #include "hw/arm/bcm2835_peripherals.h"
     16 #include "hw/intc/bcm2836_control.h"
     17 #include "target/arm/cpu.h"
     18 #include "qom/object.h"
     19 
     20 #define TYPE_BCM283X "bcm283x"
     21 OBJECT_DECLARE_TYPE(BCM283XState, BCM283XClass, BCM283X)
     22 
     23 #define BCM283X_NCPUS 4
     24 
     25 /* These type names are for specific SoCs; other than instantiating
     26  * them, code using these devices should always handle them via the
     27  * BCM283x base class, so they have no BCM2836(obj) etc macros.
     28  */
     29 #define TYPE_BCM2835 "bcm2835"
     30 #define TYPE_BCM2836 "bcm2836"
     31 #define TYPE_BCM2837 "bcm2837"
     32 
     33 struct BCM283XState {
     34     /*< private >*/
     35     DeviceState parent_obj;
     36     /*< public >*/
     37 
     38     uint32_t enabled_cpus;
     39 
     40     struct {
     41         ARMCPU core;
     42     } cpu[BCM283X_NCPUS];
     43     BCM2836ControlState control;
     44     BCM2835PeripheralState peripherals;
     45 };
     46 
     47 #endif /* BCM2836_H */