[SOLVED] Re: i386 kernel just stops booting

From: Karol Kwiatkowski <karol.kwiat_at_gmail.com>
Date: Wed, 28 Feb 2007 17:46:08 +0100
Karol Kwiatkowski wrote:
> Hello everyone,
> 
> 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.
> 
> [1]
[...]
> found-> vendor=0x1102, dev=0x4001, revid=0x00
>      bus=2, slot=8, func=2
>      class=0c-00-10, hdrtype=0x00, mfdev=1
>      cmdreg=0x0116, statreg=0x0210, cachelnsz=64 (dwords)
>      lattimer=0x20 (960 ns), mingnt=0x02 (500 ns), maxlat=0x04 (1000 ns)
>      intpin=b, irq=5
>      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=0.

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 = 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_at_pci2:10:0:        class=0x040000 card=0x00000000 chip=0x036e109e
rev=0x11 hdr=0x00
    vendor     = 'Conexant (Was: Brooktree Corp)'
    device     = 'Bt878/Fusion 878A Mediastream Controller'
    class      = multimedia
    subclass   = video
none7_at_pci2:10:1:        class=0x048000 card=0x00000000 chip=0x0878109e
rev=0x11 hdr=0x00
    vendor     = 'Conexant (Was: Brooktree Corp)'
    device     = 'Bt878/Fusion878A Video Capture (Audio Section)'
    class      = multimedia


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


Received on Wed Feb 28 2007 - 15:46:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:06 UTC