[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 17/58] PPC: E500: Use generic kvm function for freq
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PATCH 17/58] PPC: E500: Use generic kvm function for freq |
Date: |
Wed, 14 Sep 2011 10:42:41 +0200 |
Now that we have generic KVM functions to read out the host tb and clock
frequencies, let's use them in the e500 code!
Signed-off-by: Alexander Graf <address@hidden>
---
hw/ppce500_mpc8544ds.c | 44 +++++++++-----------------------------------
1 files changed, 9 insertions(+), 35 deletions(-)
diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c
index 9cb01f3..8748531 100644
--- a/hw/ppce500_mpc8544ds.c
+++ b/hw/ppce500_mpc8544ds.c
@@ -14,8 +14,6 @@
* (at your option) any later version.
*/
-#include <dirent.h>
-
#include "config.h"
#include "qemu-common.h"
#include "net.h"
@@ -96,6 +94,9 @@ static int mpc8544_load_device_tree(CPUState *env,
int fdt_size;
void *fdt;
uint8_t hypercall[16];
+ char cpu_name[128] = "/cpus/PowerPC,address@hidden";
+ uint32_t clock_freq = 400000000;
+ uint32_t tb_freq = 400000000;
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
if (!filename) {
@@ -133,32 +134,9 @@ static int mpc8544_load_device_tree(CPUState *env,
fprintf(stderr, "couldn't set /chosen/bootargs\n");
if (kvm_enabled()) {
- struct dirent *dirp;
- DIR *dp;
- char buf[128];
-
- if ((dp = opendir("/proc/device-tree/cpus/")) == NULL) {
- printf("Can't open directory /proc/device-tree/cpus/\n");
- ret = -1;
- goto out;
- }
-
- buf[0] = '\0';
- while ((dirp = readdir(dp)) != NULL) {
- if (strncmp(dirp->d_name, "PowerPC", 7) == 0) {
- snprintf(buf, 128, "/cpus/%s", dirp->d_name);
- break;
- }
- }
- closedir(dp);
- if (buf[0] == '\0') {
- printf("Unknow host!\n");
- ret = -1;
- goto out;
- }
-
- mpc8544_copy_soc_cell(fdt, buf, "clock-frequency");
- mpc8544_copy_soc_cell(fdt, buf, "timebase-frequency");
+ /* Read out host's frequencies */
+ clock_freq = kvmppc_get_clockfreq();
+ tb_freq = kvmppc_get_tbfreq();
/* indicate KVM hypercall interface */
qemu_devtree_setprop_string(fdt, "/hypervisor", "compatible",
@@ -166,15 +144,11 @@ static int mpc8544_load_device_tree(CPUState *env,
kvmppc_get_hypercall(env, hypercall, sizeof(hypercall));
qemu_devtree_setprop(fdt, "/hypervisor", "hcall-instructions",
hypercall, sizeof(hypercall));
- } else {
- const uint32_t freq = 400000000;
-
- qemu_devtree_setprop_cell(fdt, "/cpus/PowerPC,address@hidden",
- "clock-frequency", freq);
- qemu_devtree_setprop_cell(fdt, "/cpus/PowerPC,address@hidden",
- "timebase-frequency", freq);
}
+ qemu_devtree_setprop_cell(fdt, cpu_name, "clock-frequency", clock_freq);
+ qemu_devtree_setprop_cell(fdt, cpu_name, "timebase-frequency", tb_freq);
+
ret = rom_add_blob_fixed(BINARY_DEVICE_TREE_FILE, fdt, fdt_size, addr);
g_free(fdt);
--
1.6.0.2
- [Qemu-devel] [PATCH 35/58] PPC: SPAPR: Use KVM function for time info, (continued)
- [Qemu-devel] [PATCH 35/58] PPC: SPAPR: Use KVM function for time info, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 14/58] device tree: add nop_node, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 38/58] pseries: interrupt controller should not have a 'reg' property, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 49/58] vscsi: send the CHECK_CONDITION status down together with autosense data, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 20/58] PPC: KVM: Remove kvmppc_read_host_property, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 40/58] PPC: Fix sync instructions problem in SMP, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 18/58] PPC: E500: Remove mpc8544_copy_soc_cell, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 02/58] spapr: prepare for qdevification of irq, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 17/58] PPC: E500: Use generic kvm function for freq,
Alexander Graf <=
- [Qemu-devel] [PATCH 48/58] pseries: Implement hcall-bulk hypervisor interface, Alexander Graf, 2011/09/14
- [Qemu-devel] [PATCH 50/58] pseries: Update SLOF firmware image, Alexander Graf, 2011/09/14
- Re: [Qemu-devel] [PATCH 50/58] pseries: Update SLOF firmware image, Peter Maydell, 2011/09/14
- Re: [Qemu-devel] [PATCH 50/58] pseries: Update SLOF firmware image, Alexander Graf, 2011/09/14
- Re: [Qemu-devel] [PATCH 50/58] pseries: Update SLOF firmware image, Peter Maydell, 2011/09/14
- Re: [Qemu-devel] [PATCH 50/58] pseries: Update SLOF firmware image, Anthony Liguori, 2011/09/14
- Re: [Qemu-devel] [PATCH 50/58] pseries: Update SLOF firmware image, Blue Swirl, 2011/09/14
- Re: [Qemu-devel] [PATCH 50/58] pseries: Update SLOF firmware image, Alexander Graf, 2011/09/19
- Re: [Qemu-devel] [Qemu-ppc] [PATCH 50/58] pseries: Update SLOF firmware image, David Gibson, 2011/09/20
- Re: [Qemu-devel] [Qemu-ppc] [PATCH 50/58] pseries: Update SLOF firmware image, Paolo Bonzini, 2011/09/24