Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Feb 2007 17:46:08 +0100
From:      Karol Kwiatkowski <karol.kwiat@gmail.com>
To:        freebsd-current@freebsd.org
Subject:   [SOLVED] Re: i386 kernel just stops booting
Message-ID:  <45E5B1D0.6030401@gmail.com>
In-Reply-To: <45E44704.7080400@gmail.com>
References:  <45E44704.7080400@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigEF0E103F8EA98BC05E452C68
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable

Karol Kwiatkowski wrote:
> Hello everyone,
>=20
> I'm trying to get CURRENT installed on i386 desktop machine, but kernel=

> stops booting after some time [1]. No error, even with verbose logging.=

> At that point keyboard does not respond so manual reset is the only
> option. Nothing is logged into dmesg or messages.
>=20
> [1]
[...]
> found-> vendor=3D0x1102, dev=3D0x4001, revid=3D0x00
>      bus=3D2, slot=3D8, func=3D2
>      class=3D0c-00-10, hdrtype=3D0x00, mfdev=3D1
>      cmdreg=3D0x0116, statreg=3D0x0210, cachelnsz=3D64 (dwords)
>      lattimer=3D0x20 (960 ns), mingnt=3D0x02 (500 ns), maxlat=3D0x04 (1=
000 ns)
>      intpin=3Db, irq=3D5
>      powerspec 2  supports D0 D1 D2 D3  current D0
>      map[10]: type 1, range 32, base ff5ff800, size 11, enabled
> pcib1: requested memory range 0xff5ff800-0xff5fffff: good
>      map[14]: type 1, range 32, base ff5f8000, size 14, enabled
> pcib1: requested memory range 0xff5f8000-0xff5fbfff: good
> pcib1: matched entry for 2.8.INTB (src \\_SB_.LNKB:0)
> pci_link1: Picked IRQ 17 with weight 0
> ioapic0: Changing polarity for pin 17 to high
> pcib1: slot 8 INTB routed to irq 17 via \\_SB_.LNKB
> [ here it stops responding ]

Gee, after few hours of looking at the sources (yeah, kernel internals
newbie here :) I've found that VPD scanning is the problem. Workaround
to this is to disable VPD reading by hw.pci.enable_vpd=3D0.

Now that I know of it, I 've found it is documented in a comment for
revision 1.339:
	http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/pci/pci.c


FYI, it's this code in sys/dev/pci/pci.c (rev. 1.343):

% static void
% pci_read_extcap(device_t pcib, pcicfgregs *cfg)
[...]
% case PCIY_VPD:		/* PCI Vital Product Data */
% 	if (pci_do_vpd) {
% 		cfg->vpd.vpd_reg =3D ptr;
% 		pci_read_vpd(pcib, cfg);
% 	}
% break;

Apparently this hangs while scanning PV-BT878P+ TV card (pci2:10:0) [1].


Cheers,

Karol


[1] PixelView PlayTV Pro PV-BT878P+ rev.9D

# pciconf -vl
bktr0@pci2:10:0:        class=3D0x040000 card=3D0x00000000 chip=3D0x036e1=
09e
rev=3D0x11 hdr=3D0x00
    vendor     =3D 'Conexant (Was: Brooktree Corp)'
    device     =3D 'Bt878/Fusion 878A Mediastream Controller'
    class      =3D multimedia
    subclass   =3D video
none7@pci2:10:1:        class=3D0x048000 card=3D0x00000000 chip=3D0x08781=
09e
rev=3D0x11 hdr=3D0x00
    vendor     =3D 'Conexant (Was: Brooktree Corp)'
    device     =3D 'Bt878/Fusion878A Video Capture (Audio Section)'
    class      =3D multimedia


--=20
Karol Kwiatkowski   <karol.kwiat at gmail dot com>
OpenPGP 0x06E09309


--------------enigEF0E103F8EA98BC05E452C68
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFF5bHYezeoPAwGIYsRCDzmAKCWBNQaEhALabq/FEkOzMbQmbErDwCffQUE
IJRXW5Jtt2MZy2tp81Aa8pU=
=g0QO
-----END PGP SIGNATURE-----

--------------enigEF0E103F8EA98BC05E452C68--



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