UDMA33 on older acer aladdin chips

From: Andrew Gallatin (gallatin_at_cs.duke.edu)
Date: 10/08/03

  • Next message: Stuart Walsh: "Re: Atmel AT76C503 USB 802.11b device driver"
    Date: Wed, 8 Oct 2003 15:57:37 -0400 (EDT)
    To: sos@freebsd.org
    
    

    Hi,

    I recently decided to update my alpha UP1000 to today's current from a
    mid-July build. However, UDMA33 did not work on a hard disk attached
    to the built-in Acer Aladdin controller (verbose dmesg appended).

    I think I have narrowed the problem down to this line of code:

            atadev->channel->flags |= ATA_ATAPI_DMA_RO;

    Removing this line gets my UDMA33 back.

    Cheers,

    Drew

    Patch to hack around problem:

    Index: ata-chipset.c
    ===================================================================
    RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v
    retrieving revision 1.39
    diff -u -r1.39 ata-chipset.c
    --- ata-chipset.c 8 Sep 2003 13:55:05 -0000 1.39
    +++ ata-chipset.c 8 Oct 2003 19:43:30 -0000
    @@ -382,7 +382,10 @@
     
         if (ctlr->chip->cfg2 & ALIOLD) {
             /* doesn't support ATAPI DMA on write */
    +#if 0
    + /* XXX this breaks ATA disk DMA support */
             atadev->channel->flags |= ATA_ATAPI_DMA_RO;
    +#endif
             if (atadev->channel->devices & ATA_ATAPI_MASTER &&
                 atadev->channel->devices & ATA_ATAPI_SLAVE) {
                 /* doesn't support ATAPI DMA on two ATAPI devices */

    Dmesg from failure:

    Copyright (c) 1992-2003 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.1-CURRENT #4: Wed Oct 8 14:22:44 EDT 2003
        gallatin@thunder:/home/gallatin/current/sys/alpha/compile/THUNDER
    Preloaded elf kernel "/kernel.test" at 0xfffffc0000766000.
    UP1000
    API UP1000 598 MHz, 598MHz
    8192 byte page size, 1 processor.
    CPU: EV67 (21264A) major=11 minor=8 extensions=0x307<BWX,FIX,CIX,MVI,PRECISE>
    OSF PAL rev: 0x100010002013e
    real memory = 668344320 (637 MB)
    Physical memory chunk(s):
    0x00788000 - 0x275dbfff, 652558336 bytes (79658 pages)
    avail memory = 643145728 (613 MB)
    null: <null device, zero device>
    random: <entropy source>
    mem: <memory & I/O>
    irongate0: <AMD 751 Core Logic chipset>
    pcib0: <AMD 751 PCI host bus adapter> on irongate0
    pci0: <PCI bus> on pcib0
    pci0: physical bus=0
            map[10]: type 3, range 32, base 00000000, size 0, enabled
            map[14]: type 3, range 32, base 423a0000, size 12, enabled
            map[18]: type 4, range 32, base 000100c0, size 2, port disabled
    found-> vendor=0x1022, dev=0x7006, revid=0x25
            bus=0, slot=0, func=0
            class=06-00-00, hdrtype=0x00, mfdev=1
            cmdreg=0x0006, statreg=0x2210, cachelnsz=0 (dwords)
            lattimer=0xff (7650 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
    found-> vendor=0x1022, dev=0x7007, revid=0x01
            bus=0, slot=1, func=0
            class=06-04-00, hdrtype=0x01, mfdev=1
            cmdreg=0x0007, statreg=0x0220, cachelnsz=0 (dwords)
            lattimer=0xff (7650 ns), mingnt=0x0e (3500 ns), maxlat=0x00 (0 ns)
    found-> vendor=0x10b9, dev=0x1533, revid=0xc3
            bus=0, slot=7, func=0
            class=06-01-00, hdrtype=0x00, mfdev=0
            cmdreg=0x0007, statreg=0x3200, cachelnsz=0 (dwords)
            lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
            map[10]: type 3, range 32, base 423a1000, size 12, enabled
            map[14]: type 4, range 32, base 00010080, size 5, enabled
            map[18]: type 1, range 32, base 42100000, size 20, enabled
    found-> vendor=0x8086, dev=0x1229, revid=0x02
            bus=0, slot=8, func=0
            class=02-00-00, hdrtype=0x00, mfdev=0
            cmdreg=0x0007, statreg=0x0280, cachelnsz=0 (dwords)
            lattimer=0xff (7650 ns), mingnt=0x08 (2000 ns), maxlat=0x38 (14000 ns)
            intpin=a, irq=9
            map[10]: type 3, range 32, base 40000000, size 24, enabled
    found-> vendor=0x14c1, dev=0x8043, revid=0x03
            bus=0, slot=10, func=0
            class=00-00-00, hdrtype=0x00, mfdev=0
            cmdreg=0x0086, statreg=0x0420, cachelnsz=16 (dwords)
            lattimer=0xff (7650 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
            intpin=a, irq=9
            map[10]: type 4, range 32, base 00010000, size 7, enabled
            map[14]: type 1, range 32, base 423a2000, size 7, enabled
    found-> vendor=0x10b7, dev=0x9055, revid=0x64
            bus=0, slot=11, func=0
            class=02-00-00, hdrtype=0x00, mfdev=0
            cmdreg=0x0007, statreg=0x0210, cachelnsz=16 (dwords)
            lattimer=0xf8 (7440 ns), mingnt=0x0a (2500 ns), maxlat=0x0a (2500 ns)
            intpin=a, irq=10
            powerspec 1 supports D0 D1 D2 D3 current D0
            map[10]: type 4, range 32, base 000001f0, size 4, enabled
            map[14]: type 4, range 32, base 000003f4, size 2, enabled
            map[18]: type 4, range 32, base 00000170, size 4, enabled
            map[1c]: type 4, range 32, base 00000374, size 2, enabled
            map[20]: type 4, range 32, base 000100b0, size 4, enabled
    found-> vendor=0x10b9, dev=0x5229, revid=0xc1
            bus=0, slot=16, func=0
            class=01-01-fa, hdrtype=0x00, mfdev=0
            cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
            lattimer=0xff (7650 ns), mingnt=0x02 (500 ns), maxlat=0x04 (1000 ns)
            intpin=a, irq=15
            map[10]: type 4, range 32, base 00001000, size 6, enabled
            map[14]: type 4, range 32, base 00001040, size 5, enabled
    found-> vendor=0x10b9, dev=0x7101, revid=0x00
            bus=0, slot=17, func=0
            class=00-00-00, hdrtype=0x00, mfdev=0
            cmdreg=0x0001, statreg=0x0280, cachelnsz=0 (dwords)
            lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
    pci0: <bridge, HOST-PCI> at device 0.0 (no driver attached)
    pcib1: <PCI-PCI bridge> at device 1.0 on pci0
    pcib1: secondary bus 2
    pcib1: subordinate bus 2
    pcib1: I/O decode 0xfff000-0xfff
    pcib1: memory decode 0xfff00000-0xfffff
    pcib1: prefetched decode 0x41000000-0x420fffff
    pci2: <PCI bus> on pcib1
    pci2: physical bus=2
            map[10]: type 1, range 32, base 42000000, size 17, enabled
            map[14]: type 1, range 32, base 41000000, size 23, enabled
            map[18]: type 1, range 32, base 41800000, size 23, enabled
    found-> vendor=0x104c, dev=0x3d07, revid=0x11
            bus=2, slot=5, func=0
            class=03-00-00, hdrtype=0x00, mfdev=0
            cmdreg=0x0007, statreg=0x02b0, cachelnsz=0 (dwords)
            lattimer=0xff (7650 ns), mingnt=0xc0 (48000 ns), maxlat=0xc0 (48000 ns)
            intpin=a, irq=255
            powerspec 1 supports D0 D3 current D0
    pci2: <display, VGA> at device 5.0 (no driver attached)
    isab0: <PCI-ISA bridge> at device 7.0 on pci0
    isa0: <ISA bus> on isab0
    fxp0: <Intel 82557 Pro/100 Ethernet> port 0x10080-0x1009f mem 0x42100000-0x421fffff,0x423a1000-0x423a1fff irq 9 at device 8.0 on pci0
    fxp0: using memory space register mapping
    fxp0: Ethernet address 00:a0:c9:8a:ac:aa
    fxp0: PCI IDs: 8086 1229 8086 0001 0002
    fxp0: Dynamic Standby mode is disabled
    miibus0: <MII bus> on fxp0
    inphy0: <i82555 10/100 media interface> on miibus0
    inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    fxp0: bpf attached
    fxp0: interrupting at ISA irq 9
    pci0: <old, non-VGA display device> at device 10.0 (no driver attached)
    xl0: <3Com 3c905B-TX Fast Etherlink XL> port 0x10000-0x1007f mem 0x423a2000-0x423a207f irq 10 at device 11.0 on pci0
    xl0: using memory mapped I/O
    xl0: Ethernet address: 00:50:04:4b:25:01
    xl0: media options word: a
    xl0: found MII/AUTO
    miibus1: <MII bus> on xl0
    bmtphy0: <3c905B 10/100 internal PHY> on miibus1
    bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    xl0: bpf attached
    xl0: interrupting at ISA irq 10
    atapci0: <AcerLabs Aladdin UDMA33 controller> port 0x100b0-0x100bf,0x374-0x377,0x170-0x17f,0x3f4-0x3f7,0x1f0-0x1ff irq 15 at device 16.0 on pci0
    ata0: at 0x1f0 irq 14 on atapci0
    ata0: interrupting at ISA irq 14
    ata0: [MPSAFE]
    ata1: reset tp1 mask=03 ostat0=50 ostat1=51
    ata1-master: stat=0x80 err=0x80 lsb=0x80 msb=0x80
    ata1-slave: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
    ata1-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00
    ata1: reset tp2 mask=03 stat0=50 stat1=10 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
    ata1: at 0x170 irq 15 on atapci0
    ata1: interrupting at ISA irq 15
    ata1: [MPSAFE]
    pci0: <old, non-VGA display device> at device 17.0 (no driver attached)
    Trying Read_Port at 203
    ESS0006: adding io range 0x800-0xfff, size=0x8, align=0x8
    ESS1869: start dependent (0)
    ESS1869: adding dma mask 0x2
    ESS1869: adding dma mask 0x9
    ESS1869: adding irq mask 0x20
    ESS1869: adding io range 0x220-0x22f, size=0x10, align=0
    ESS1869: adding io range 0x388-0x38b, size=0x4, align=0
    ESS1869: adding io range 0x330-0x331, size=0x2, align=0
    ESS1869: start dependent (1)
    ESS1869: adding dma mask 0x2
    ESS1869: adding dma mask 0x9
    ESS1869: adding irq mask 0x6a0
    ESS1869: adding io range 0x220-0x24f, size=0x10, align=0x20
    ESS1869: adding io range 0x388-0x38b, size=0x4, align=0
    ESS1869: adding io range 0x300-0x331, size=0x2, align=0x30
    ESS1869: start dependent (1)
    ESS1869: adding dma mask 0xb
    ESS1869: adding dma mask 0xb
    ESS1869: adding irq mask 0x1ea0
    ESS1869: adding io range 0x220-0x28f, size=0x10, align=0x20
    ESS1869: adding io range 0x388-0x38b, size=0x4, align=0
    ESS1869: adding io range 0x300-0x331, size=0x2, align=0x30
    ESS1869: start dependent (1)
    ESS1869: adding dma mask 0xb
    ESS1869: adding dma mask 0xb
    ESS1869: adding irq mask 0x1ea0
    ESS1869: adding io range 0x220-0x28f, size=0x10, align=0x20
    ESS1869: adding io range 0x388-0x38b, size=0x4, align=0
    ESS1869: adding io range 0x800-0xfff, size=0x2, align=0x2
    ESS1869: start dependent (2)
    ESS1869: adding dma mask 0xb
    ESS1869: adding dma mask 0xb
    ESS1869: adding irq mask 0x1ea0
    ESS1869: adding io range 0x220-0x28f, size=0x10, align=0x20
    ESS1869: adding io range 0x800-0xfff, size=0x4, align=0x4
    ESS1869: adding io range 0x800-0xfff, size=0x2, align=0x2
    ESS1869: end dependent
    ESS0001: start dependent (0)
    ESS0001: adding io range 0x201-0x201, size=0x1, align=0
    ESS0001: start dependent (1)
    ESS0001: adding io range 0x200-0x20f, size=0x1, align=0x1
    ESS0001: end dependent
    sc: sc0 already exists; skipping it
    vga: vga0 already exists; skipping it
    isa_probe_children: disabling PnP devices
    isa_probe_children: probing non-PnP devices
    atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
    atkbd0: <AT Keyboard> irq 1 on atkbdc0
    kbd0: atkbd0, generic (0), config:0x0, flags:0x1f0000
    atkbd0: interrupting at ISA irq 1
    psm0: current command byte:0061
    psm0: failed to reset the aux device.
    fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
    fdc0: interrupting at ISA irq 6
    mcclock0: <MC146818A real time clock> at port 0x70-0x71 on isa0
    Calibrating clock(s) ... PCC clock: 598977344 Hz (firmware 598802395 Hz)
    i8254 clock: 1191130 Hz
    CLK_USE_I8254_CALIBRATION not specified - using default frequency
    ppc0: using extended I/O port range
    ppc0: EPP SPP
    ppc0: <Parallel port> at port 0x3bc-0x3c3 irq 7 on isa0
    ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
    ppbus0: <Parallel port bus> on ppc0
    lpt0: <Printer> on ppbus0
    lpt0: Polled port
    ppi0: <Parallel I/O> on ppbus0
    ppc0: interrupting at ISA irq 7
    sc0: <System console> on isa0
    sc0: VGA <16 virtual consoles, flags=0x0>
    sc0: fb0, kbd0, terminal emulator: sc (syscons terminal)
    sio0: irq maps: 0x21 0x31 0x21 0x21
    sio0 at port 0x3f8-0x3ff irq 4 on isa0
    sio0: type 16550A, console
    sio0: interrupting at ISA irq 4
    sio1: irq maps: 0x31 0x39 0x31 0x31
    sio1 at port 0x2f8-0x2ff irq 3 on isa0
    sio1: type 16550A
    sio1: interrupting at ISA irq 3
    vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
    fb0: vga0, vga, type:VGA (5), flags:0x7007f
    fb0: port:0x3c0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000
    fb0: init mode:24, bios mode:3, current mode:24
    fb0: window:0xb8000 size:32k gran:32k, buf:0 size:32k
    VGA parameters upon power-up
    50 18 10 00 00 00 03 00 02 6f 5f 4f 50 82 55 81
    bf 1f 00 4f 00 0f 00 00 ff ff 9c 8e 8f 28 1f 96
    b9 a3 ff 00 04 02 14 01 05 03 07 38 3c 3a 3e 39
    3d 3b 3f 04 00 0f 08 00 00 00 00 00 10 0e 00 ff
    VGA parameters in BIOS for mode 24
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    EGA/VGA parameters to be used for mode 24
    50 18 10 00 00 00 03 00 02 6f 5f 4f 50 82 55 81
    bf 1f 00 4f 00 0f 00 00 ff ff 9c 8e 8f 28 1f 96
    b9 a3 ff 00 04 02 14 01 05 03 07 38 3c 3a 3e 39
    3d 3b 3f 04 00 0f 08 00 00 00 00 00 10 0e 00 ff
    isa_probe_children: probing PnP devices
    unknown: <ESS ES1869 Plug and Play AudioDrive> failed to probe at port 0x800-0x807 on isa0
    unknown: <ESS ES1869 Plug and Play AudioDrive> failed to probe at port 0x330-0x331,0x388-0x38b,0x220-0x22f irq 5 drq 0,1 on isa0
    unknown: <ESS ES1869 Plug and Play AudioDrive> failed to probe at port 0x201 on isa0
    procfs registered
    Timecounter "i8254" frequency 1193182 Hz quality 0
    Timecounter "alpha" frequency 598977344 Hz quality 0
    Timecounters tick every 0.976 msec
    lo0: bpf attached
    ata1-slave: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
    ata1-master: pio=0x0c wdma=0x22 udma=0x45 cable=40pin
    ad0: setting UDMA33 on AcerLabs Aladdin chip
    GEOM: create disk ad0 dp=0xfffffc0000b250c0
    ad0: <IC35L040AVER07-0/ER4OA41A> ATA-5 disk at ata1-master
    ad0: 39266MB (80418240 sectors), 79780 C, 16 H, 63 S, 512 B
    ad0: 16 secs/int, 1 depth queue, UDMA33
    GEOM: new disk ad0
    ad0: TIMEOUT - READ_DMA retrying (2 retries left)
    ata1: resetting devices ..
    ata1: reset tp1 mask=03 ostat0=58 ostat1=50
    ad0: stat=0x80 err=0x80 lsb=0x80 msb=0x80
    acd0: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
    ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
    ata1: reset tp2 mask=03 stat0=50 stat1=10 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
    acd0: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
    ad0: pio=0x0c wdma=0x22 udma=0x45 cable=40pin
    done
    ad0: TIMEOUT - READ_DMA retrying (1 retry left)
    ata1: resetting devices ..
    ata1: reset tp1 mask=03 ostat0=58 ostat1=50
    ad0: stat=0x80 err=0x80 lsb=0x80 msb=0x80
    acd0: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
    ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
    ata1: reset tp2 mask=03 stat0=50 stat1=10 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
    acd0: setting PIO4 on AcerLabs Aladdin chip
    acd0: <CD-ROM CDU4011/UY0A> CDROM drive at ata1 as slave
    acd0: read 6890KB/s (6890KB/s), 120KB buffer, PIO4
    acd0: Reads: CDR, CDRW, CDDA, packet
    acd0: Writes:
    acd0: Audio: play, 255 volume levels
    acd0: Mechanism: ejectable tray, unlocked
    acd0: Medium: no/blank disc
    acd0: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
    ad0: pio=0x0c wdma=0x22 udma=0x45 cable=40pin
    done
    ata1: resetting devices ..
    ata1: reset tp1 mask=03 ostat0=58 ostat1=50
    ad0: stat=0x80 err=0x80 lsb=0x80 msb=0x80
    acd0: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
    ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
    ata1: reset tp2 mask=03 stat0=50 stat1=10 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
    acd0: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
    ad0: pio=0x0c wdma=0x22 udma=0x45 cable=40pin
    done
    ad0: FAILURE - READ_DMA timed out
    ad0: FAILURE - READ_DMA status=1<ERROR> error=0
    ad0: TIMEOUT - READ_DMA retrying (2 retries left)
    ata1: resetting devices ..
    ata1: reset tp1 mask=03 ostat0=58 ostat1=50
    ad0: stat=0x80 err=0x80 lsb=0x80 msb=0x80
    acd0: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
    ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
    ata1: reset tp2 mask=03 stat0=50 stat1=10 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
    acd0: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
    ad0: pio=0x0c wdma=0x22 udma=0x45 cable=40pin
    done
    ad0: TIMEOUT - READ_DMA retrying (1 retry left)
    ata1: resetting devices ..
    ata1: reset tp1 mask=03 ostat0=58 ostat1=50
    ad0: stat=0x80 err=0x80 lsb=0x80 msb=0x80
    acd0: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
    ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
    ata1: reset tp2 mask=03 stat0=50 stat1=10 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
    acd0: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
    ad0: pio=0x0c wdma=0x22 udma=0x45 cable=40pin
    done
    ata1: resetting devices ..
    ata1: reset tp1 mask=03 ostat0=58 ostat1=50
    ad0: stat=0x80 err=0x80 lsb=0x80 msb=0x80
    acd0: stat=0x10 err=0x01 lsb=0x14 msb=0xeb
    ad0: stat=0x50 err=0x01 lsb=0x00 msb=0x00
    ata1: reset tp2 mask=03 stat0=50 stat1=10 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
    acd0: pio=0x0c wdma=0x22 udma=0x42 cable=40pin
    ad0: pio=0x0c wdma=0x22 udma=0x45 cable=40pin
    done
    ad0: FAILURE - READ_DMA timed out
    ad0: FAILURE - READ_DMA status=1<ERROR> error=0
    Mounting root from ufs:/dev/ad0a
    setrootbyname failed
    ffs_mountroot: can't find rootvp
    Root mount failed: 6

    Manual root filesystem specification:
      <fstype>:<device> Mount <device> using filesystem <fstype>
                           eg. ufs:/dev/da0a
      ? List valid disk boot devices
      <empty line> Abort manual input

    mountroot>
    panic: Root mount failed, startup aborted.
    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"


  • Next message: Stuart Walsh: "Re: Atmel AT76C503 USB 802.11b device driver"