Date: Mon, 27 Oct 1997 10:46:07 -0600 (CST) From: "Kent S. Gordon" <kgor@inetspace.com> To: jak@cetlink.net Cc: dwhite@resnet.uoregon.edu, hackers@FreeBSD.ORG Subject: Re: 48 meg double fault moved to 64 meg in 2.2.5 Message-ID: <199710271646.KAA11254@chess.inetspace.com> In-Reply-To: <dljU0Y9zBc5e091yn@cetlink.net> (jak@cetlink.net)
next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> "jak" == John Kelly <jak@cetlink.net> writes: > Doug White <dwhite@gdi.uoregon.edu> wrote: >>> I have extra parts to build a third machine identical to the >>> configuration which shows the problem. >> Keep us posted. If you find anything consistent, you should >> send it using send-pr and maybe followup to >> hackers@freebsd.org. > The problem does occur with no SCSI present -- just the > motherboard and a video card. When testing it this way, I had > to use the floppy controller on the motherboard instead of the > faster one on the Buslogic SCSI card. That seems to rule out > either floppy controller as a cause of the problem. What is the problem you are seeing with the Buslogic SCSI card? Which Buslogic SCSI card do you have? I have a machine that works fine under 2.2.2, but fails on 2.2.5 in probing the SCSI bus. I have attached the message that I sent to FreeBSD-current about the problem. Date: Wed, 22 Oct 1997 16:02:22 -0500 (CDT) From: "Kent S. Gordon" <kgor@inetspace.com> To: current@FreeBSD.ORG Subject: 2.2.5 identying SCSI disk as Unknown device X-Loop: FreeBSD.org Precedence: bulk I have done some additional investigation since my previous message (2.2.5BETA hanging in Boot). I have compiled a custom kernel using the RELENG_2_2_5_RELEASE tag that is identifing my root disk as an unknown device and hanging in the boot. This is on a machines that work great with custom kernel using the same config file on 2.2.2. I have changed scsi/scsi_debug.h to define DEBUGTARG to 0. Can anyone suggest where I should look to find out what is the probe to fail? The following in my copy of messages (I copy by hand so some mistakes are possible) that appear on the screen during boot bt0: Bt445S/ 0-ISA(24bit) bus bt0: Your card cannot DMA above 16MB boundary. Bounce buffering enabled. bt0: reading board settings, dma=5, int=11 bt0: version 3.36, fast sync, parity, 32 mbxs, 32 ccbs bt0: targ 0 sync rate=10.00MB/s(100ns), offset=15 bt0: targ 1 sync rate=10.00MB/s(100ns), offset=15 bt0: Using Strict Round robin scheme bt0: Using Strict Round robin scheme bt0 at 0x330 irq 11 drq 5 on isa bt0 waiting for scsi devices to settle probe0(bt0:0:0) : scsi_cmd probe0(bt0:0:0) : scsi_done (bt0:0:0) command 0,0,0,0,0,0-[0 bytes] probe0(bt0:0:0) : scsi_cmd probe0(bt0:0:0) : scsi_done (bt0:0:0) command 12,0,0,0,2c,0-[44 bytes] ------ 0: 00 00 00 00 .. 16: 00 00 00 00 .. 32: 00 00 00 00 .. ------ (bt0:0:0): "unknown unknown ????" type 13 fixed SCSI 0 uk0(bt0:0:0) :uk0attach: uk0(bt0:0:0): Unknown bt0: not taking commands! stopped at _Debugger 0x35 The stack trace from the debugger was (I was to lazy to write down arguments to the function, if needed I can easily get the arguments). Debugger bt_time_out bt_poll bt_scsi_cmd scsi_scsi_cmd scsi_test_unit_ready scsi_probedev scsi_probe_bus scsi_attachdevs bt_attach bt_isa_attach config_isadev_c config_isadev isa_configure configure main This is a copy of the kernel config file used. # # GGZOO -- Cyrix 586/100 with BT controller # # For more information read the handbook part System Administration -> # Configuring the FreeBSD Kernel -> The Configuration File. # The handbook is available in /usr/share/doc/handbook or online as # latest version from the FreeBSD World Wide Web server # <URL:http://www.FreeBSD.ORG/> # # An exhaustive list of options and more detailed explanations of the # device lines is present in the ./LINT configuration file. If you are # in doubt as to the purpose or necessity of a line, check first in LINT. # # $Id: CHESS,v 1.1 1997/04/07 21:35:16 kgor Exp $ machine "i386" #cpu "I386_CPU" cpu "I486_CPU" cpu "I586_CPU" #cpu "I686_CPU" ident GGZOO maxusers 10 options DDB options DIAGNOSTIC options SCSIDEBUG #options MATH_EMULATE #Support for x87 emulation options INET #InterNETworking options FFS #Berkeley Fast Filesystem #options NFS #Network Filesystem #options MSDOSFS #MSDOS Filesystem options "CD9660" #ISO 9660 Filesystem options PROCFS #Process filesystem options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] #options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device options SCSI_DELAY=5 #Be pessimistic about Joe SCSI device options BOUNCE_BUFFERS #include support for DMA bounce buffers options UCONSOLE #Allow users to grab the console options FAILSAFE #Be conservative options USERCONFIG #boot -c editor options VISUAL_USERCONFIG #visual boot -c editor options SYSVSHM options SYSVSEM options SYSVMSG options "AUTO_EOI_1" #faster interrupts config kernel root on wd0 controller isa0 #I have a VLB, but no aha28xx cards, that think they are on a eisa bus. #controller eisa0 #controller pci0 controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 #tape ft0 at fdc0 drive 2 #controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr #disk wd0 at wdc0 drive 0 #disk wd1 at wdc0 drive 1 #controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr #disk wd2 at wdc1 drive 0 #disk wd3 at wdc1 drive 1 #options ATAPI #Enable ATAPI support for IDE bus #options ATAPI_STATIC #Don't do it as an LKM #device wcd0 #IDE CD-ROM # A single entry for any of these controllers (ncr, ahb, ahc) is sufficient # for any number of installed devices. #controller ncr0 #controller ahb0 #controller ahc0 controller bt0 at isa? port "IO_BT0" bio irq ? vector bt_isa_intr #controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr #controller aha0 at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr #controller aic0 at isa? port 0x340 bio irq 11 vector aicintr #controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr #controller nca1 at isa? port 0x350 bio irq 5 vector ncaintr #controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr controller scbus0 device sd0 #device od0 #See LINT for possible `od' options. #device st0 device cd0 #Only need one of these, the code dynamically grows device ch0 #SCSI media changers #device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr #device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr #controller matcd0 at isa? port 0x230 bio #device scd0 at isa? port 0x230 bio # syscons is the default console driver, resembling an SCO console device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint #options PCVT_FREEBSD=210 # pcvt running on FreeBSD >= 2.0.5 #options XSERVER # include code for XFree86 #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std # Mandatory, don't remove device npx0 at isa? port "IO_NPX" irq 13 vector npxintr # # Laptop support (see LINT for more options) # #device apm0 at isa? disable # Advanced Power Management #options APM_BROKEN_STATCLOCK # Workaround some buggy APM BIOS # PCCARD (PCMCIA) support #controller crd0 #device pcic0 at crd? #device pcic1 at crd? device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr #device sio2 at isa? disable port "IO_COM3" tty irq 5 vector siointr #device sio3 at isa? disable port "IO_COM4" tty irq 9 vector siointr device lpt0 at isa? port? tty irq 7 vector lptintr #device lpt1 at isa? port? tty #device mse0 at isa? port 0x23c tty irq 5 vector mseintr #device psm0 at isa? disable port "IO_KBD" conflicts tty irq 12 vector psmintr # Order is important here due to intrusive probes, do *not* alphabetize # this list of network interfaces until the probes have been fixed. # Right now it appears that the ie0 must be probed before ep0. See # revision 1.20 of this file. #device de0 #device fxp0 #device vx0 #device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr #device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr device ed0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr #device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr #device ep0 at isa? port 0x300 net irq 10 vector epintr #device fe0 at isa? port 0x300 net irq ? vector feintr #device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 vector ixintr #device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr #device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr #device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr #device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr pseudo-device loop pseudo-device ether pseudo-device log #pseudo-device sl 1 # ijppp uses tun instead of ppp device #pseudo-device ppp 1 pseudo-device tun 1 pseudo-device pty 32 pseudo-device bpfilter 4 #Berkeley packet filter pseudo-device gzip # Exec gzipped a.out's # KTRACE enables the system-call tracing facility ktrace(2). # This adds 4 KB bloat to your kernel, and slightly increases # the costs of each syscall. options KTRACE #kernel tracing This is a copy of the dmesg output from a kernel using RELENG_2_2_2_RELEASE. Copyright (c) 1992-1997 FreeBSD Inc. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. FreeBSD 2.2.2-RELEASE #0: Thu Oct 9 08:43:27 CDT 1997 kgor@chess.inetspace.com:/usr/src/sys/compile/CHESS Calibrating clock(s) ... i8254 clock: 1193747 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency CPU: i486DX (486-class CPU) real memory = 33554432 (32768K bytes) avail memory = 30666752 (29948K bytes) Probing for devices on the ISA bus: sc0: the current keyboard controller command byte 0045 kbdio: RESET_KBD return code:00fa kbdio: RESET_KBD status:00aa sc0 at 0x60-0x6f irq 1 on motherboard sc0: BIOS video mode:3 sc0: VGA registers upon power-up 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 ff ff 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff sc0: video mode:24 sc0: VGA registers for mode:24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff sc0: VGA color <16 virtual consoles, flags=0x0> ed0 at 0x300-0x31f irq 5 on isa ed0: address 00:00:e8:cb:ac:1a, type NE2000 (16 bit) bpf: ed0 attached sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A lpt0 at 0x378-0x37f irq 7 on isa lpt0: Interrupt-driven port lp0: TCP/IP capable interface bpf: lp0 attached fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: NEC 765 fd0: 1.44MB 3.5in fd1: 1.2MB 5.25in bt0: Bt445S/ 0-ISA(24bit) bus bt0: Your card cannot DMA above 16MB boundary. Bounce buffering enabled. bt0: reading board settings, dma=5, int=11 bt0: version 3.36, fast sync, parity, 32 mbxs, 32 ccbs bt0: targ 0 sync rate=10.00MB/s(100ns), offset=15 bt0: targ 1 sync rate=10.00MB/s(100ns), offset=15 bt0: Using Strict Round robin scheme bt0 at 0x330 irq 11 drq 5 on isa bt0 waiting for scsi devices to settle (bt0:0:0): "DEC DSP5200S T392" type 0 fixed SCSI 2 sd0(bt0:0:0): Direct-Access 1908MB (3907911 512 byte sectors) sd0(bt0:0:0): with 2621 cyls, 21 heads, and an average 71 sectors/track (bt0:1:0): "SEAGATE ST31200N 8648" type 0 fixed SCSI 2 sd1(bt0:1:0): Direct-Access 1006MB (2061108 512 byte sectors) sd1(bt0:1:0): with 2700 cyls, 9 heads, and an average 84 sectors/track npx0 on motherboard npx0: INT 16 interface imasks: bio c0000840, tty c003009a, net c0020020 BIOS Geometries: 0:03ff3f20 0..1023=1024 cylinders, 0..63=64 heads, 1..32=32 sectors 1:03ed3f20 0..1005=1006 cylinders, 0..63=64 heads, 1..32=32 sectors 0 accounted for Device configuration finished. Considering FFS root f/s. changing root device to sd0a configure() finished. bpf: tun0 attached bpf: lo0 attached sd0s1: type 0xa5, start 32, end = 3907583, size 3907552 : OK sd1s1: type 0xa5, start 32, end = 2060287, size 2060256 : OK Thanks, Kent S. Gordon Senior Software Engineer iNetSpace Co. voice: (972)851-3494 fax:(972)702-0384 e-mail:kgor@inetspace.com > I found a CMOS option called "DRAM Hole for UNIX(64MB)" which I > enabled to see what would happen. > With 64 meg and 2.2.5, the problem disappeared. But with 48 meg > and 2.2.2 it had no effect, and the double fault still occurred. > I'm guessing that's because the BIOS does not try to create that > DRAM hole unless you fill the board with 64 meg of memory -- as > they do say in parentheses "(64MB)." > Unfortunately, I can't keep the "DRAM hole" enabled, because > after a reboot the memory test fails, and the only cure is the > hardware reset button. Even if I could leave it enabled, it's > of no help at all with 48 meg and the 2.2.2 boot floppy. > The memory test failure after a reboot may happen because this > motherboard does not have address line 26 wired to the chipset, > and thus anything over 64 meg cannot be addressed properly. > Presumably, to create the "DRAM hole," the BIOS remaps some > memory from below the 64 meg line to above 64 meg, and once it's > put there, it can no longer be seen, since A26 is unusable -- at > least not by the chipset (although A26 is wired between the CPU > and the local bus). > I learned about the A26 problem on this motherboard when I tried > using the linear addressing feature of XFree86 with my Cirrus > 5430 video card. Although the video card tries to use the A26 > line to remap its memory above the 64 meg line, the motherboard > could not handle it. The XFree docs have a good explanation of > this situation in X11R6/lib/X11/doc/README.cirrus. > But as for the motherboard and the boot floppy problem, I don't > understand the purpose of the "DRAM hole for UNIX," although it > clearly does have a positive effect on the boot floppy problem > when it's activated with 64 meg in the machine. > Is it true that this problem only occurs with the boot floppy? > The last good message I see with the 2.2.2 boot floppy and 48 > meg is "changing root device to fd0c," and then immediately the > "panic: double fault" appears. > Since floppy controllers use DMA, perhaps DMA and the bounce > buffers are an issue? Addressing memory remapped above 64 meg > may also be part of the problem, at least on this motherboard. > I did find an interesting tidbit in Messmer's "Indispensable PC > Hardware Book" (second edition). On page 621 he says: > "DMA transfer is not a trivial job, especially when paging > is enabled, even for the operating system ... as the DMA > controller overwrites the physical memory contents mercilessly > without any care for the protection mechanisms of the protected > mode ... an incorrectly initialized DMA chip may ... crash > ... the complete computer system." > Hmmm... sounds familiar. > Oh well, I've reached the limits of my knowledge in these areas. > I hope my report is of some help to the experts. > John Kent S. Gordon Senior Software Engineer iNetSpace Co. voice: (972)851-3494 fax:(972)702-0384 e-mail:kgor@inetspace.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710271646.KAA11254>