|
From: | Alexander Graf |
Subject: | Re: [Qemu-devel] [PATCH] PPC: Use interrupts for escc |
Date: | Sat, 19 Dec 2009 23:08:27 +0100 |
Am 19.12.2009 um 22:58 schrieb Andreas Färber <address@hidden>:
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
Nice, interesting!
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 0which 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.
Yes, I only test whatever I do with -cpu 970fx.
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.
I agree. Please send a patch, CC me and I'll ack it.
`install64 console=ttyPZ0` only gets me to the penguin and appears to hang...
Well, on older kernels this was console=ttyS0.
`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").
Yesh, ADB shouldn't work either so you don't get input devices :-(. Alex
AndreasObviously, 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] |