On Tue, Aug 09, 2011 at 06:39:30PM +0200, Alexander Graf wrote: > One of the things we can't fake on PPC is the timer speed. So > we need to extract the frequency information from the host and > put it back into the guest device tree. > > Luckily, we already have functions for that from the non-pseries > targets, so all we need to do is to connect the dots and the guest > suddenly gets to know its real timer speeds. > > Signed-off-by: Alexander Graf <ag...@suse.de> > --- > hw/spapr.c | 8 ++++---- > 1 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/spapr.c b/hw/spapr.c > index d56697a..a73f38a 100644 > --- a/hw/spapr.c > +++ b/hw/spapr.c > @@ -140,6 +140,8 @@ static void *spapr_create_fdt_skel(const char *cpu_model, > char *nodename; > uint32_t segs[] = {cpu_to_be32(28), cpu_to_be32(40), > 0xffffffff, 0xffffffff}; > + uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq() : > TIMEBASE_FREQ; > + uint32_t cpufreq = kvm_enabled() ? kvmppc_get_clockfreq() : > 1000000000;
Um.. I see the kvmppc_get_tbfreq() function but not the kvmppc_get_clockfreq() function in my tree (pulled from upstream this morning). Is that something new in your ppc patch queue? > if (asprintf(&nodename, "%s@%x", modelname, index) < 0) { > fprintf(stderr, "Allocation failure\n"); > @@ -158,10 +160,8 @@ static void *spapr_create_fdt_skel(const char *cpu_model, > env->dcache_line_size))); > _FDT((fdt_property_cell(fdt, "icache-block-size", > env->icache_line_size))); > - _FDT((fdt_property_cell(fdt, "timebase-frequency", TIMEBASE_FREQ))); > - /* Hardcode CPU frequency for now. It's kind of arbitrary on > - * full emu, for kvm we should copy it from the host */ > - _FDT((fdt_property_cell(fdt, "clock-frequency", 1000000000))); > + _FDT((fdt_property_cell(fdt, "timebase-frequency", tbfreq))); > + _FDT((fdt_property_cell(fdt, "clock-frequency", cpufreq))); > _FDT((fdt_property_cell(fdt, "ibm,slb-size", env->slb_nr))); > _FDT((fdt_property(fdt, "ibm,pft-size", > pft_size_prop, sizeof(pft_size_prop)))); -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson