Am 18.12.2009 um 23:37 schrieb Alexander Graf:
When using the escc with Linux, we need interrupts. So instead of
creating
a 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 machine
That'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
that
follows this one. Please update the binary then.
Signed-off-by: Alexander Graf <ag...@suse.de>
---
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