lkml.org 
[lkml]   [2006]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectFUA and 311x (was Re: LibPATA code issues / 2.6.15.4)
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/

\
 
 \ /
  Last update: 2006-03-02 02:58    [W:0.050 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site