[Qemu-devel] SCSI bus failures with qemu-arm in kernel 3.8+
From: Peter Maydell <hidden>
Date: 2013-08-15 18:05:46
Also in:
lkml, qemu-devel
On 15 August 2013 18:54, Guenter Roeck [off-list ref] wrote:
On Thu, Aug 15, 2013 at 05:45:42PM +0100, Peter Maydell wrote:quoted
On 13 August 2013 04:40, Guenter Roeck [off-list ref] wrote:quoted
Patch tested and working with qemu 1.5.2, using the configuration file from the yocto project. Patch applied on top of kernel version 3.11-rc5.OK, I tested this on PB926+PCI backplane hardware, and it is definitely better than current mainline, in that the test USB card that I have no longer causes the kernel to generate this sort of backtrace:Do you mean my patch fixes the traceback below as a side effect ? Would be great ... it would be one more reason to get it applied.
Yes, exactly -- the kernel currently has the wrong irq mapping, which causes the traceback (ie h/w asserts irq 93 but the kernel is listening on something else). That the patch fixes this confirms that it is the behaviour of hardware as well as of QEMU.
quoted
However it still doesn't seem to reliably detect the USB harddisk plugged into the card, so I think there may be further issues, possibly some subset of those Arnd identified and fixed with this patch: http://permalink.gmane.org/gmane.linux.ports.arm.kernel/93397Does it get better if you apply Arnd's patch ?
Arnd's patch is ancient and won't apply as is (due to intervening changes and also because some of the things it fixes were fixed in later patches); I'm currently trying to extract the relevant parts. If you want you can confirm that I/O port PCI access is broken on QEMU too -- disable CONFIG_SCSI_SYM53C8XX_MMIO so the driver uses PCI IO rather than MMIO and you'll see QEMU's SCSI device doesn't work any more.
quoted
so I'd like to continue testing. The other thing this patch should (IMHO) have is the line in pci_versatile_setup() which tells QEMU that the kernel really does expect hardware-like behaviour:
quoted
(Without this line QEMU will guess whether the kernel is broken or not and will get it right most but not necessarily all of the time.)Might make sense, but I think it should be a separate patch.
It needs to go in the same patch, because a kernel with the fixed irq remapping must also tell QEMU it is fixed; if you split the two then at the point between the two patches the kernel is broken for bisection purposes.
If I understand correctly, my patch fixes the SCSI problem. Is that correct ? If so, can we get it applied to mainline ?
I'd rather get to a point where I have the hardware definitely completely working first. There's no real hurry, this has been broken for months and months. -- PMM