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.
pgp0YqKfDLzci.pgp
Description: PGP signature