On Tue, Jan 12, 2010 at 8:34 PM, Alexander Graf <ag...@suse.de> wrote: > > On 12.01.2010, at 20:45, Blue Swirl wrote: > >> On Tue, Jan 12, 2010 at 11:58 AM, Alexander Graf <ag...@suse.de> wrote: >>> I'm trying to get the PPC64 system emulation target working finally. >>> While doing so, I ran into several issues, all related to PCI this time. >>> >>> This patchset fixes all the PCI config space access and PCI interrupt >>> mapping issues I've found on PPC64. Using this and a patched OpenBIOS >>> version, I can successfully access IDE devices and was booting a guest >>> into the shell from IDE using serial console. >>> >>> To leverage this patch, you also need a few patches to OpenBIOS. I'll >>> present them to the OpenBIOS list, but in general getting patches into >>> Qemu is harder than getting them into OpenBIOS. So I want to wait for >>> the review process here first. >>> >>> Find the OpenBIOS patch at: http://alex.csgraf.de/openbios-ppc-u3.patch >> >> About the OpenBIOS patch, could you move the PCI_INT_MAP defines to a >> PPC-specific header and make pci_host_set_interrupt_map() contents >> surrounded by #ifdef CONFIG_PPC (to make it empty function for other >> arches)? > > Well, other archs should be able to use the same code. If OpenBIOS knows how > interrupts work for a particular device, it really should tell the OS about > it too IMHO.
I'm not so sure. Here's an example of a Sparc64 interrupt-map: Node 0xf005f9d4 bus-range: 00000001.00000001 scsi-initiator-id: 00000007 compatible: 70636931.3038652c.35303030.00706369 66mhz-capable: fast-back-to-back: devsel-speed: 00000001 class-code: 00060400 revision-id: 00000011 device-id: 00005000 vendor-id: 0000108e interrupt-map: 00010800.00000000.00000000.00000001.f005f1e0.00000021.00011000.00000000.00000000.00000001.f005f1e0.0000000f.00011800.00000000.00000000.00000001.f005f1e0.00000020 interrupt-map-mask: 00fff800.00000000.00000000.00000007 #interrupt-cells: 00000001 slot-names: 00000000 no-probe-list: '0' clock-frequency: 01f78a40 model: 'SUNW,simba' #address-cells: 00000003 #size-cells: 00000002 reg: 00000900.00000000.00000000.00000000.00000000 device_type: 'pci' name: 'pci'