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

Alexander Graf agraf at suse.de
Sun May 25 11:50:12 CEST 2014


On 24.05.14 11:21, Mark Cave-Ayland wrote:
> On 23/05/14 19:57, 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 CPU properties.
>>
>> 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, already
>>       applied to ppc-next)
>> v3: added definition of FW_CFG_PPC_BUSFREQ that was missed from v2
>> v4: tlb infos for all CPUs from device tree dumps found on the net
>>
>> ---
>> Index: openbios-devel/arch/ppc/qemu/init.c
>> ===================================================================
>> --- openbios-devel/arch/ppc/qemu/init.c    (revision 1303)
>> +++ 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,16 @@
>>       push_str("i-cache-block-size");
>>       fword("property");
>>
>> +    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 +289,11 @@
>>       push_str("clock-frequency");
>>       fword("property");
>>
>> +    PUSH(fw_cfg_read_i32(FW_CFG_PPC_BUSFREQ));
>> +    fword("encode-int");
>> +    push_str("bus-frequency");
>> +    fword("property");
>> +
>>       push_str("running");
>>       fword("encode-string");
>>       push_str("state");
>> @@ -391,7 +406,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x07de2900,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_604_init,
>>       },
>>       { // XXX find out real values
>> @@ -403,7 +419,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x07de2900,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_604_init,
>>       },
>>       { // XXX find out real values
>> @@ -415,7 +432,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x07de2900,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_604_init,
>>       },
>>       { // XXX find out real values
>> @@ -427,7 +445,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x14dc9380,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_750_init,
>>       },
>>       {
>> @@ -439,7 +458,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x14dc9380,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_750_init,
>>       },
>>       { // XXX find out real values
>> @@ -451,7 +471,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x14dc9380,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_750_init,
>>       },
>>       { // XXX find out real values
>> @@ -463,7 +484,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x14dc9380,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_750_init,
>>       },
>>       { // XXX find out real values
>> @@ -475,7 +497,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x14dc9380,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_750_init,
>>       },
>>       { // XXX find out real values
>> @@ -487,7 +510,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x14dc9380,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_750_init,
>>       },
>>       {
>> @@ -499,7 +523,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x20,
>>           .dcache_block_size = 0x20,
>> -        .clock_frequency = 0x1dcd6500,
>> +        .tlb_sets = 0x40,
>> +        .tlb_size = 0x80,
>>           .initfn = cpu_g4_init,
>>       },
>>       {
>> @@ -511,7 +536,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x80,
>>           .dcache_block_size = 0x80,
>> -        .clock_frequency = 0x5f5e1000,
>> +        .tlb_sets = 0x100,
>> +        .tlb_size = 0x1000,
>>           .initfn = cpu_970_init,
>>       },
>>       { // XXX find out real values
>> @@ -523,7 +549,8 @@
>>           .dcache_sets = 0x80,
>>           .icache_block_size = 0x80,
>>           .dcache_block_size = 0x80,
>> -        .clock_frequency = 0x1dcd6500,
>> +        .tlb_sets = 0x100,
>> +        .tlb_size = 0x1000,
>>           .initfn = cpu_970_init,
>>       },
>>       {
>> @@ -535,7 +562,8 @@
>>           .dcache_sets = 0x40,
>>           .icache_block_size = 0x80,
>>           .dcache_block_size = 0x80,
>> -        .clock_frequency = 0x629b4940,
>> +        .tlb_sets = 0x100,
>> +        .tlb_size = 0x1000,
>>           .initfn = cpu_970_init,
>>       },
>>   };
>> Index: openbios-devel/include/arch/common/fw_cfg.h
>> ===================================================================
>> --- openbios-devel/include/arch/common/fw_cfg.h    (revision 1303)
>> +++ openbios-devel/include/arch/common/fw_cfg.h    (working copy)
>> @@ -45,6 +45,7 @@
>>   #define FW_CFG_PPC_KVM_HC    (FW_CFG_ARCH_LOCAL + 0x06)
>>   #define FW_CFG_PPC_KVM_PID    (FW_CFG_ARCH_LOCAL + 0x07)
>>   #define FW_CFG_PPC_NVRAM_ADDR    (FW_CFG_ARCH_LOCAL + 0x08)
>> +#define FW_CFG_PPC_BUSFREQ      (FW_CFG_ARCH_LOCAL + 0x09)
>>
>>   #define FW_CFG_INVALID          0xffff
>
> Looks good to me. Alex/Andreas, let me know if you'd prefer me to 
> commit this.

I think the patch is fine by now (though I would personally split it 
into 3 patches for easy bisectability). I've applied it to the tree.

However, Zoltan, something is broken with your patch workflow. I was 
only able to apply the patch after stripping superfluous spaces from 
every line that starts with a space using the following regex:

%s/^  / /g

Please check whether you followed the instructions at

   https://www.kernel.org/doc/Documentation/email-clients.txt

or if something else is broken in the workflow you're using to submit 
patches.


Thanks,

Alex




More information about the OpenBIOS mailing list