Skip to contentSkip to conversation

prep: remove last OHW hacks

PATCH In review Hervé Poussineau 3 participants 5 messages Apr 1, 2014 – Apr 2, 2014

lore
Share & tools
lore
#0 lore raw

cover prep: remove last OHW hacks

Hi,

This patchset remove the last two hacks related to shortcuts in OHW firmware.

Note that related OHW patches must be applied first, and binary updated, before applying those patches.

Hervé

Hervé Poussineau (2):
prep: remove PCI memory hack related to OpenHack'Ware
prep: remove CPU reset entry point hack related to OpenHack'Ware

 hw/pci-host/prep.c |    4 +---
 hw/ppc/prep.c      |   12 ------------
 2 files changed, 1 insertion(+), 15 deletions(-)
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/2 prep: remove PCI memory hack related to OpenHack'Ware

---
 hw/pci-host/prep.c |    4 +---
 hw/ppc/prep.c      |    9 ---------
 2 files changed, 1 insertion(+), 12 deletions(-)
hw/pci-host/prep.c +1 -3
index d3e746c..56234e5 100644
@@ -256,9 +256,7 @@ static void raven_pcihost_initfn(Object *obj)
     memory_region_init(&s->pci_io, obj, "pci-io", 0x3f800000);
     memory_region_init_io(&s->pci_io_non_contiguous, obj, &raven_io_ops, s,
                           "pci-io-non-contiguous", 0x00800000);
-    /* Open Hack'Ware hack: real size should be only 0x3f000000 bytes */
-    memory_region_init(&s->pci_memory, obj, "pci-memory",
-                       0x3f000000 + 0xc0000000ULL);
+    memory_region_init(&s->pci_memory, obj, "pci-memory", 0x3f000000);
     address_space_init(&s->pci_io_as, &s->pci_io, "raven-io");
 
     /* CPU address space */
hw/ppc/prep.c +0 -9
index e243651..035b5b2 100644
@@ -381,7 +381,6 @@ static void ppc_prep_init(QEMUMachineInitArgs *args)
 #endif
     int linux_boot, i, nb_nics1;
     MemoryRegion *ram = g_new(MemoryRegion, 1);
-    MemoryRegion *vga = g_new(MemoryRegion, 1);
     uint32_t kernel_base, initrd_base;
     long kernel_size, initrd_size;
     DeviceState *dev;
@@ -507,14 +506,6 @@ static void ppc_prep_init(QEMUMachineInitArgs *args)
 
     /* init basic PC hardware */
     pci_vga_init(pci_bus);
-    /* Open Hack'Ware hack: PCI BAR#0 is programmed to 0xf0000000.
-     * While bios will access framebuffer at 0xf0000000, real physical
-     * address is 0xf0000000 + 0xc0000000 (PCI memory base).
-     * Alias the wrong memory accesses to the right place.
-     */
-    memory_region_init_alias(vga, NULL, "vga-alias", pci_address_space(pci),
-                             0xf0000000, 0x1000000);
-    memory_region_add_subregion_overlap(sysmem, 0xf0000000, vga, 10);
 
     nb_nics1 = nb_nics;
     if (nb_nics1 > NE2000_NB_MAX)
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 2/2 prep: remove CPU reset entry point hack related to OpenHack'Ware

In reply to Hervé Poussineau
---
 hw/ppc/prep.c |    3 ---
 1 file changed, 3 deletions(-)
hw/ppc/prep.c +0 -3
index 035b5b2..dfe4a5c 100644
@@ -346,9 +346,6 @@ static void ppc_prep_reset(void *opaque)
     PowerPCCPU *cpu = opaque;
 
     cpu_reset(CPU(cpu));
-
-    /* Reset address */
-    cpu->env.nip = 0xfffffffc;
 }
 
 static const MemoryRegionPortio prep_portio_list[] = {
Signature · 1 line
1.7.10.4
#3 lore raw

Re: [Qemu-devel] [PATCH for-2.0 2/2] prep: remove CPU reset entry point hack related to OpenHack'Ware

Il 01/04/2014 23:19, Hervé Poussineau ha scritto:

Quoted 12 lines
---
 hw/ppc/prep.c |    3 ---
 1 file changed, 3 deletions(-)
hw/ppc/prep.c +0 -0
index 035b5b2..dfe4a5c 100644

hw/ppc/prep.c static void ppc_prep_reset(void *opaque) · line 351

Quoted 9 lines
hw/ppc/prep.c +0 -3
@@ -346,9 +346,6 @@ static void ppc_prep_reset(void *opaque)
     PowerPCCPU *cpu = opaque;
 
     cpu_reset(CPU(cpu));
-
-    /* Reset address */
-    cpu->env.nip = 0xfffffffc;
 }
 
 static const MemoryRegionPortio prep_portio_list[] = {

Is ppc_prep_reset needed at all now?

Paolo

#4 lore raw

Re: [Qemu-devel] [PATCH for-2.0 2/2] prep: remove CPU reset entry point hack related to OpenHack'Ware

Am 02.04.2014 14:48, schrieb Paolo Bonzini:

Quoted 20 lines

Il 01/04/2014 23:19, Hervé Poussineau ha scritto:

Quoted 19 lines
---
 hw/ppc/prep.c |    3 ---
 1 file changed, 3 deletions(-)
hw/ppc/prep.c +0 -3
index 035b5b2..dfe4a5c 100644
@@ -346,9 +346,6 @@ static void ppc_prep_reset(void *opaque)
     PowerPCCPU *cpu = opaque;
 
     cpu_reset(CPU(cpu));
-
-    /* Reset address */
-    cpu->env.nip = 0xfffffffc;
 }
 
Quoted 4 lines

hw/ppc/prep.c static void ppc_prep_reset(void *opaque) · line 351

Quoted 2 lines
hw/ppc/prep.c +0 -0
 static const MemoryRegionPortio prep_portio_list[] = {

Is ppc_prep_reset needed at all now?

I believe so, CPU reset is historically handled by the machines rather than by CPUs themselves. (also Alpha is an oddball in not handling nor implementing reset - some WIP on qom-cpu-alpha)

Regards,
Andreas