Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: latest current fails to mount root



I also had this problem on a Toshiba A200-1Fj,
but could not fix it from the CMOS settings.

The attached patch helped me, but I am not sure what
the delay should actually be waiting for.

Additionally the reported error is zero (no error?)
in ata_get_params (ata_c.r_error) and I could not figure
out where AT_ERROR was first set (I tried a aprint_error
in ahci_cmd_complete but never saw anything).

I hope this information may be of some use.

--
Kind regards,

Yorick Hardy
--- sys/dev/ata/wd.c.orig       2008-04-11 21:09:43.000000000 +0200
+++ sys/dev/ata/wd.c    2008-04-12 09:57:00.000000000 +0200
@@ -1781,8 +1781,14 @@
 int
 wd_get_params(struct wd_softc *wd, u_int8_t flags, struct ataparams *params)
 {
+       int err = wd->atabus->ata_get_params(wd->drvp, flags, params);
 
-       switch (wd->atabus->ata_get_params(wd->drvp, flags, params)) {
+       if (err == CMD_ERR) {
+               delay(5000);
+               err = wd->atabus->ata_get_params(wd->drvp, flags, params);
+       }
+
+       switch (err) {
        case CMD_AGAIN:
                return 1;
        case CMD_ERR:


Home | Main Index | Thread Index | Old Index