kvm: user: ppc: fix build break caused by changes to kvm_callbacks
[qemu-kvm/fedora.git] / hw / ppc440.c
blob5a0218619bee1ce364981110490b53366eafc526
1 /*
2 * Qemu PowerPC 440 board emualtion
4 * Copyright 2007 IBM Corporation.
5 * Authors: Jerone Young <jyoung5@us.ibm.com>
6 * Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
8 * This work is licensed under the GNU GPL license version 2 or later.
13 #include "hw.h"
14 #include "hw/isa.h"
15 #include "ppc440.h"
17 #define PPC440EP_PCI_CONFIG 0xeec00000
18 #define PPC440EP_PCI_INTACK 0xeed00000
19 #define PPC440EP_PCI_SPECIAL 0xeed00000
20 #define PPC440EP_PCI_REGS 0xef400000
21 #define PPC440EP_PCI_IO 0xe8000000
22 #define PPC440EP_PCI_IOLEN 0x10000
23 #define PPC440EP_PCI_MEM 0xa0000000
24 #define PPC440EP_PCI_MEMLEN 0x20000000
27 void ppc440ep_init(CPUState *env,
28 target_phys_addr_t ram_bases[PPC440_MAX_RAM_SLOTS],
29 target_phys_addr_t ram_sizes[PPC440_MAX_RAM_SLOTS],
30 int nbanks,
31 qemu_irq **picp,
32 ppc4xx_pci_t **pcip,
33 int do_init)
35 ppc4xx_mmio_t *mmio;
36 qemu_irq *pic, *irqs;
37 ppc4xx_pci_t *pci;
38 int i;
40 ppc_dcr_init(env, NULL, NULL);
42 /* mmio */
43 printf("setup mmio\n");
44 mmio = ppc4xx_mmio_init(env, 0xEF600000);
46 /* universal controller */
47 printf("setup universal controller\n");
48 irqs = qemu_mallocz(sizeof(qemu_irq) * PPCUIC_OUTPUT_NB);
49 irqs[PPCUIC_OUTPUT_INT] =
50 ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_INT];
51 irqs[PPCUIC_OUTPUT_CINT] =
52 ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_CINT];
53 pic = ppcuic_init(env, irqs, 0x0C0, 0, 1);
54 *picp = pic;
56 /* SDRAM controller */
57 printf("trying to setup sdram controller\n");
58 /* XXX 440EP's ECC interrupts are on UIC1 */
59 ppc405_sdram_init(env, pic[14], nbanks, ram_bases, ram_sizes, do_init);
61 /* PCI */
62 pci = ppc4xx_pci_init(env, pic,
63 PPC440EP_PCI_CONFIG,
64 PPC440EP_PCI_INTACK,
65 PPC440EP_PCI_SPECIAL,
66 PPC440EP_PCI_REGS);
67 if (!pci)
68 printf("couldn't create PCI controller!\n");
69 *pcip = pci;
71 isa_mmio_init(PPC440EP_PCI_IO, PPC440EP_PCI_IOLEN);
73 /* serial ports on page 126 of 440EP user manual */
74 if (serial_hds[0]) {
75 printf("Initializing first serial port\n");
76 ppc405_serial_init(env, mmio,0x300, pic[0], serial_hds[0]);
78 if (serial_hds[1]) {
79 printf("Initializing 2nd serial port\n");
80 ppc405_serial_init(env, mmio,0x400, pic[1], serial_hds[1]);