[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] rombios/ata: Wait for BSY to clear after write



On 13/06/17 09:34, Ross Lagerwall wrote:
> After rombios transfers the data for a write, it checks the status and
> fails if BSY is set. qemu-trad doesn't set BSY for PIO writes, but QEMU
> upstream does, and this causes rombios to fail writes because they are
> marked as BSY. Instead, wait for BSY to clear after a write.
>
> INT 13 writes are probably rarely used these days, but they are used by
> GRUB 2 to write to its environment file which happens by default on
> Ubuntu.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>

Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

Ian/Wei: RomBIOS should probably join hvmloader under x86
maintainership, if you don't object?

> ---
>  tools/firmware/rombios/rombios.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/firmware/rombios/rombios.c 
> b/tools/firmware/rombios/rombios.c
> index 58ace9b..51558ee 100644
> --- a/tools/firmware/rombios/rombios.c
> +++ b/tools/firmware/rombios/rombios.c
> @@ -3226,7 +3226,7 @@ ASM_END
>      current++;
>      write_word(ebda_seg, &EbdaData->ata.trsfsectors,current);
>      count--;
> -    status = inb(iobase1 + ATA_CB_STAT);
> +    status = await_ide(NOT_BSY, iobase1, IDE_TIMEOUT);
>      if (count == 0) {
>        if ( (status & (ATA_CB_STAT_BSY | ATA_CB_STAT_RDY | ATA_CB_STAT_DF | 
> ATA_CB_STAT_DRQ | ATA_CB_STAT_ERR) )
>            != ATA_CB_STAT_RDY ) {


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.