qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] i8257: fix Terminal Count status


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] i8257: fix Terminal Count status
Date: Mon, 29 Feb 2016 15:26:52 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0


On 25/02/2016 13:45, Hervé Poussineau wrote:
> When a DMA transfer is done (ie all bytes have been transfered), the 
> corresponding
> Terminal Count bit must be set in the status register.
> This bit is already cleared in i8257_read_cont and i8257_write_cont when 
> required.
> 
> This fixes (at least) floppy transfer in IBM 40p firmware, which checks in DMA
> controller if everything went fine.
> 
> Signed-off-by: Hervé Poussineau <address@hidden>
> ---
>  hw/dma/i8257.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
> index 5a52707..6078893 100644
> --- a/hw/dma/i8257.c
> +++ b/hw/dma/i8257.c
> @@ -342,6 +342,10 @@ static void i8257_channel_run(I8257State *d, int ichan)
>                               r->now[COUNT], (r->base[COUNT] + 1) << ncont);
>      r->now[COUNT] = n;
>      ldebug ("dma_pos %d size %d\n", n, (r->base[COUNT] + 1) << ncont);
> +    if (n == (r->base[COUNT] + 1) << ncont) {
> +        ldebug("transfer done\n");
> +        d->status |= (1 << ichan);
> +    }
>  }
>  
>  static void i8257_dma_run(void *opaque)
> 

Queued, thanks!

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]