Thread (14 messages) 14 messages, 3 authors, 2019-12-25

Re: linux: sata_nv: adma support

From: Robert Hancock <hidden>
Date: 2015-08-26 04:01:30
Also in: lkml

On Tue, Aug 25, 2015 at 6:58 AM, Pali Rohár [off-list ref] wrote:
On Tuesday 25 August 2015 07:20:05 Mark Lord wrote:
quoted
On 15-08-01 09:45 PM, Robert Hancock wrote:
quoted
On Sat, Aug 1, 2015 at 2:09 PM, Pali Rohár [off-list ref] wrote:
quoted
On Thursday 25 December 2014 07:22:13 Robert Hancock wrote:
quoted
On Tue, Dec 23, 2014 at 1:51 PM, Pali Rohár [off-list ref]
wrote:
quoted
Hello,

I have nvidia nforce4 motherboard with nvidia sata controller:
..
quoted
quoted
quoted
It looks like something is trying to issue a command to disable APM
power management on the drive, and the command fails (likely because
it doesn't support that command).
..
quoted
quoted
 /sbin/hdparm -B254 $DRIVE

And that -B254 cause above error message in dmesg log. Output from
hdparm is:

 /dev/sda:
  setting Advanced Power Management level to 0xfe (254)
  APM_level      = not supported
..
quoted
quoted
 $ sudo hdparm -I /dev/sda | grep -i power
            *    Power Management feature set
That's not the same as APM ("Advanced" Power Management).
quoted
However, these NVIDIA SATAs are black boxes, and rather buggy ones at that,
so it's possible there's an unknown issue there.
I wonder if NVIDIA simply bought out the IP from Pacific Digital
when they went bust?  Pacific Digital invented the original "ADMA",
and the pdc_adma.c driver in the kernel knows all about it.
If the IP is pretty similar (identical?) then we could probably
improve things.
Can you check if nvidia ADMA code and that Pacific Digital ADMA code is
similar or not?
The ADMA spec that Pacific Digital adapter (somewhat) implements was
documented in a standard, T13 1510D, ATA/ATAPI Host Adapters Standard.
My guess is that is where NVIDIA got the ideas for this controller
setup. I would be fairly surprised if the controller actually
contained any Pacific Digital IP, as the NVIDIA controllers are quite
different (the original ADMA spec didn't envision SATA, NCQ or 64-bit
DMA while the NVIDIA controllers support these for example).

Even if there is some shared IP, the issues with these controllers
seem to be more controller bugs than issues with how the controller is
being used. In fact, the later NVIDIA Windows drivers suspiciously
removed all references to NCQ support in the control panel, which
suggests that maybe even they gave up on it. Even if you don't use any
ADMA features at all (even when using the default Microsoft IDE driver
in Windows), the error handling is very shaky - things like disc read
errors on an optical drive connected to the controller will sometimes
hard-lock the machine.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help