[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] ppc_oldworld, ppc_newworld: fix escc BAR related cr
From: |
Avi Kivity |
Subject: |
[Qemu-devel] [PATCH] ppc_oldworld, ppc_newworld: fix escc BAR related crash |
Date: |
Wed, 24 Aug 2011 21:40:20 +0300 |
ppc maps the escc mmio region both at a fixed offset (as a sysbus area) and as
part of a PCI BAR.
This crashes, since a MemoryRegion may have only one parent. Use an alias so
we have a separate
MemoryRegion for the BAR.
Signed-off-by: Avi Kivity <address@hidden>
---
hw/ppc_newworld.c | 5 ++++-
hw/ppc_oldworld.c | 6 ++++--
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c
index 4727e07..fbd443d 100644
--- a/hw/ppc_newworld.c
+++ b/hw/ppc_newworld.c
@@ -146,6 +146,7 @@ static void ppc_core99_init (ram_addr_t ram_size,
MacIONVRAMState *nvr;
int bios_size;
MemoryRegion *pic_mem, *dbdma_mem, *cuda_mem, *escc_mem;
+ MemoryRegion *escc_bar = g_new(MemoryRegion, 1);
MemoryRegion *ide_mem[3];
int ppc_boot_device;
DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
@@ -328,6 +329,8 @@ static void ppc_core99_init (ram_addr_t ram_size,
escc_mem = escc_init(0x80013000, pic[0x25], pic[0x24],
serial_hds[0], serial_hds[1], ESCC_CLOCK, 4);
+ memory_region_init_alias(escc_bar, "escc-bar",
+ escc_mem, 0, memory_region_size(escc_mem));
for(i = 0; i < nb_nics; i++)
pci_nic_init_nofail(&nd_table[i], "ne2k_pci", NULL);
@@ -350,7 +353,7 @@ static void ppc_core99_init (ram_addr_t ram_size,
adb_mouse_init(&adb_bus);
macio_init(pci_bus, PCI_DEVICE_ID_APPLE_UNI_N_KEYL, 0, pic_mem,
- dbdma_mem, cuda_mem, NULL, 3, ide_mem, escc_mem);
+ dbdma_mem, cuda_mem, NULL, 3, ide_mem, escc_bar);
if (usb_enabled) {
usb_ohci_init_pci(pci_bus, -1);
diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
index 0071fc9..235d2ef 100644
--- a/hw/ppc_oldworld.c
+++ b/hw/ppc_oldworld.c
@@ -83,7 +83,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size,
MacIONVRAMState *nvr;
int bios_size;
MemoryRegion *pic_mem, *dbdma_mem, *cuda_mem;
- MemoryRegion *escc_mem, *ide_mem[2];
+ MemoryRegion *escc_mem, *escc_bar = g_new(MemoryRegion, 1), *ide_mem[2];
uint16_t ppc_boot_device;
DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
void *fw_cfg;
@@ -241,6 +241,8 @@ static void ppc_heathrow_init (ram_addr_t ram_size,
escc_mem = escc_init(0x80013000, pic[0x0f], pic[0x10], serial_hds[0],
serial_hds[1], ESCC_CLOCK, 4);
+ memory_region_init_alias(escc_bar, "escc-bar",
+ escc_mem, 0, memory_region_size(escc_mem));
for(i = 0; i < nb_nics; i++)
pci_nic_init_nofail(&nd_table[i], "ne2k_pci", NULL);
@@ -269,7 +271,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size,
pmac_format_nvram_partition(nvr, 0x2000);
macio_init(pci_bus, PCI_DEVICE_ID_APPLE_343S1201, 1, pic_mem,
- dbdma_mem, cuda_mem, nvr, 2, ide_mem, escc_mem);
+ dbdma_mem, cuda_mem, nvr, 2, ide_mem, escc_bar);
if (usb_enabled) {
usb_ohci_init_pci(pci_bus, -1);
--
1.7.5.3
- Re: [Qemu-devel] PPC* and Sparc32 crash, (continued)
- Re: [Qemu-devel] PPC* and Sparc32 crash, Edgar E. Iglesias, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Edgar E. Iglesias, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Edgar E. Iglesias, 2011/08/24
- [Qemu-devel] [PATCH] gt64xxx: fix crash in gt64120_pci_mapping(), Avi Kivity, 2011/08/24
- Re: [Qemu-devel] [PATCH] gt64xxx: fix crash in gt64120_pci_mapping(), Edgar E. Iglesias, 2011/08/24
Re: [Qemu-devel] PPC* and Sparc32 crash, Blue Swirl, 2011/08/24
Re: [Qemu-devel] PPC* and Sparc32 crash, Avi Kivity, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Blue Swirl, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Avi Kivity, 2011/08/24
- [Qemu-devel] [PATCH] ppc_oldworld, ppc_newworld: fix escc BAR related crash,
Avi Kivity <=
- Re: [Qemu-devel] PPC* and Sparc32 crash, Avi Kivity, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Blue Swirl, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Avi Kivity, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Blue Swirl, 2011/08/24
- Re: [Qemu-devel] PPC* and Sparc32 crash, Avi Kivity, 2011/08/25
- Re: [Qemu-devel] PPC* and Sparc32 crash, Blue Swirl, 2011/08/25
- Re: [Qemu-devel] PPC* and Sparc32 crash, Avi Kivity, 2011/08/25
- Re: [Qemu-devel] PPC* and Sparc32 crash, Blue Swirl, 2011/08/25