Browse Source
* agraf/ppc-for-upstream: (24 commits) openpic: Added BRR1 register pseries: Update SLOF firmware image pseries dma: DMA window params added to PHB and DT population changed pseries: Add PCI MSI/MSI-X support pseries: Add trace event for PCI irqs pseries: Export find_phb() utility function for PCI code pseries: added allocator for a block of IRQs pseries: Separate PCI RTAS setup from common from emulation specific PCI setup pseries: Rework irq assignment to avoid carrying qemu_irqs around pseries: Remove extraneous prints pseries: Update SLOF PPC: spapr: Remove global variable PPC: spapr: Rework VGA select logic xbzrle: fix compilation on ppc32 spapr: Add support for -vga option Add one new file vga-pci.h and cleanup on all platforms Revert "PPC: e500: Use new MPIC dt format" ppc: Fix bug in handling of PAPR hypercall exits PPC: e500: add generic e500 platform PPC: e500: split mpc8544ds machine from generic e500 code ...pull/92/head
34 changed files with 718 additions and 210 deletions
@ -0,0 +1,21 @@ |
|||
#ifndef PPCE500_H |
|||
#define PPCE500_H |
|||
|
|||
typedef struct PPCE500Params { |
|||
/* Standard QEMU machine init params */ |
|||
ram_addr_t ram_size; |
|||
const char *boot_device; |
|||
const char *kernel_filename; |
|||
const char *kernel_cmdline; |
|||
const char *initrd_filename; |
|||
const char *cpu_model; |
|||
|
|||
/* e500-specific params */ |
|||
|
|||
/* required -- must at least add toplevel board compatible */ |
|||
void (*fixup_devtree)(struct PPCE500Params *params, void *fdt); |
|||
} PPCE500Params; |
|||
|
|||
void ppce500_init(PPCE500Params *params); |
|||
|
|||
#endif |
|||
@ -0,0 +1,60 @@ |
|||
/*
|
|||
* Generic device-tree-driven paravirt PPC e500 platform |
|||
* |
|||
* Copyright 2012 Freescale Semiconductor, Inc. |
|||
* |
|||
* This is free software; you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation; either version 2 of the License, or |
|||
* (at your option) any later version. |
|||
*/ |
|||
|
|||
#include "config.h" |
|||
#include "qemu-common.h" |
|||
#include "e500.h" |
|||
#include "../boards.h" |
|||
#include "device_tree.h" |
|||
|
|||
static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt) |
|||
{ |
|||
const char model[] = "QEMU ppce500"; |
|||
const char compatible[] = "fsl,qemu-e500"; |
|||
|
|||
qemu_devtree_setprop(fdt, "/", "model", model, sizeof(model)); |
|||
qemu_devtree_setprop(fdt, "/", "compatible", compatible, |
|||
sizeof(compatible)); |
|||
} |
|||
|
|||
static void e500plat_init(ram_addr_t ram_size, |
|||
const char *boot_device, |
|||
const char *kernel_filename, |
|||
const char *kernel_cmdline, |
|||
const char *initrd_filename, |
|||
const char *cpu_model) |
|||
{ |
|||
PPCE500Params params = { |
|||
.ram_size = ram_size, |
|||
.boot_device = boot_device, |
|||
.kernel_filename = kernel_filename, |
|||
.kernel_cmdline = kernel_cmdline, |
|||
.initrd_filename = initrd_filename, |
|||
.cpu_model = cpu_model, |
|||
.fixup_devtree = e500plat_fixup_devtree, |
|||
}; |
|||
|
|||
ppce500_init(¶ms); |
|||
} |
|||
|
|||
static QEMUMachine e500plat_machine = { |
|||
.name = "ppce500", |
|||
.desc = "generic paravirt e500 platform", |
|||
.init = e500plat_init, |
|||
.max_cpus = 15, |
|||
}; |
|||
|
|||
static void e500plat_machine_init(void) |
|||
{ |
|||
qemu_register_machine(&e500plat_machine); |
|||
} |
|||
|
|||
machine_init(e500plat_machine_init); |
|||
@ -0,0 +1,61 @@ |
|||
/*
|
|||
* Support for the PPC e500-based mpc8544ds board |
|||
* |
|||
* Copyright 2012 Freescale Semiconductor, Inc. |
|||
* |
|||
* This is free software; you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation; either version 2 of the License, or |
|||
* (at your option) any later version. |
|||
*/ |
|||
|
|||
#include "config.h" |
|||
#include "qemu-common.h" |
|||
#include "e500.h" |
|||
#include "../boards.h" |
|||
#include "device_tree.h" |
|||
|
|||
static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt) |
|||
{ |
|||
const char model[] = "MPC8544DS"; |
|||
const char compatible[] = "MPC8544DS\0MPC85xxDS"; |
|||
|
|||
qemu_devtree_setprop(fdt, "/", "model", model, sizeof(model)); |
|||
qemu_devtree_setprop(fdt, "/", "compatible", compatible, |
|||
sizeof(compatible)); |
|||
} |
|||
|
|||
static void mpc8544ds_init(ram_addr_t ram_size, |
|||
const char *boot_device, |
|||
const char *kernel_filename, |
|||
const char *kernel_cmdline, |
|||
const char *initrd_filename, |
|||
const char *cpu_model) |
|||
{ |
|||
PPCE500Params params = { |
|||
.ram_size = ram_size, |
|||
.boot_device = boot_device, |
|||
.kernel_filename = kernel_filename, |
|||
.kernel_cmdline = kernel_cmdline, |
|||
.initrd_filename = initrd_filename, |
|||
.cpu_model = cpu_model, |
|||
.fixup_devtree = mpc8544ds_fixup_devtree, |
|||
}; |
|||
|
|||
ppce500_init(¶ms); |
|||
} |
|||
|
|||
|
|||
static QEMUMachine ppce500_machine = { |
|||
.name = "mpc8544ds", |
|||
.desc = "mpc8544ds", |
|||
.init = mpc8544ds_init, |
|||
.max_cpus = 15, |
|||
}; |
|||
|
|||
static void ppce500_machine_init(void) |
|||
{ |
|||
qemu_register_machine(&ppce500_machine); |
|||
} |
|||
|
|||
machine_init(ppce500_machine_init); |
|||
@ -0,0 +1,12 @@ |
|||
#ifndef VGA_PCI_H |
|||
#define VGA_PCI_H |
|||
|
|||
#include "qemu-common.h" |
|||
|
|||
/* vga-pci.c */ |
|||
DeviceState *pci_vga_init(PCIBus *bus); |
|||
|
|||
/* cirrus_vga.c */ |
|||
DeviceState *pci_cirrus_vga_init(PCIBus *bus); |
|||
|
|||
#endif |
|||
Binary file not shown.
@ -1 +1 @@ |
|||
Subproject commit d153364253548d6cd91403711f84996e6a7dab31 |
|||
Subproject commit f21f7a3f46b557eb5923f899ce8b4401b3cc6d91 |
|||
Loading…
Reference in new issue