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
> ---
> 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),
> 0x, 0x};
> +uint32_t tbfreq = kvm_enabled() ? kvmppc_get_tbfreq() :
> TIMEBASE_FREQ;
> +uint32_t cpufreq = kvm_enabled() ? kvmppc_get_clockfreq() :
> 10;
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", 10)));
> +_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