Date: Sun, 1 Jul 2001 18:40:27 -0700 (PDT) From: Alec Wolman <wolman@cs.washington.edu> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/28616: ATA probe problem with VIA 82C686 Message-ID: <200107020140.f621eRw35944@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 28616 >Category: kern >Synopsis: ATA probe problem with VIA 82C686 >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jul 01 18:50:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Alec Wolman >Release: 4.3 >Organization: University of Washington >Environment: FreeBSD lester.olywa.net 4.3-RELEASE FreeBSD 4.3-RELEASE #0: Mon Jun 4 02:22:58 PDT 2001 root@lester.olywa.net:/usr/src/sys/compile/LESTER i386 >Description: I am experiencing a long delay at boot time (more than 30 seconds) due to the ATA subsystem when the probe routine looks for disks on the VIA 82C686 controller. There are no disks attached to that controller (the disks are attached to the Promise ATA100 controller) but the probe routine hangs when determining that. My system has an ASUS A7V motherboard. I have provided as much detail as I can below, but I would be more than happy to get additional information (through debugging or patches) if someone tells me what is needed. Here is my analysis of the problem, from looking at the verbose boot output and the source code: The delay occurs just after the follwing output during the boot: ata0: mask=03 ostat0=a0 ostat2=b0. The delay appears to be occuring in the loop in the ata_reset() subroutine - the busy bit is always set so we just keep going through the loop. This occurs because the initial status0 and status1 values are 0xa0 and 0xb0, which is clearly not what the ata driver expects to see when there are no devices present. Here is the ATA section of the kernel config file: # ATA and ATAPI devices device ata device atadisk # ATA disk drives device atapicd # ATAPI CDROM drives device atapifd # ATAPI floppy drives options ATA_STATIC_ID # static device numbering options IDE_DELAY=6000 # set the probe delay in ms Here is the dmesg output when I boot with the verbose option: Copyright (c) 1992-2001 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 4.3-RELEASE #0: Mon Jun 4 02:22:58 PDT 2001 root@lester.olywa.net:/usr/src/sys/compile/LESTER Calibrating clock(s) ... TSC clock: 958522329 Hz, i8254 clock: 1193166 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency Timecounter "i8254" frequency 1193182 Hz CLK_USE_TSC_CALIBRATION not specified - using old calibration method Timecounter "TSC" frequency 958539559 Hz CPU: AMD Athlon(tm) Processor (958.54-MHz 686-class CPU) Origin = "AuthenticAMD" Id = 0x642 Stepping = 2 Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR> AMD Features=0xc0440000<<b18>,AMIE,DSP,3DNow!> Data TLB: 24 entries, fully associative Instruction TLB: 16 entries, fully associative L1 data cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative L1 instruction cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative L2 internal cache: 256 kbytes, 64 bytes/line, 1 lines/tag, 8-way associative real memory = 268353536 (262064K bytes) Physical memory chunk(s): 0x00001000 - 0x0009dfff, 643072 bytes (157 pages) 0x00378000 - 0x0ffe3fff, 264683520 bytes (64620 pages) avail memory = 257875968 (251832K bytes) bios32: Found BIOS32 Service Directory header at 0xc00f92a0 bios32: Entry = 0xf0ef0 (c00f0ef0) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0x10f0 pnpbios: Found PnP BIOS data at 0xc00fc2b0 pnpbios: Entry = f0000:c2e0 Rev = 1.0 pnpbios: OEM ID cd041 Other BIOS signatures found: ACPI: 000f6740 Preloaded elf kernel "kernel" at 0xc0352000. VESA: information block 56 45 53 41 00 03 00 01 00 01 01 00 00 00 22 00 00 01 00 02 15 02 07 01 00 01 1a 01 00 01 2f 01 00 01 00 01 01 01 02 01 03 01 04 01 05 01 06 01 07 01 08 01 09 01 0a 01 0b 01 0c 01 0e 01 0f 01 VESA: 33 mode(s) found VESA: v3.0, 32768k memory, flags:0x1, mode table:0xc02f1122 (1000022) VESA: NVidia VESA: NVidia Corporation NV15 Reference Board Chip Rev A3 Pentium Pro MTRR support enabled md0: Malloc disk Creating DISK md0 pci_open(1): mode 1 addr port (0x0cf8) is 0x80000060 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=03051106) pcib-: pcib0 exists, using next available unit number npx0: <math processor> on motherboard npx0: INT 16 interface pci_open(1): mode 1 addr port (0x0cf8) is 0x00000000 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=03051106) pcib0: <Host to PCI bridge> on motherboard found-> vendor=0x1106, dev=0x0305, revid=0x02 class=06-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[10]: type 1, range 32, base e4000000, size 26 found-> vendor=0x1106, dev=0x8305, revid=0x00 class=06-04-00, hdrtype=0x01, mfdev=0 subordinatebus=1 secondarybus=1 found-> vendor=0x1106, dev=0x0686, revid=0x22 class=06-01-00, hdrtype=0x00, mfdev=1 subordinatebus=0 secondarybus=0 found-> vendor=0x1106, dev=0x0571, revid=0x10 class=01-01-8a, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 map[20]: type 1, range 32, base 0000d800, size 4 found-> vendor=0x1106, dev=0x3038, revid=0x10 class=0c-03-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=d, irq=9 map[20]: type 1, range 32, base 0000d400, size 5 found-> vendor=0x1106, dev=0x3038, revid=0x10 class=0c-03-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=d, irq=9 map[20]: type 1, range 32, base 0000d000, size 5 found-> vendor=0x1106, dev=0x3057, revid=0x30 class=06-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 found-> vendor=0x1102, dev=0x0002, revid=0x08 class=04-01-00, hdrtype=0x00, mfdev=1 subordinatebus=0 secondarybus=0 intpin=a, irq=5 map[10]: type 1, range 32, base 0000a400, size 5 found-> vendor=0x1102, dev=0x7002, revid=0x08 class=09-80-00, hdrtype=0x00, mfdev=1 subordinatebus=0 secondarybus=0 map[10]: type 1, range 32, base 0000a000, size 3 found-> vendor=0x10b7, dev=0x9055, revid=0x30 class=02-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=9 map[10]: type 1, range 32, base 00009800, size 7 map[14]: type 1, range 32, base d5800000, size 7 found-> vendor=0x105a, dev=0x0d30, revid=0x02 class=01-80-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=10 map[10]: type 1, range 32, base 00009400, size 3 map[14]: type 1, range 32, base 00009000, size 2 map[18]: type 1, range 32, base 00008800, size 3 map[1c]: type 1, range 32, base 00008400, size 2 map[20]: type 1, range 32, base 00008000, size 6 map[24]: type 1, range 32, base d5000000, size 17 pci0: <PCI bus> on pcib0 pcib2: <PCI to PCI bridge (vendor=1106 device=8305)> at device 1.0 on pci0 found-> vendor=0x10de, dev=0x0150, revid=0xa3 class=03-00-00, hdrtype=0x00, mfdev=0 subordinatebus=0 secondarybus=0 intpin=a, irq=11 map[10]: type 1, range 32, base d6000000, size 24 map[14]: type 1, range 32, base d8000000, size 27 pci1: <PCI bus> on pcib2 pci1: <NVidia GeForce2 GTS graphics accelerator> (vendor=0x10de, dev=0x0150) at 0.0 irq 11 isab0: <VIA 82C686 PCI-ISA bridge> at device 4.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <VIA 82C686 ATA66 controller> port 0xd800-0xd80f at device 4.1 on pci0 ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0xd800 ata0: mask=03 status0=a0 status1=b0 ata0: mask=03 ostat0=a0 ostat2=b0 ata0: mask=00 status0=a0 status1=b0 ata0: probe allocation failed ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xd808 ata1: mask=03 status0=50 status1=50 ata1: mask=03 ostat0=50 ostat2=50 ata1-master: ATAPI probe a=14 b=eb ata1-slave: ATAPI probe a=14 b=eb ata1: mask=03 status0=00 status1=00 ata1: devices=0c ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 9 at device 4.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uscanner0: Hewlett-Packard HP ScanJet 6300C, rev 1.00/1.00, addr 2 uhci1: <VIA 83C572 USB controller> port 0xd000-0xd01f irq 9 at device 4.3 on pci0 using shared irq9. usb1: <VIA 83C572 USB controller> on uhci1 usb1: USB revision 1.0 uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered ums0: Logitech USB-PS/2 Trackball, rev 1.00/2.10, addr 2, iclass 3/1 ums0: 2 buttons uhub2: ALCOR Generic USB Hub, class 9/0, rev 1.10/1.00, addr 3 uhub2: 4 ports with 4 removable, self powered pcm0: <Creative EMU10K1> port 0xa400-0xa41f irq 5 at device 10.0 on pci0 emu: setmap (1000, 800), nseg=1, error=0 emu: setmap (41000, 1000), nseg=1, error=0 pcm0: ac97 codec id 0x54524123 pcm0: ac97 codec features 5 bit master volume, no 3D Stereo Enhancement emu: setmap (378000, 1000), nseg=1, error=0 emu: setmap (3b8000, 1000), nseg=1, error=0 emu: setmap (3f8000, 1000), nseg=1, error=0 emu: setmap (438000, 1000), nseg=1, error=0 pcm: setmap 478000, 1000; 0xcb8fa000 -> 478000 pcm: setmap 4b8000, 1000; 0xcb93a000 -> 4b8000 pcm: setmap 4f8000, 1000; 0xcb97a000 -> 4f8000 xl0: <3Com 3c905B-TX Fast Etherlink XL> port 0x9800-0x987f mem 0xd5800000-0xd580007f irq 9 at device 13.0 on pci0 xl0: Ethernet address: 00:10:5a:1c:ed:ef xl0: media options word: a xl0: found MII/AUTO miibus0: <MII bus> on xl0 xlphy0: <3Com internal media interface> on miibus0 xlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto bpf: xl0 attached atapci1: <Promise ATA100 controller> port 0x8000-0x803f,0x8400-0x8403,0x8800-0x8807,0x9000-0x9003,0x9400-0x9407 mem 0xd5000000-0xd501ffff irq 10 at device 17.0 on pci0 ata-: ata2 exists, using next available unit number ata2: iobase=0x9400 altiobase=0x9002 bmaddr=0x8000 ata2: mask=03 status0=50 status1=50 ata2: mask=03 ostat0=50 ostat2=50 ata2-master: ATAPI probe a=00 b=00 ata2-slave: ATAPI probe a=00 b=00 ata2: mask=03 status0=50 status1=50 ata2-master: ATA probe a=01 b=a5 ata2-slave: ATA probe a=01 b=a5 ata2: devices=03 ata2: at 0x9400 on atapci1 ata3: iobase=0x8800 altiobase=0x8402 bmaddr=0x8008 ata3: mask=00 status0=ff status1=ff ata3: probe allocation failed pci_open(1): mode 1 addr port (0x0cf8) is 0x00000000 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=03051106) pci-: pci1 exists, using next available unit number pcib1: <Host to PCI bridge> on motherboard pci2: <PCI bus> on pcib1 Trying Read_Port at 203 Trying Read_Port at 243 Trying Read_Port at 283 Trying Read_Port at 2c3 Trying Read_Port at 303 Trying Read_Port at 343 Trying Read_Port at 383 Trying Read_Port at 3c3 isa_probe_children: disabling PnP devices isa_probe_children: probing non-PnP devices atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 atkbd: the current kbd controller command byte 0047 atkbd: keyboard ID 0x41ab (2) kbd0: atkbd0, AT 101/102 (2), config:0x1, flags:0x3d0000 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 fb0: vga0, vga, type:VGA (5), flags:0x700ff fb0: port:0x3c0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000 fb0: init mode:24, bios mode:3, current mode:24 fb0: window:0xc00b8000 size:32k gran:32k, buf:0 size:32k VGA parameters upon power-up 50 18 10 00 00 00 03 00 02 67 5f 4f 50 82 54 80 bf 1f 00 4f 0e 0f 00 00 07 80 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 VGA parameters in BIOS for mode 24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 54 80 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 EGA/VGA parameters to be used for mode 24 50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 54 80 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: <System console> on isa0 sc0: VGA <16 virtual consoles, flags=0x200> sc0: fb0, kbd0, terminal emulator: sc (syscons terminal) fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 sio0: irq maps: 0x21 0x31 0x21 0x21 sio0 at port 0x3f8-0x3ff irq 4 on isa0 sio0: type 16550A sio1: irq maps: 0x21 0x29 0x21 0x21 sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: parallel port found at 0x378 ppc0: using extended I/O port range ppc0: ECP SPP ECP+EPP SPP ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold plip0: <PLIP network interface> on ppbus0 bpf: lp0 attached lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 isa_probe_children: probing PnP devices BIOS Geometries: 0:03fefe3f 0..1022=1023 cylinders, 0..254=255 heads, 1..63=63 sectors 1:03fefe3f 0..1022=1023 cylinders, 0..254=255 heads, 1..63=63 sectors 0 accounted for Device configuration finished. IP packet filtering initialized, divert disabled, rule-based forwarding disabled, default to accept, logging disabled bpf: lo0 attached ata2-master: success setting UDMA5 on Promise chip Creating DISK ad4 Creating DISK wd4 ad4: <IBM-DTLA-307045/TX6OA50C> ATA-5 disk at ata2-master ad4: 43979MB (90069840 sectors), 89355 cyls, 16 heads, 63 S/T, 512 B/S ad4: 16 secs/int, 1 depth queue, UDMA100 ad4: piomode=4 dmamode=2 udmamode=5 cblid=1 Promise check1 failed ad4: 43979MB <IBM-DTLA-307045> [89355/16/63] at ata2-master UDMA100 ata2-slave: success setting UDMA5 on Promise chip Creating DISK ad5 Creating DISK wd5 ad5: <IBM-DTLA-307045/TX6OA50C> ATA-5 disk at ata2-slave ad5: 43979MB (90069840 sectors), 89355 cyls, 16 heads, 63 S/T, 512 B/S ad5: 16 secs/int, 1 depth queue, UDMA100 ad5: piomode=4 dmamode=2 udmamode=5 cblid=1 Promise check1 failed ad5: 43979MB <IBM-DTLA-307045> [89355/16/63] at ata2-slave UDMA100 ata1-master: piomode=4 dmamode=2 udmamode=2 dmaflag=1 ata1-master: success setting PIO4 on generic chip acd0: <TOSHIBA DVD-ROM SD-M1402/1010> DVD-ROM drive at ata1 as master acd0: read 6890KB/s (6890KB/s), 128KB buffer, PIO4 acd0: Reads: CD-R, CD-RW, CD-DA stream, DVD-ROM, DVD-R, packet acd0: Audio: play, 16 volume levels acd0: Mechanism: ejectable tray acd0: Medium: no/blank disc inside, unlocked ata1-slave: piomode=4 dmamode=2 udmamode=-1 dmaflag=1 ata1-slave: success setting PIO4 on generic chip acd1: <PLEXTOR CD-R PX-W1210A/1.02> CD-RW drive at ata1 as slave acd1: read 5512KB/s (5512KB/s) write 2067KB/s (2067KB/s), 2048KB buffer, PIO4 acd1: Reads: CD-R, CD-RW, CD-DA stream, packet acd1: Writes: CD-R, CD-RW, test write acd1: Audio: play, 256 volume levels acd1: Mechanism: ejectable tray acd1: Medium: CD-ROM unknown medium, unlocked Mounting root from ufs:/dev/ad5s1a ad5s1: type 0xa5, start 63, end = 90060389, size 90060327 : OK start_init: trying /sbin/init ad4s1: type 0x42, start 63, end = 90060389, size 90060327 : OK Linux-ELF exec handler installed >How-To-Repeat: reboot. >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107020140.f621eRw35944>