[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 06/24] PPC: e500: add generic e500 platform
From: |
Alexander Graf |
Subject: |
[Qemu-ppc] [PATCH 06/24] PPC: e500: add generic e500 platform |
Date: |
Wed, 15 Aug 2012 11:58:44 +0200 |
From: Scott Wood <address@hidden>
This gives the kernel a paravirtualized machine to target, without
requiring both sides to pretend to be targeting a specific board
that likely has little to do with the host in KVM scenarios. This
avoids the need to add new boards to QEMU, just to be able to
run KVM on new CPUs.
Signed-off-by: Scott Wood <address@hidden>
[agraf: conditionalize on CONFIG_FDT]
Signed-off-by: Alexander Graf <address@hidden>
---
hw/ppc/Makefile.objs | 2 +-
hw/ppc/e500plat.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 1 deletions(-)
create mode 100644 hw/ppc/e500plat.c
diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs
index 99fe837..951e407 100644
--- a/hw/ppc/Makefile.objs
+++ b/hw/ppc/Makefile.objs
@@ -27,4 +27,4 @@ obj-y += xilinx_ethlite.o
obj-y := $(addprefix ../,$(obj-y))
-obj-$(CONFIG_FDT) += e500.o mpc8544ds.o
+obj-$(CONFIG_FDT) += e500.o mpc8544ds.o e500plat.o
diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c
new file mode 100644
index 0000000..60a5cb3
--- /dev/null
+++ b/hw/ppc/e500plat.c
@@ -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);
--
1.6.0.2
- [Qemu-ppc] [PULL 00/24] ppc patch queue 2012-08-15, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 04/24] PPC: e500: change internal references away from mpc8544ds, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 01/24] pseries pci: removed redundant busdev, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 02/24] pseries pci: spapr_populate_pci_devices renamed to spapr_populate_pci_dt, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 07/24] ppc: Fix bug in handling of PAPR hypercall exits, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 03/24] PPC: e500: rename mpc8544ds into generic file, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 08/24] Revert "PPC: e500: Use new MPIC dt format", Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 06/24] PPC: e500: add generic e500 platform,
Alexander Graf <=
- [Qemu-ppc] [PATCH 05/24] PPC: e500: split mpc8544ds machine from generic e500 code, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 11/24] xbzrle: fix compilation on ppc32, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 12/24] PPC: spapr: Rework VGA select logic, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 10/24] spapr: Add support for -vga option, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 09/24] Add one new file vga-pci.h and cleanup on all platforms, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 13/24] PPC: spapr: Remove global variable, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 15/24] pseries: Remove extraneous prints, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 17/24] pseries: Separate PCI RTAS setup from common from emulation specific PCI setup, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 19/24] pseries: Export find_phb() utility function for PCI code, Alexander Graf, 2012/08/15
- [Qemu-ppc] [PATCH 16/24] pseries: Rework irq assignment to avoid carrying qemu_irqs around, Alexander Graf, 2012/08/15