On Wed, Feb 18, 2015 at 12:15 PM, Kevin O'Connor firstname.lastname@example.org wrote:
On Tue, Feb 17, 2015 at 02:00:49PM -0800, Ameya Palande wrote:
Use barrier() for memory mapped IO functions.
This fixes pvscsi driver to boot on QEMU's pvscsi controller. Test command: qemu -m 512 --enable-kvm -device pvscsi,id=pvscsi0 -device scsi-disk,bus=pvscsi0.0,drive=drive0 -drive id=drive0,if=none,file=ubuntu1410.img,if=none -bios seabios/out/bios.bin
Thanks. I didn't think it was standard for a barrier to be present in these functions, but I now see that Linux also uses barrier here. So, I've committed your patch (with a couple of minor changes).
Thanks for applying this patch!
Since memory mapped read and write are now protected by barriers, how should we deal about use of (potentially redundant) barriers in: src/hw/usb-ehci.c src/hw/usb-ohci.c src/hw/usb-uhci.c
Interestingly "src/hw/usb-xhci.c" doesn't use barrier() at all! Wondering if that was correct?
Thanks, also, for tracking down the PVSCSI problem.
I could get it booting only under QEMU. I wanted to test seabios under ESXi to make sure it really boots under ESXi's pvscsi implementation. Does anyone know a way to get seabios running under ESXi so that pvscsi validity can be checked?