6.0 BETA3 reboot hangs on SMP system if BIOS USB disabled

Mark Kirkwood markir at paradise.net.nz
Sun Aug 28 02:48:49 GMT 2005


I had previously posted something very similar to -current with BETA2,
but received no replies. Also the SMP factor might make this more
appropriate here :-)

Tyan S2510 dual PIII 6.0-BETA3 (dmesg attached for case with USB disabled):

kernel(SMP) + bios(USB disabled) -> hang at reboot

whereas

kernel(SMP) + bios(USB) -> reboot ok


As I am still a kernel debugger newbie (and because the hang state was
unresponsive to keyboard break), I added a few printfs instead to pin
down where the hang was. It appears to be in:

src/sys/i386/i386/vm_machdep.c:cpu_reset_real()

specifically:

#if !defined(BROKEN_KEYBOARD_RESET)
          printf("cpu_reset_real: case !BROKEN_KEYBOARD_RESET \n"); /*
<==== HANGS AFTER DISPLAYING ==== */
          DELAY(1000000);
          /*
           * Attempt to do a CPU reset via the keyboard controller,
           * do not turn off GateA20, as any machine that fails
           * to do the reset here would then end up in no man's land.
           */
          outb(IO_KBD + 4, 0xFE); /* <==== DEDUCE HANG HERE ==== */
          DELAY(500000);  /* wait 0.5 sec to see if that did it */
          printf("Keyboard reset did not work, attempting CPU shutdown\n");
          DELAY(1000000); /* wait 1 sec for printf to complete */
#endif

(I have spattered the nice clean source with printf's and DELAY's... but
you get the idea).

So outb(IO_KBD + 4, 0xFE) *looks* like the culprit.

So anybody have any ideas why *SMP* is triggering this? Or why it is
happening anyway?

cheers

Mark

-------------- next part --------------
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.4-RELEASE #3: Sat Aug 13 11:57:03 NZST 2005
    root at istral.markir.net:/usr/obj/usr/src/sys/STANDARD
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel Pentium III (996.85-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x686  Stepping = 6
  Features=0x387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,SSE>
real memory  = 2147483648 (2048 MB)
avail memory = 2100244480 (2002 MB)
MPTable: <AMI      CNB30LE     >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
ioapic0: Assuming intbase of 0
ioapic1: Assuming intbase of 16
ioapic0 <Version 1.1> irqs 0-15 on motherboard
ioapic1 <Version 1.1> irqs 16-31 on motherboard
npx0: <math processor> on motherboard
npx0: INT 16 interface
cpu0 on motherboard
cpu1 on motherboard
pcib0: <MPTable Host-PCI bridge> pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pci0: <display, VGA> at device 1.0 (no driver attached)
fxp0: <Intel 82559 Pro/100 Ethernet> port 0xd400-0xd43f mem 0xfe900000-0xfe9fffff,0xfeafe000-0xfeafefff irq 20 at device 4.0 on pci0
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:e0:81:02:4c:6a
fxp1: <Intel 82559 Pro/100 Ethernet> port 0xd000-0xd03f mem 0xfe700000-0xfe7fffff,0xfeafd000-0xfeafdfff irq 21 at device 5.0 on pci0
miibus1: <MII bus> on fxp1
inphy1: <i82555 10/100 media interface> on miibus1
inphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp1: Ethernet address: 00:e0:81:02:4c:6b
isab0: <PCI-ISA bridge> port 0x580-0x58f at device 15.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <ServerWorks ROSB4 UDMA33 controller> port 0xffa0-0xffaf,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 15.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
ohci0: <OHCI (generic) USB controller> mem 0xfffff000-0xffffffff at device 15.2 on pci0
pcib0: unable to route slot 15 INTA
ohci0: Could not allocate irq
device_attach: ohci0 attach returned 6
pcib1: <MPTable Host-PCI bridge> pcibus 1 on motherboard
pci1: <PCI bus> on pcib1
atapci1: <Promise PDC20271 UDMA133 controller> port 0xef90-0xef9f,0xefa8-0xefab,0xefa0-0xefa7,0xefac-0xefaf,0xefe0-0xefe7 mem 0xfebf0000-0xfebfffff irq 27 at device 2.0 on pci1
ata2: channel #0 on atapci1
ata3: channel #1 on atapci1
orm0: <ISA Option ROMs> at iomem 0xd2800-0xd37ff,0xd1800-0xd27ff,0xc8000-0xd17ff,0xc0000-0xc7fff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
fdc0: <Enhanced floppy controller> at port 0x3f0-0x3f5 irq 6 drq 2 on isa0
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: parallel port not found.
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0303> can't assign resources (port)
unknown: <PNP0c02> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
Timecounters tick every 10.000 msec
acd0: CDRW <CREATIVE CD-RW RW8439E/1R09> at ata0-master PIO4
ad4: 39205MB <Maxtor 6E040L0/NAR61HA0> [79656/16/63] at ata2-master UDMA133
ad5: 39205MB <Maxtor 6E040L0/NAR61HA0> [79656/16/63] at ata2-slave UDMA133
ad6: 39205MB <Maxtor 6E040L0/NAR61590> [79656/16/63] at ata3-master UDMA133
ad7: 39205MB <Maxtor 6E040L0/NAR61590> [79656/16/63] at ata3-slave UDMA133
ar0: 156822MB <ATA RAID0 array> [19991/255/63] status: READY subdisks:
 disk0 READY on ad4 at ata2-master
 disk1 READY on ad6 at ata3-master
 disk2 READY on ad5 at ata2-slave
 disk3 READY on ad7 at ata3-slave
SMP: AP CPU #1 Launched!
Mounting root from ufs:/dev/ar0s1a



More information about the freebsd-smp mailing list