Recent ata-pci.c change breaks a7m266-d system (Was: Re:"setrootbyname failed" leads to "ffs_mountroot: can't find rootvp" on boot.)

Andre Guibert de Bruet andy at siliconlandmark.com
Mon Apr 26 23:20:00 PDT 2004


On Sun, 25 Apr 2004, Andre Guibert de Bruet wrote:

> (Sources pulled from CVS at Sun Apr 25 16:50:55 UTC 2004, an hour ago).
>
> Mounting root from ufs:/dev/ad4s1a
> setrootbyname failed
> ffs_mountroot: can't find rootvp
> Root mount failed: 6
>
> Manual root filesystem specification:
>   <fstype>:<device>  Mount <device> using filesystem <fstype>
>                        eg. ufs:da0s1a
>   ?                  List valid disk boot devices
>   <empty line>       Abort manual input
>
> mountroot>

Okay, I found the commit that caused this problem. The following commit
breaks my SMP desktop:
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/ata/ata-pci.c.diff?r1=1.80&r2=1.81&f=h

Reverting the one line fixes things. I've attached a trivial one-line
patch that reverts the change. Could this be committed?

pciconf -vl: http://bling.properkernel.com/pciconf-vl.txt
dmesg.boot: http://bling.properkernel.com/dmesg.boot.txt

Regards,

> Andre Guibert de Bruet | Enterprise Software Consultant >
> Silicon Landmark, LLC. | http://siliconlandmark.com/    >
-------------- next part --------------
Index: ata-pci.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-pci.c,v
retrieving revision 1.81
diff -u -r1.81 ata-pci.c
--- ata-pci.c	24 Apr 2004 16:32:06 -0000	1.81
+++ ata-pci.c	27 Apr 2004 05:42:43 -0000
@@ -177,7 +177,7 @@
     ctlr->locking = ata_pci_locknoop;
 
     progif = pci_read_config(dev, PCIR_PROGIF, 1);
-    if ((progif & 0x80))
+    if ((progif & 0x85) == 0x80)
 	prisec = 1;
 
     /* if needed try to enable busmastering */


More information about the freebsd-current mailing list