1 | #ifndef PPCE500_H |
2 | #define PPCE500_H |
3 | |
4 | #include "hw/boards.h" |
5 | #include "hw/platform-bus.h" |
6 | |
7 | typedef struct PPCE500MachineState { |
8 | /*< private >*/ |
9 | MachineState parent_obj; |
10 | |
11 | /* points to instance of TYPE_PLATFORM_BUS_DEVICE if |
12 | * board supports dynamic sysbus devices |
13 | */ |
14 | PlatformBusDevice *pbus_dev; |
15 | } PPCE500MachineState; |
16 | |
17 | typedef struct PPCE500MachineClass { |
18 | /*< private >*/ |
19 | MachineClass parent_class; |
20 | |
21 | /* required -- must at least add toplevel board compatible */ |
22 | void (*fixup_devtree)(void *fdt); |
23 | |
24 | int pci_first_slot; |
25 | int pci_nr_slots; |
26 | |
27 | int mpic_version; |
28 | bool has_mpc8xxx_gpio; |
29 | bool has_platform_bus; |
30 | hwaddr platform_bus_base; |
31 | hwaddr platform_bus_size; |
32 | int platform_bus_first_irq; |
33 | int platform_bus_num_irqs; |
34 | hwaddr ccsrbar_base; |
35 | hwaddr pci_pio_base; |
36 | hwaddr pci_mmio_base; |
37 | hwaddr pci_mmio_bus_base; |
38 | hwaddr spin_base; |
39 | } PPCE500MachineClass; |
40 | |
41 | void ppce500_init(MachineState *machine); |
42 | |
43 | hwaddr booke206_page_size_to_tlb(uint64_t size); |
44 | |
45 | #define TYPE_PPCE500_MACHINE "ppce500-base-machine" |
46 | #define PPCE500_MACHINE(obj) \ |
47 | OBJECT_CHECK(PPCE500MachineState, (obj), TYPE_PPCE500_MACHINE) |
48 | #define PPCE500_MACHINE_GET_CLASS(obj) \ |
49 | OBJECT_GET_CLASS(PPCE500MachineClass, obj, TYPE_PPCE500_MACHINE) |
50 | #define PPCE500_MACHINE_CLASS(klass) \ |
51 | OBJECT_CLASS_CHECK(PPCE500MachineClass, klass, TYPE_PPCE500_MACHINE) |
52 | |
53 | #endif |
54 | |