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 [email protected]
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]