On Sat, May 12, 2012 at 7:06 PM, Artyom Tarasenko atar4qemu@gmail.com wrote:
On Sat, May 12, 2012 at 6:29 PM, Blue Swirl blauwirbel@gmail.com wrote:
On Sat, May 12, 2012 at 3:57 PM, Artyom Tarasenko atar4qemu@gmail.com wrote:
On Sat, May 12, 2012 at 1:42 PM, Blue Swirl blauwirbel@gmail.com wrote:
Based on Artyom's Sparc64 work (thanks a lot!), I added some minimal support for virtio-block and interrupt nodes.
With these patches and QEMU HEAD, Linux can boot like Artyom describes in http://tyom.blogspot.de/2012_05_01_archive.html but without any manual OpenBIOS setup.
My test kernel - 3.3.2 - still needs the ebus interrupt mapping properties:
cd /pci@1fe,0/ebus 000001fe encode-int 020003f8 encode-int encode+ 1 encode-int encode+ ffe29140 encode-int encode+ 2b encode-int encode+ " interrupt-map" property 000001ff encode-int ffffffff encode-int encode+ 00000003 encode-int encode+ " interrupt-map-mask" property device-end boot
Updated patch attached. This change seems to help the serial driver.
Looks good. The result seems to be identical with my hack, but there is one point I'd like to discuss:
cd /pci@1fe,0/pci-ata ok .properties name "pci-ata" [...] interrupts 0
I'm not sure that this is a valid value for the interrupts property.
Tarl, Jakub, can you comment whether 0 is allowed?
If it's not, I guess it has to be changed back to 1, and the additional interrupt mappings have to be added to the root pci node. On the other hand, if no one objects, we can apply the patch as-is, and say that it's good enough for the only guest OS which currently supports these devices (virtio and cmd646).
Blue Swirl (2): pci: identify virtio-scsi devices Sparc64: fix interrupt properties
drivers/ide.c | 2 ++ drivers/pc_serial.c | 3 +++ drivers/pci.c | 23 +++++++++++++++++++++++ drivers/pci_database.c | 19 ++++++++++++++++++- drivers/pci_database.h | 1 + include/drivers/pci.h | 3 +++ 6 files changed, 50 insertions(+), 1 deletion(-)
-- 1.7.10