kvm: bios: notify _EJ0 through _SEJ OperationRegion
[qemu-kvm/fedora.git] / hw / ppc440.c
bloba9580ce62a3a385a86ff09b5116d4826a99742ca
1 /*
2 * Qemu PowerPC 440 board emualtion
4 * Copyright 2007 IBM Corporation.
5 * Authors: Jerone Young <jyoung5@us.ibm.com>
7 * This work is licensed under the GNU GPL license version 2 or later.
9 */
11 #include "ppc440.h"
13 void ppc440_init(CPUState *env,
14 target_phys_addr_t ram_bases[2],
15 target_phys_addr_t ram_sizes[2],
16 qemu_irq **picp,
17 int do_init)
19 ppc4xx_mmio_t *mmio;
20 qemu_irq *pic, *irqs;
21 ram_addr_t offset;
22 int i;
24 ppc_dcr_init(env, NULL, NULL);
26 /* mmio */
27 printf("setup mmio\n");
28 mmio = ppc4xx_mmio_init(env, 0xEF600000);
30 /* universal controller */
31 printf("setup universal controller\n");
32 irqs = qemu_mallocz(sizeof(qemu_irq) * PPCUIC_OUTPUT_NB);
33 irqs[PPCUIC_OUTPUT_INT] =
34 ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_INT];
35 irqs[PPCUIC_OUTPUT_CINT] =
36 ((qemu_irq *)env->irq_inputs)[PPC40x_INPUT_CINT];
37 pic = ppcuic_init(env, irqs, 0x0C0, 0, 1);
38 *picp = pic;
40 /* SDRAM controller */
41 printf("trying to setup sdram controller\n");
42 ppc405_sdram_init(env, pic[14], 2, ram_bases, ram_sizes, do_init);
43 offset = 0;
44 for (i = 0; i < 2; i++)
45 offset += ram_sizes[i];
47 /* serial ports on page 126 of 440EP user manual */
48 if (serial_hds[0]) {
49 printf("Initializing first serial port\n");
50 ppc405_serial_init(env, mmio,0x300, pic[31], serial_hds[0]);
52 if (serial_hds[1]) {
53 printf("Initializing 2nd serial port\n");
54 ppc405_serial_init(env, mmio,0x400, pic[30], serial_hds[1]);