[OpenBIOS] [PATCH v2] arch/ppc/qemu: Clean up and add more cpu infos

Alexander Graf agraf at suse.de
Thu May 8 14:15:55 CEST 2014


On 04/17/2014 07:25 PM, BALATON Zoltan wrote:
> Removed unused clock_frequency member from struct cpudef which is get from
> FW_CFG and added bus-frequency property to complete the frequency
> properties. Also added tlb infos to cpudef (with values only for G4
> currently as I have no data for other CPUs).
>
> Signed-off-by: BALATON Zoltan <balaton at eik.bme.hu>
> ---
>
> v2: Get bus-frequency from FW_CFG similarly to clock-frequency and
> tb-frequency (corresponding patch submitted to QEMU)
>
> ---
> Index: openbios-devel/arch/ppc/qemu/init.c
> ===================================================================
> --- openbios-devel/arch/ppc/qemu/init.c	(revision 1286)
> +++ openbios-devel/arch/ppc/qemu/init.c	(working copy)
> @@ -44,7 +44,7 @@
>       int icache_size, dcache_size;
>       int icache_sets, dcache_sets;
>       int icache_block_size, dcache_block_size;
> -    int clock_frequency;
> +    int tlb_sets, tlb_size;
>       void (*initfn)(const struct cpudef *cpu);
>   };
>
> @@ -269,6 +269,18 @@
>       push_str("i-cache-block-size");
>       fword("property");
>
> +    if(cpu->tlb_size) {
> +        PUSH(cpu->tlb_sets);
> +        fword("encode-int");
> +        push_str("tlb-sets");
> +        fword("property");
> +
> +        PUSH(cpu->tlb_size);
> +        fword("encode-int");
> +        push_str("tlb-size");
> +        fword("property");
> +    }
> +
>       PUSH(fw_cfg_read_i32(FW_CFG_PPC_TBFREQ));
>       fword("encode-int");
>       push_str("timebase-frequency");
> @@ -279,6 +291,11 @@
>       push_str("clock-frequency");
>       fword("property");
>
> +    PUSH(fw_cfg_read_i32(FW_CFG_PPC_BUSFREQ));

What if we failed to read the bus frequency because we're running on an 
older QEMU?

> +    fword("encode-int");
> +    push_str("bus-frequency");
> +    fword("property");
> +
>       push_str("running");
>       fword("encode-string");
>       push_str("state");
> @@ -391,7 +408,8 @@
>           .dcache_sets = 0x80,
>           .icache_block_size = 0x20,
>           .dcache_block_size = 0x20,
> -        .clock_frequency = 0x07de2900,
> +        .tlb_sets = 0x00,
> +        .tlb_size = 0x00,

Please expose at least reasonable defaults. Zero is a bad choice because 
it may cause to division by 0 errors inside the guest.


Alex




More information about the OpenBIOS mailing list