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].
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.