|
From: | Andreas Färber |
Subject: | Re: [Qemu-devel] [PATCH] PPC: Use interrupts for escc |
Date: | Sat, 19 Dec 2009 22:58:15 +0100 |
Am 18.12.2009 um 23:37 schrieb Alexander Graf:
When using the escc with Linux, we need interrupts. So instead of creatinga dummy device, let's just map them to the openpic we have anyways. This makes Linux on PPC64 with console=ttyPZ0 work.
With these patches and OpenBIOS r646, booting 'install64' on the following Debian CDs worked for me:
debian-40r4a-powerpc-netinst.iso debian-503-powerpc-netinst.iso By default however you get the following error: invalid/unsupported opcode: 1e - 12 - 1b (782106e4) 00000000014080e4 1 invalid/unsupported opcode: 00 - 00 - 00 (00000000) 0000000000008734 0 which translates to: qemu-system-ppc64 is using a 32-bit CPU by default.'-cpu ppc64' (970FX according to OpenBIOS) worked, while '-cpu 970' was not recognized by OpenBIOS.
If you change only the CPU to 'ppc64', it will be rejected: qemu: hardware error: Bus model not supported on OldWorld Mac machineThat's why Alex mentioned '-M mac99' elsewhere, I guess. Can't we change the defaults? I believe the G5 was the first 64-bit Mac and is considered New World, so Old World shouldn't even be selectable IMO.
`install64 console=ttyPZ0` only gets me to the penguin and appears to hang... `install64` gets me through to the installer screen on Linux/amd64 host. There are merely some FATALs visible while trying to load drivers for therm_* and windfarm_* devices ("No such device").
Andreas
Obviously, this change needs to be reflected in openbios. Patch for thatfollows this one. Please update the binary then. Signed-off-by: Alexander Graf <address@hidden> --- hw/ppc_newworld.c | 6 +----- 1 files changed, 1 insertions(+), 5 deletions(-) diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c index b29a7bc..a09f096 100644 --- a/hw/ppc_newworld.c +++ b/hw/ppc_newworld.c @@ -108,7 +108,6 @@ static void ppc_core99_init (ram_addr_t ram_size, MacIONVRAMState *nvr; int nvram_mem_index; int vga_bios_size, bios_size; - qemu_irq *dummy_irq;int pic_mem_index, dbdma_mem_index, cuda_mem_index, escc_mem_index;int ppc_boot_device; DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS]; @@ -318,10 +317,7 @@ static void ppc_core99_init (ram_addr_t ram_size, /* init basic PC hardware */ pci_vga_init(pci_bus, vga_bios_offset, vga_bios_size); - /* XXX: suppress that */ - dummy_irq = i8259_init(NULL); -- escc_mem_index = escc_init(0x80013000, dummy_irq[4], dummy_irq[5],+ escc_mem_index = escc_init(0x80013000, pic[0x25], pic[0x24],serial_hds[0], serial_hds[1], ESCC_CLOCK, 4);for(i = 0; i < nb_nics; i++) -- 1.6.0.2
[Prev in Thread] | Current Thread | [Next in Thread] |