6.3-RELEASE can not mount root on Cyrix 5530 ATA33 controller

John Baldwin jhb at freebsd.org
Fri Jan 25 06:39:34 PST 2008


On Wednesday 23 January 2008 03:52:39 pm Søren Schmidt wrote:
> On 23Jan, 2008, at 21:09 , Xin LI wrote:
> 
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Yoshihiko Sarumaru wrote:
> >> Hello,
> >> I updated my Geode GX1 PC from RELENG_6_2 to RELENG_6_3 and found
> >> root mount failed after reboot.
> >>
> >> This problem was caused by a change to ata-pci.c to pick up wider old
> >> ata controller as ata-pci devices at ata_legacy() function, and  
> >> roll backing
> >> that file resolved this problem for me.
> >
> > Which revision?
> 
> Actually, its the fix to pci/pci.c that hasn't been backported to 6.x  
> yet...

Rev 1.343?  It should apply to 6.x cleanly.  Patch below:

Index: pci.c
===================================================================
RCS file: /host/cvs/usr/cvs/src/sys/dev/pci/pci.c,v
retrieving revision 1.292.2.23
diff -u -r1.292.2.23 pci.c
--- pci.c	10 Jan 2008 21:17:12 -0000	1.292.2.23
+++ pci.c	25 Jan 2008 14:05:20 -0000
@@ -1898,7 +1898,9 @@
 	/* ATA devices needs special map treatment */
 	if ((pci_get_class(dev) == PCIC_STORAGE) &&
 	    (pci_get_subclass(dev) == PCIS_STORAGE_IDE) &&
-	    (pci_get_progif(dev) & PCIP_STORAGE_IDE_MASTERDEV))
+	    ((pci_get_progif(dev) & PCIP_STORAGE_IDE_MASTERDEV) ||
+	     (!pci_read_config(dev, PCIR_BAR(0), 4) &&
+	      !pci_read_config(dev, PCIR_BAR(2), 4))) )
 		pci_ata_maps(pcib, bus, dev, b, s, f, rl, force, prefetchmask);
 	else
 		for (i = 0; i < cfg->nummaps;)


-- 
John Baldwin


More information about the freebsd-stable mailing list