Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: ahcisata & pmp (was: Re: amd64-current (still?) won't boot (another one))
On Tue, Dec 11, 2012 at 06:51:12AM +0000, David Holland wrote:
> [...]
> > there is a aprint_debug() in ahci_exec_fis() with some values that
> > should give details about what failed; can you post it ?
>
> It will be probably this weekend before I can try another test kernel.
> (I did try booting more verbosely at the time, but this caused the
> ahcisata stuff to be scrolled off by a ton of crypto messages.)
>
> > Does this controller have CLO in its capabilities ?
>
> ahcisata0 at pci0 dev 10 function 0: NVIDIA nForce MCP65 AHCI Controller
> (rev. 0xa3)
> ahcisata0: interrupting at ioapic0 pin 5
> ahcisata0: 64-bit DMA
> ahcisata0: AHCI revision 1.10, 4 ports, 32 slots, CAP
> 0xe7229f83<CCCS,PMD,SPM,ISS=0x2=Gen2,SCLO,SAL,SALP,SSNTF,SNCQ,S64A>
>
> so, apparently not, but this readout is from a kernel without the port
> multiplier code. (If that matters.)
I don't know why it's called SCLO here, but it's there (this is:
#define AHCI_CAP_CLO 0x01000000 /* Command list override */
)
Assuming FreeBSD can probe your drive, can you try the attached patch ?
I don't know why it would matters, but FreeBSD has this delay ...
BTW, FreeBSD doens't have the BADPMP quirks for the nvidia controllers ...
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Index: ahcisata_core.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/ahcisata_core.c,v
retrieving revision 1.45
diff -u -p -u -r1.45 ahcisata_core.c
--- ahcisata_core.c 26 Oct 2012 09:59:11 -0000 1.45
+++ ahcisata_core.c 12 Dec 2012 12:03:56 -0000
@@ -682,6 +682,9 @@ again:
default:
break;
}
+ /* from freebsd, wait before clearing RST */
+ delay(50);
+
cmd_h->cmdh_flags = htole16(RHD_FISLEN / 4 |
(drive << AHCI_CMDH_F_PMP_SHIFT));
cmd_h->cmdh_prdbc = 0;
Home |
Main Index |
Thread Index |
Old Index