[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH RFC] openbios-devel/arch/ppc/qemu/init.c
From: |
BALATON Zoltan |
Subject: |
[Qemu-ppc] [PATCH RFC] openbios-devel/arch/ppc/qemu/init.c |
Date: |
Sun, 9 Mar 2014 01:13:49 +0100 (CET) |
User-agent: |
Alpine 2.02 (LMD 1266 2009-07-14) |
On Sat, 8 Mar 2014, Mark Cave-Ayland wrote:
> I would say do a separate patchset with patches 1 and 4 with CC to the PPC
> maintainers (Alex and Andreas) and make sure that they are happy with the
> changes.
Here are my proposed changes to qemu/init.c. This is all in one patch
currently that I can split into 3 or 4 separate patches if that preferred
but before doing that I'd like to get your comments if other changes are
needed. The patch contains the following changes:
- Remove unused clock_frequency from CPU info (these are now get via
FW_CFG for a while)
- Add tlb-sets and tlb-size instead (only for G4 for now because I don't
know the correct values for other CPUs)
- Add bus-frequency property to CPU
- Rename the root node on Apple machines to match their conventions
Regards,
BALATON Zoltan
Index: openbios-devel/arch/ppc/qemu/init.c
===================================================================
--- openbios-devel/arch/ppc/qemu/init.c (revision 1277)
+++ 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(100 * 1000 * 1000);
+ 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,
.initfn = cpu_604_init,
},
{ // XXX find out real values
@@ -403,7 +421,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x07de2900,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_604_init,
},
{ // XXX find out real values
@@ -415,7 +434,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x07de2900,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_604_init,
},
{ // XXX find out real values
@@ -427,7 +447,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x14dc9380,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_750_init,
},
{
@@ -439,7 +460,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x14dc9380,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_750_init,
},
{ // XXX find out real values
@@ -451,7 +473,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x14dc9380,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_750_init,
},
{ // XXX find out real values
@@ -463,7 +486,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x14dc9380,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_750_init,
},
{ // XXX find out real values
@@ -475,7 +499,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x14dc9380,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_750_init,
},
{ // XXX find out real values
@@ -487,7 +512,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x20,
.dcache_block_size = 0x20,
- .clock_frequency = 0x14dc9380,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_750_init,
},
{
@@ -499,7 +525,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 +538,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x80,
.dcache_block_size = 0x80,
- .clock_frequency = 0x5f5e1000,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_970_init,
},
{ // XXX find out real values
@@ -523,7 +551,8 @@
.dcache_sets = 0x80,
.icache_block_size = 0x80,
.dcache_block_size = 0x80,
- .clock_frequency = 0x1dcd6500,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_970_init,
},
{
@@ -535,7 +564,8 @@
.dcache_sets = 0x40,
.icache_block_size = 0x80,
.dcache_block_size = 0x80,
- .clock_frequency = 0x629b4940,
+ .tlb_sets = 0x00,
+ .tlb_size = 0x00,
.initfn = cpu_970_init,
},
};
@@ -702,6 +732,12 @@
push_str("/");
fword("find-device");
+ /* Apple calls the root node device-tree */
+ if (is_apple()) {
+ push_str("device-tree");
+ fword("device-name");
+ }
+
switch(machine_id) {
case ARCH_HEATHROW: /* OldWorld */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-ppc] [PATCH RFC] openbios-devel/arch/ppc/qemu/init.c,
BALATON Zoltan <=