blob: 70ba1d8f4f94d73cecfe789ebcacdef69d56f1fb [file] [log] [blame]
Scott Woode6eaabe2012-07-02 13:03:20 +00001#ifndef PPCE500_H
2#define PPCE500_H
3
Markus Armbruster92238362013-08-16 13:13:49 +02004#include "hw/boards.h"
5
Scott Woode6eaabe2012-07-02 13:03:20 +00006typedef struct PPCE500Params {
Alexander Graf492ec482012-12-12 13:53:53 +01007 int pci_first_slot;
8 int pci_nr_slots;
Scott Woode6eaabe2012-07-02 13:03:20 +00009
Scott Woode6eaabe2012-07-02 13:03:20 +000010 /* required -- must at least add toplevel board compatible */
11 void (*fixup_devtree)(struct PPCE500Params *params, void *fdt);
Scott Woodf5fba9d2013-01-21 15:53:55 +000012
13 int mpic_version;
Alexander Grafb88e77f2014-10-01 16:00:49 +020014 bool has_mpc8xxx_gpio;
Alexander Graff7087342014-07-01 16:27:09 +020015 bool has_platform_bus;
16 hwaddr platform_bus_base;
17 hwaddr platform_bus_size;
18 int platform_bus_first_irq;
19 int platform_bus_num_irqs;
Alexander Graf2eaaac12014-11-07 16:50:44 +010020 hwaddr ccsrbar_base;
21 hwaddr pci_pio_base;
Alexander Grafcb3778a2014-11-12 22:44:52 +010022 hwaddr pci_mmio_base;
23 hwaddr pci_mmio_bus_base;
Alexander Graf2eaaac12014-11-07 16:50:44 +010024 hwaddr spin_base;
Scott Woode6eaabe2012-07-02 13:03:20 +000025} PPCE500Params;
26
Marcel Apfelbaum3ef96222014-05-07 17:42:57 +030027void ppce500_init(MachineState *machine, PPCE500Params *params);
Scott Woode6eaabe2012-07-02 13:03:20 +000028
Aaron Larsona36848f2016-06-28 06:50:05 -070029hwaddr booke206_page_size_to_tlb(uint64_t size);
30
Scott Woode6eaabe2012-07-02 13:03:20 +000031#endif