[SeaBIOS] [PATCH] x86: fix read{b, w, l} and write{b, w, l} functions

Ameya Palande 2ameya at gmail.com
Thu Feb 19 01:38:43 CET 2015


Hi Kevin,

On Wed, Feb 18, 2015 at 12:15 PM, Kevin O'Connor <kevin at koconnor.net> 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?

Cheers,
Ameya.



More information about the SeaBIOS mailing list