xref: /openbmc/qemu/hw/ppc/e500.h (revision 3f288c4b)
1e6eaabebSScott Wood #ifndef PPCE500_H
2e6eaabebSScott Wood #define PPCE500_H
3e6eaabebSScott Wood 
492238367SMarkus Armbruster #include "hw/boards.h"
5a3fc8396SIgor Mammedov #include "hw/platform-bus.h"
6db1015e9SEduardo Habkost #include "qom/object.h"
792238367SMarkus Armbruster 
8db1015e9SEduardo Habkost struct PPCE500MachineState {
903f04809SIgor Mammedov     /*< private >*/
1003f04809SIgor Mammedov     MachineState parent_obj;
1103f04809SIgor Mammedov 
12a3fc8396SIgor Mammedov     /* points to instance of TYPE_PLATFORM_BUS_DEVICE if
13a3fc8396SIgor Mammedov      * board supports dynamic sysbus devices
14a3fc8396SIgor Mammedov      */
15a3fc8396SIgor Mammedov     PlatformBusDevice *pbus_dev;
16db1015e9SEduardo Habkost };
1703f04809SIgor Mammedov 
18db1015e9SEduardo Habkost struct PPCE500MachineClass {
1903f04809SIgor Mammedov     /*< private >*/
2003f04809SIgor Mammedov     MachineClass parent_class;
21e6eaabebSScott Wood 
22e6eaabebSScott Wood     /* required -- must at least add toplevel board compatible */
2303f04809SIgor Mammedov     void (*fixup_devtree)(void *fdt);
2403f04809SIgor Mammedov 
2503f04809SIgor Mammedov     int pci_first_slot;
2603f04809SIgor Mammedov     int pci_nr_slots;
27f5fba9d2SScott Wood 
28f5fba9d2SScott Wood     int mpic_version;
29b88e77f4SAlexander Graf     bool has_mpc8xxx_gpio;
30*3f288c4bSPhilippe Mathieu-Daudé     bool has_esdhc;
31f7087343SAlexander Graf     hwaddr platform_bus_base;
32f7087343SAlexander Graf     hwaddr platform_bus_size;
33f7087343SAlexander Graf     int platform_bus_first_irq;
34f7087343SAlexander Graf     int platform_bus_num_irqs;
352eaaac1fSAlexander Graf     hwaddr ccsrbar_base;
362eaaac1fSAlexander Graf     hwaddr pci_pio_base;
37cb3778a0SAlexander Graf     hwaddr pci_mmio_base;
38cb3778a0SAlexander Graf     hwaddr pci_mmio_bus_base;
392eaaac1fSAlexander Graf     hwaddr spin_base;
40db1015e9SEduardo Habkost };
41e6eaabebSScott Wood 
4203f04809SIgor Mammedov void ppce500_init(MachineState *machine);
43e6eaabebSScott Wood 
44a36848ffSAaron Larson hwaddr booke206_page_size_to_tlb(uint64_t size);
45a36848ffSAaron Larson 
4603f04809SIgor Mammedov #define TYPE_PPCE500_MACHINE      "ppce500-base-machine"
47a489d195SEduardo Habkost OBJECT_DECLARE_TYPE(PPCE500MachineState, PPCE500MachineClass, PPCE500_MACHINE)
4803f04809SIgor Mammedov 
49e6eaabebSScott Wood #endif
50