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>