* [Qemu-devel] [PATCH] PPC: mpc8544ds: Add hypervisor node
@ 2011-06-14 16:04 Alexander Graf
2011-06-15 21:52 ` Scott Wood
0 siblings, 1 reply; 2+ messages in thread
From: Alexander Graf @ 2011-06-14 16:04 UTC (permalink / raw)
To: qemu-devel@nongnu.org Developers; +Cc: Scott Wood
When running a PPC guest with KVM that can do PV operations, we need
to indicate the guest which instructions to use for a hypercall and
that it is running as KVM guest.
This logic was available on openbios based machines already. This patch
also adds said functionality to the mpc8544ds machine.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
hw/ppce500_mpc8544ds.c | 21 +++++++++++++++------
pc-bios/mpc8544ds.dtb | Bin 2257 -> 2277 bytes
pc-bios/mpc8544ds.dts | 3 +++
3 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c
index 3ba8e75..073de3c 100644
--- a/hw/ppce500_mpc8544ds.c
+++ b/hw/ppce500_mpc8544ds.c
@@ -82,11 +82,12 @@ out:
}
#endif
-static int mpc8544_load_device_tree(target_phys_addr_t addr,
- uint32_t ramsize,
- target_phys_addr_t initrd_base,
- target_phys_addr_t initrd_size,
- const char *kernel_cmdline)
+static int mpc8544_load_device_tree(CPUState *env,
+ target_phys_addr_t addr,
+ uint32_t ramsize,
+ target_phys_addr_t initrd_base,
+ target_phys_addr_t initrd_size,
+ const char *kernel_cmdline)
{
int ret = -1;
#ifdef CONFIG_FDT
@@ -94,6 +95,7 @@ static int mpc8544_load_device_tree(target_phys_addr_t addr,
char *filename;
int fdt_size;
void *fdt;
+ uint8_t hypercall[16];
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
if (!filename) {
@@ -157,6 +159,13 @@ static int mpc8544_load_device_tree(target_phys_addr_t addr,
mpc8544_copy_soc_cell(fdt, buf, "clock-frequency");
mpc8544_copy_soc_cell(fdt, buf, "timebase-frequency");
+
+ /* indicate KVM hypercall interface */
+ qemu_devtree_setprop_string(fdt, "/hypervisor", "compatible",
+ "linux,kvm");
+ kvmppc_get_hypercall(env, hypercall, sizeof(hypercall));
+ qemu_devtree_setprop(fdt, "/hypervisor", "hcall-instructions",
+ hypercall, sizeof(hypercall));
} else {
const uint32_t freq = 400000000;
@@ -330,7 +339,7 @@ static void mpc8544ds_init(ram_addr_t ram_size,
cpu_abort(env, "Compiled without FDT support - can't load kernel\n");
#endif
dt_base = (kernel_size + DTC_LOAD_PAD) & ~DTC_PAD_MASK;
- if (mpc8544_load_device_tree(dt_base, ram_size,
+ if (mpc8544_load_device_tree(env, dt_base, ram_size,
initrd_base, initrd_size, kernel_cmdline) < 0) {
fprintf(stderr, "couldn't load device tree\n");
exit(1);
diff --git a/pc-bios/mpc8544ds.dtb b/pc-bios/mpc8544ds.dtb
index 189224e5875e9dd0d9195c22624b85bfb29dd820..ae318b1fe83846cc2e133951a3666fcfcdf87f79 100644
GIT binary patch
delta 47
zcmca8_*78f0`I@K3=AAk85kHW7#P?qCJKl%I&9Q1XXj?js4Pe=D$6X+FWMZ&Ud;#q
DUc3%i
delta 35
rcmaDVcu`Q`0`I@K3=A9>85kHW7#P@7CJKl%>TJ|7XWv}RUc?9h$W95#
diff --git a/pc-bios/mpc8544ds.dts b/pc-bios/mpc8544ds.dts
index fd792d5..a88b47c 100644
--- a/pc-bios/mpc8544ds.dts
+++ b/pc-bios/mpc8544ds.dts
@@ -125,4 +125,7 @@
chosen {
linux,stdout-path = "/soc8544@e0000000/serial@4500";
};
+
+ hypervisor {
+ };
};
--
1.6.0.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] PPC: mpc8544ds: Add hypervisor node
2011-06-14 16:04 [Qemu-devel] [PATCH] PPC: mpc8544ds: Add hypervisor node Alexander Graf
@ 2011-06-15 21:52 ` Scott Wood
0 siblings, 0 replies; 2+ messages in thread
From: Scott Wood @ 2011-06-15 21:52 UTC (permalink / raw)
To: Alexander Graf; +Cc: qemu-devel@nongnu.org Developers
On Tue, 14 Jun 2011 18:04:21 +0200
Alexander Graf <agraf@suse.de> wrote:
> When running a PPC guest with KVM that can do PV operations, we need
> to indicate the guest which instructions to use for a hypercall and
> that it is running as KVM guest.
>
> This logic was available on openbios based machines already. This patch
> also adds said functionality to the mpc8544ds machine.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
> hw/ppce500_mpc8544ds.c | 21 +++++++++++++++------
> pc-bios/mpc8544ds.dtb | Bin 2257 -> 2277 bytes
> pc-bios/mpc8544ds.dts | 3 +++
> 3 files changed, 18 insertions(+), 6 deletions(-)
Acked-by: Scott Wood <scottwood@freescale.com>
-Scott
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-06-15 21:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-14 16:04 [Qemu-devel] [PATCH] PPC: mpc8544ds: Add hypervisor node Alexander Graf
2011-06-15 21:52 ` Scott Wood
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).