Bug 41959 - Kernel fails to detect UDMA 100 Drive/Cable
Summary: Kernel fails to detect UDMA 100 Drive/Cable
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel
Version: 7.1
Hardware: i686
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Arjan van de Ven
QA Contact: Brock Organ
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2001-05-23 13:40 UTC by Jeremy Sanders
Modified: 2007-04-18 16:33 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2001-05-23 13:40:09 UTC
Embargoed:


Attachments (Terms of Use)

Description Jeremy Sanders 2001-05-23 13:40:05 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux 2.4.2-2 i686; en-US; rv:0.8.1+)
Gecko/20010430

Description of problem:
Using the stock RedHat 7.1 kernel or rawhide 2.4.3-5, the IDE driver
wrongly detects 40-way cables instead of 80-way cables. It selects UDMA 33
mode instead of UDMA 100 mode.

The machine has a VIA vt82c686b southbridge. The file /proc/ide/via
contains the following:
----------VIA BusMastering IDE Configuration----------------
Driver Version:                     3.20
South Bridge:                       VIA vt82c686b
Revision:                           ISA 0x40 IDE 0x6
BM-DMA base:                        0xd000
PCI clock:                          33MHz
Master Read  Cycle IRDY:            0ws
Master Write Cycle IRDY:            0ws
BM IDE Status Register Read Retry:  yes
Max DRDY Pulse Width:               No limit
-----------------------Primary IDE-------Secondary IDE------
Read DMA FIFO flush:          yes                 yes
End Sector FIFO flush:         no                  no
Prefetch Buffer:               no                  no
Post Write Buffer:             no                  no
Enabled:                      yes                 yes
Simplex only:                  no                  no
Cable Type:                   40w                 40w
-------------------drive0----drive1----drive2----drive3-----
Transfer Mode:       UDMA       PIO      UDMA       PIO
Address Setup:       30ns     120ns      30ns      30ns
Cmd Active:          90ns      90ns      90ns      90ns
Cmd Recovery:        30ns      30ns      30ns      30ns
Data Active:         90ns     330ns      90ns      90ns
Data Recovery:       30ns     270ns      30ns      30ns
Cycle Time:          60ns      50ns      60ns      90ns
Transfer Rate:   33.3MB/s  40.0MB/s  33.3MB/s  22.2MB/s

When I use a 2.4.4 kernel built from scratch, the Cable Type line changes
to 80w, and UDMA 100 is selected. Timings from hdparm are substantially
better with the 2.4.4 kernel (34 MB/s compared to 22MB/s).


How reproducible:
Always

Steps to Reproduce:
1. Boot machine


Additional info:

Athlon 1300 system. BIOS reports UDMA 100 on drives.

/proc/pci contains:
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 3).
      Prefetchable 32 bit memory at 0xd0000000 [0xd3ffffff].
  Bus  0, device   1, function  0:
    PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP] (rev 0).
      Master Capable.  No bursts.  Min Gnt=12.
  Bus  0, device   7, function  0:
    ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 64).
  Bus  0, device   7, function  1:
    IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 6).
      Master Capable.  Latency=32.  
      I/O at 0xd000 [0xd00f].
  Bus  0, device   7, function  2:
    USB Controller: VIA Technologies, Inc. UHCI USB (rev 22).
      IRQ 5.
      Master Capable.  Latency=32.  
   I/O at 0xd400 [0xd41f].
  Bus  0, device   7, function  3:
    USB Controller: VIA Technologies, Inc. UHCI USB (#2) (rev 22).
      IRQ 5.
      Master Capable.  Latency=32.  
      I/O at 0xd800 [0xd81f].
  Bus  0, device   7, function  4:
    Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 64).
      IRQ 9.
  Bus  0, device   7, function  5:
    Multimedia audio controller: VIA Technologies, Inc. AC97 Audio
Controller (rev 80).
      IRQ 11.
      I/O at 0xdc00 [0xdcff].
      I/O at 0xe000 [0xe003].
      I/O at 0xe400 [0xe403].
  Bus  0, device  12, function  0:
    Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 12).
      IRQ 10.
      Master Capable.  Latency=32.  Min Gnt=8.Max Lat=56.
      Non-prefetchable 32 bit memory at 0xda020000 [0xda020fff].
      I/O at 0xec00 [0xec3f].
      Non-prefetchable 32 bit memory at 0xda000000 [0xda01ffff].
  Bus  1, device   0, function  0:
    VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 130).
      IRQ 5.
      Master Capable.  Latency=32.  Min Gnt=16.Max Lat=32.
      Prefetchable 32 bit memory at 0xd4000000 [0xd5ffffff].
      Non-prefetchable 32 bit memory at 0xd6000000 [0xd6003fff].
      Non-prefetchable 32 bit memory at 0xd7000000 [0xd77fffff].

Comment 1 Arjan van de Ven 2001-05-23 13:59:47 UTC
The cable-autodetection on via chipsets is not reliable, so we disabled that.
If you are sure you have the proper cable (which you are), you can override it
by specifying "ide0=ata66" on the lilo commandline.


Note You need to log in before you can comment on or make changes to this bug.