On Fri, Aug 08, 2014 at 05:23:31PM +0100, Mark Cave-Ayland wrote:
> This patchset came out of my work trying to boot NetBSD on SPARC64.
> 
> According to the datasheet, the 646U2 UDMA interrupt status bits are exact 
> mirrors of the normal DMA interrupt status bits, and an interrupt can be
> cleared by writing a 1 to the relevant bit in PCI configuration space.
> 
> The existing implementation caused NetBSD to fail since it would always check
> and clear the normal DMA interrupt status bit, even if UDMA was being used.
> Hence this patchset ensures that the current interrupt status is always 
> consistent between both normal DMA and UDMA registers, including when either 
> one of the interrupt status bits is cleared by writing to PCI configuration 
> space.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>
> 
> Mark Cave-Ayland (5):
>   cmd646: add constants for CNTRL register access
>   cmd646: synchronise DMA interrupt status with UDMA interrupt status
>   cmd646: switch cmd646_update_irq() to accept PCIDevice instead of
>     PCIIDEState
>   cmd646: allow MRDMODE interrupt status bits clearing from PCI config
>     space
>   cmd646: synchronise UDMA interrupt status with DMA interrupt status
> 
>  hw/ide/cmd646.c |   94 
> +++++++++++++++++++++++++++++++++++++++++++++++++------
>  1 file changed, 85 insertions(+), 9 deletions(-)

Looks good but I don't know the CMD646 registers.  I left a question
about the last patch.

Attachment: pgp0YqKfDLzci.pgp
Description: PGP signature

Reply via email to