Skip site navigation (1)Skip section navigation (2)
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>