Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jan 2008 09:05:48 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-stable@freebsd.org
Cc:        stable@freebsd.org, Yoshihiko Sarumaru <ysarumaru@gmail.com>, d@delphij.net, =?iso-8859-1?q?S=F8ren_Schmidt?= <sos@deepcore.dk>, sos@freebsd.org
Subject:   Re: 6.3-RELEASE can not mount root on Cyrix 5530 ATA33 controller
Message-ID:  <200801250906.16186.jhb@freebsd.org>
In-Reply-To: <00278157-73F7-4580-95DB-AAAA371DF924@deepcore.dk>
References:  <559697920801231136s1dc42d42q41b614596e57fbf3@mail.gmail.com> <47979EFB.2050601@delphij.net> <00278157-73F7-4580-95DB-AAAA371DF924@deepcore.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 23 January 2008 03:52:39 pm S=F8ren Schmidt wrote:
> On 23Jan, 2008, at 21:09 , Xin LI wrote:
>=20
> > -----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 =20
> >> roll backing
> >> that file resolved this problem for me.
> >
> > Which revision?
>=20
> Actually, its the fix to pci/pci.c that hasn't been backported to 6.x =20
> yet...

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

Index: pci.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
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
=2D-- 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) =3D=3D PCIC_STORAGE) &&
 	    (pci_get_subclass(dev) =3D=3D PCIS_STORAGE_IDE) &&
=2D	    (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 =3D 0; i < cfg->nummaps;)


=2D-=20
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801250906.16186.jhb>