FUA and 311x (was Re: LibPATA code issues / 2.6.15.4)

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

 



Eric D. Mudama wrote:
I didn't know offhand so we plugged in a bus analzyer and took a look
here in the lab... We didn't have a 3114 lying around, but issuing the
Write DMA FUA (0x3D) opcode on a 3112 resulted in a D0h soft hang.  I
think they're related (4-port vs 2-port).
Looking at the public docs posted at 
http://gkernel.sourceforge.net/specs/sii/ ...  FUA is not in the list of 
supported opcodes (Table 10-1).
The 311x does have a facility that allows the driver to specify the 
command protocol associated with an unknown-to-the-chip opcode.  Someone 
sufficiently interested could investigate using the VS Unlock and VS Set 
Command Protocol commands to patch in support (section 10.4.*).
For libata, I think an ATA_FLAG_NO_FUA would be appropriate for 
situations like this...  assume FUA is supported in the controller, and 
set a flag where it is not.  Most chips will support FUA, either by 
design or by sheer luck.  The ones that do not support FUA are the 
controllers that snoop the ATA command opcode, and internally choose the 
protocol based on that opcode.  For such hardware, unknown opcodes will 
inevitably cause problems.
	Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux