cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

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"
     21OBJECT_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
     33struct 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 */