Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: amd64-current (still?) won't boot (another one)
On Sat, Aug 11, 2012 at 09:45:36PM +0200, Manuel Bouyer wrote:
> On Sat, Aug 11, 2012 at 07:09:31PM +0200, Markus W Kilbinger wrote:
> > Just build / tried a new actual kernel with your workaround: It fixes
> > (mostly) the problem: My machine is functioning normally again, all
> > harddisk are found and run fine.
> >
> > Small 'but': The mainboards disk activity LED stays always lit !?
> >
> > Just cosmetics?
>
> I'll see if I can reproduce this problem on an amd machine I have here.
Or maybe you can try the attached patch (I can't test before one week) ?
--
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.41
diff -u -p -u -r1.41 ahcisata_core.c
--- ahcisata_core.c 10 Aug 2012 16:35:00 -0000 1.41
+++ ahcisata_core.c 11 Aug 2012 20:00:26 -0000
@@ -644,6 +644,7 @@ ahci_do_reset_drive(struct ata_channel *
uint32_t sig;
KASSERT((AHCI_READ(sc, AHCI_P_CMD(chp->ch_channel)) & AHCI_P_CMD_CR) ==
0);
+again:
/* clear port interrupt register */
AHCI_WRITE(sc, AHCI_P_IS(chp->ch_channel), 0xffffffff);
/* clear SErrors and start operations */
@@ -660,7 +661,6 @@ ahci_do_reset_drive(struct ata_channel *
if (drive > 0) {
KASSERT(sc->sc_ahci_cap & AHCI_CAP_SPM);
}
-again:
/* polled command, assume interrupts are disabled */
/* use slot 0 to send reset, the channel is idle */
cmd_h = &achp->ahcic_cmdh[0];
@@ -701,6 +701,7 @@ again:
* try again with port 0
*/
drive = 0;
+ ahci_channel_stop(sc, chp, flags);
goto again;
}
aprint_error("%s channel %d: clearing WDCTL_RST failed "
Home |
Main Index |
Thread Index |
Old Index