[SOLVED] Re: i386 kernel just stops booting



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@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@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

Attachment: signature.asc
Description: OpenPGP digital signature



Relevant Pages

  • i386 kernel just stops booting
    ... I'm trying to get CURRENT installed on i386 desktop machine, but kernel ... stops booting after some time. ... No error, even with verbose logging. ...
    (freebsd-current)
  • Linux 2.6.9-rc3-mm3 boot failure
    ... I compiled the linux 2.6.9-rc3-mm3 kernel successfully and ... wanted to boot it but after a few moments it stops booting. ... I use Gentoo Linux, gcc 3.4.2, reiser4 and udev. ... send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)
  • Re: Random Freeze
    ... Joseph Peterson wrote: ... Have you build your world and / or kernel from source? ... Karol Kwiatkowski <freebsd at orchid dot homeunix dot org> ...
    (freebsd-questions)