Subject: Boot hangs on i386
To: None <>
From: John Darrow <>
List: current-users
Date: 04/01/1999 19:50:21
Recently, I've been having trouble with boot hangs on -current on i386.
I've got two similarly-configured machine, one a P5/233 MMX with 64MB
RAM, the other a PII/333 with 128MB RAM.  Both have an IDE hard drive
as master on the primary channel, an ATAPI ZIP as master on the secondary,
and an ATAPI CD-ROM as secondary slave.  Both booted fine with kernels from
19990325 and before, but hang before detecting the boot device on
kernels since 19990326.  I am able to drop into ddb using ctrl-alt-esc.

My prime suspect is changes to the following three source files:
sys/dev/ata/ata_wdc.c           v1.17 -> 1.18
sys/dev/ic/wdc.c                v1.62 -> 1.63
sys/dev/scsipi/atapi_wdc.c      v1.18 -> 1.19

However, as I'm leaving for the weekend in about ten minutes, I haven't had
time to do any further isolation of the problem.


John Darrow
Computing Services, Wheaton College, Wheaton, IL

ten-finger copy as follows:

>> NetBSD/i386 BIOS Boot, Revision 2.6
>> (, Wed Mar 10 20:44:50 CST 1999)
>> Memory: 638/130048 k

biomask c840 netmask c840 ttymask d8c2
wscons: wskbd glued to wsdisplay0 (console)
<hangs here>

_Debugger(f0520500,f02d3bdc,f022cd10,f0520500,f02d3be8) at _Debugger+0x4
_internal_command(f0520500,f02d3be8,f420,1,f0286aa8) at _internal_command+0x150
_wskbd_translate(f0286cb0,2,1,f0562940,f0286aa8) at _wskbd_translate+0xd8
_wskbd_input(f0520500,2,1,1,2) at _wskbd_input+0x46
_pckbd_input(f0562940,1) at _pckbd_input+0x4e
_pckbcintr(f0564780) at _pckbcintr+0xdb
_Xintr1() at _Xintr1+0x6c
--- interrupt ---
_idle(0,f056c000,f0562dc0,0,f02d3d10) at _idle+0x12
bpendtsleep(f056c000,11,f020580c,0) at bpendtsleep
_scsipi_execute_xs(f056c000,0,f0566200,f0562dc0,f02d3d5c) at _scsipi_execute_xs+0xab
_atapi_scsipi_cmd(f0562dc0,f02d3d54,6,0,0) at _atapi_scsipi_cmd+0x8b
_scsipi_test_unit_ready(f0562dc0,1c0,0,4,f7ef809c) at _scsipi_test_unit_ready+0x3c
_sdopen(400,1,6000,0,f0266180) at _sdopen+0xbb
_spec_open(f02d3df8) at _spec_open+0x1ec
_match_harddisk(f0566200,f0291650) at _match_harddisk+0xfa
_findroot(f02d3f74,f02d3f78,f0567800,0,f02d3fa8) at _findroot+0xf2
_cpu_rootconf(0,0,f02d1010,2d1000,2d8000) at _cpu_rootconf+0x13
_main(0,0,0,0,0) at _main+0x350

ps /a:
 PID          COMMAND      STRUCT PROC *            UAREA *     VMSPACE/VM_MAP
 0            swapper         0xf02946d0         0xf02d2000         0xf028e51c

ps /n:
 PID             PPID       PGRP        UID S   FLAGS          COMMAND    WAIT
 0                 -1          0          0 3 0x20204          swapper scsipi_

ps /w:
 0            swapper   netbsd   17   0.0   0.0 scsipi_cmd  0xf056c000

Here's a dmesg from a pre-19990326, working kernel:

NetBSD 1.3K (JDARROWPII) #0: Thu Mar 25 19:19:04 CST 1999
cpu0: family 6 model 5 step 0
cpu0: Intel Pentium II (686-class)
real mem  = 133824512
avail mem = 122007552
using 1659 buffers containing 6795264 bytes of memory
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o enabled, memory enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82443LX PCI AGP Controller (PAC) (rev. 0x03)
ppb0 at pci0 dev 1 function 0: Intel 82443LX AGP Interface (PAC) (rev. 0x03)
pci1 at ppb0 bus 1
pci1: i/o enabled, memory enabled
vga0 at pci1 dev 0 function 0: STB Systems (2nd PCI Vendor ID) Velocity128 (AGP) (rev. 0x10)
wsdisplay0 at vga0: console (80x25, vt100 emulation)
pcib0 at pci0 dev 7 function 0
pcib0: Intel 82371AB PCI-to-ISA Bridge (PIIX4) (rev. 0x01)
pciide0 at pci0 dev 7 function 1: Intel 82371AB IDE controller (PIIX4)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <WDC AC36400L>
wd0: drive supports 16-sector pio transfers, lba addressing
wd0: 6149MB, 13328 cyl, 15 head, 63 sec, 512 bytes/sect x 12594960 sectors
wd0: 32-bits data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2
pciide0: primary channel interrupting at irq 14
pciide0: secondary channel wired to compatibility mode
atapibus0 at pciide0 channel 1
sd0 at atapibus0 drive 0: <IOMEGA  ZIP 100       ATAPI, , 14.A> type 0 direct removable
sd0: drive offline
sd0: 32-bits data port
cd0 at atapibus0 drive 1: <HITACHI CDR-8330, , 0007> type 5 cdrom removable
cd0: 32-bits data port
cd0: drive supports PIO mode 4, DMA mode 2
pciide0: secondary channel interrupting at irq 15
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (using DMA data transfers)
sd0(pciide0:1:0): using PIO mode 3
cd0(pciide0:1:1): using PIO mode 4, DMA mode 2 (using DMA data transfers)
uhci0 at pci0 dev 7 function 2: Intel 82371AB USB Host Controller (PIIX4) (rev. 0x01)
uhci0: interrupting at irq 11
uhci0: USB version 1.0
usb0 at uhci0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
Intel 82371AB Power Management Controller (PIIX4) (miscellaneous bridge, revision 0x01) at pci0 dev 7 function 3 not configured
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
lpt0 at isa0 port 0x378-0x37b irq 7
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
opms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
isapnp0: read port 0x203
ym0 at isapnp0 port 0x220/16,0x530/8,0x388/8,0x330/2,0x370/2 irq 5 drq 0,1
ym0: OPL3-SA3 Snd System : OPL3-SA3
audio0 at ym0: full duplex
joy0 at isapnp0 port 0x201/1
joy0: OPL3-SA3 Snd System 
joy0: joystick not connected
isapnp0: <56K DSVD Modem, HSM0140, , > port 0x3e8/8,0x100/8 irq 9 drq 5,5 not configured
apm0 at mainbus0: Power Management spec V1.1
apm0: A/C state: on
apm0: battery charge state: no battery
biomask c840 netmask c840 ttymask d8c2
wscons: wskbd0 glued to wsdisplay0 (console)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
null_node_create: already locked
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
wsdisplay0: screen 5 added (80x25, vt100 emulation)
wsdisplay0: screen 6 added (80x25, vt100 emulation)
wsdisplay0: screen 7 added (80x25, vt100 emulation)