Thread (16 messages) 16 messages, 3 authors, 2004-09-30

Re: [PATCH] updates to Vitesse SATA driver

From: Jeff Garzik <hidden>
Date: 2004-09-30 03:33:08

Dave wrote:
I believe waiting for you to comment on whether to put in a hook for
controllers that do not support ATA_NIEN so it can mask/unmask IRQ
with a fixup.  Even though the spec for this particular SATA
controller says the bit is reserved, it seems to work just fine. From
my understanding, the registers are actually on the drives, and the
ones we write to the HBAs are just shadow registers right? I suppose
either we can use the "undocumented" reserved bit for ATA_NIEN, or
provide some sort of special hook in lib_ata core to clear the
interrupt bit....

Close.

The shadow registers are an entity that exists solely on the host 
controller.  The entire register block is converted internally by the 
silicon to a SATA Host-to-Device Register FIS, and the FIS is what is 
sent to the SATA device.

As you can see in the SATA specification (www.serialata.org), each SATA 
FIS contains an interrupt bit.  The decision about when and how to set 
this interrupt bit is highly controller-specific.  Sometimes it is 
mapped to nIEN in the Device Control register.  Sometimes it is 
completely ignored (as with AHCI), and the controller sends interrupts 
based on various bits set in an interrupt-status register.

In any case, it is still not clear what you are trying to achieve :(

In what way is sata_vsc's current ATA_NIEN handling code deficient?

	Jeff

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help