2002-03-11 16:53:11

by Art Haas

[permalink] [raw]
Subject: Troubles with ALI15X3 driver in 2.4 kernels

Hi.

In my ongoing effort to get the most from my old machine, I found
I'd been missing the ALI15X3 driver code (I'd unselected at some
point when configuring the kernel) ...

...
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ALI15X3: IDE controller on PCI bus 00 dev 58
ALI15X3: detected chipset, but driver not compiled in!
PCI: No IRQ known for interrupt pin A of device 00:0b.0. Please try using pci=biosirq.
ALI15X3: chipset revision 32
ALI15X3: not 100% native mode: will probe irqs later
ALI15X3: simplex device: DMA disabled
ide0: ALI15X3 Bus-Master DMA disabled (BIOS)
ALI15X3: simplex device: DMA disabled
ide1: ALI15X3 Bus-Master DMA disabled (BIOS)
hda: ST33232A, ATA DISK drive
hdb: ATAPI CDROM, ATAPI CD/DVD-ROM drive
hdc: FUJITSU MPD3084AT, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: 6303024 sectors (3227 MB) w/128KiB Cache, CHS=781/128/63
hdc: 16514064 sectors (8455 MB) w/512KiB Cache, CHS=16383/16/63
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 >
hdc: [PTBL] [1027/255/63] hdc1 hdc2 < hdc5 hdc6 > hdc3
...

So, I reconfigure the kernel, rebuild, install my new kernel, and reboot, but
I've met with no success. The boot messages indicate the kernel has some
apparent problem setting up the hda drive ...

ide_dmaproc: chipset supported ide_dma_timeout func only: 14
hda: status error: staus = 0x58 { DriveReady SeekComplete DataRequest}
... a few more of the same ...
hda: drive not ready for command

The boot up hangs at doing the partition check stuff ...

Partition check:
hda: hda1 hda2 <

... and the hard drive light is on, but nothing happens. So, I'm back to
using a bootable kernel without the ALI15X3 driver.

There is another oddity with this drive ...

# hdparm -i /dev/hda

/dev/hda:

Model=ST33232A, FwRev=3.02, SerialNo=GH593339
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=6253/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=128kB, MaxMultSect=16, MultSect=off
CurCHS=6253/16/63, CurSects=6303024, LBA=yes, LBAsects=6303024
IORDY=on/off, tPIO={min:383,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio3 pio4
DMA modes: mdma0 mdma1 mdma2 udma0 udma1 *udma2
AdvancedPM=no
Segmentation fault
#

This crash is due to the `minor_rev_num' of the drive being
reported as 0xFFFF, which is a little higher than hdparm-4.6
expects. :-)

# cat /proc/ide/hda/identify

0c5a 186d 0000 0010 0000 0000 003f 0000
0000 0000 2020 2020 2020 2020 2020 2020
4748 3539 3333 3339 0000 0100 0004 332e
3032 2020 2020 5354 3333 3233 3241 2020
2020 2020 2020 2020 2020 2020 2020 2020
2020 2020 2020 2020 2020 2020 2020 8010
0000 0f01 0000 0100 0200 0007 186d 0010
003f 2d30 0060 0100 2d30 0060 0000 0007
0003 0078 0078 017f 0078 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0007 ffff 0009 4000 0000 0000 0000 0000 <=== this line ...
0407 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0001 0000 0000 0041 0000 0002 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0080 0001 0311
0141 0401 0200 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

I'd appreciate any help getting the kernel to boot with
the ALI15X3 driver in use. Perhaps the minor_rev_num
value is indicating a bug, or is my hard drive just
bizarre?

My system - i586-pc-linux-gnu
Compiler - gcc-3.0.5 (cvs)
Binutils - 2.12.90.0.1
Kernel - 2.4.19-pre2-ac4

I haven't tried any 2.5 kernels yet, and would like to
stick with 2.4, and with the "-ac" patches merging
in lots of neat things like the O(1) scheduler, rmap,
as well as other fixed, these kernels are my preference.

Even without the "right" driver in use, these kernels
have been performing well, and the addition of rmap
and O(1) has made things even better, so my thanks to
everyone working on these features. Thanks in
advance for suggestions, reading info, patches to
try, etc.

--
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759


2002-03-11 17:05:21

by Alan

[permalink] [raw]
Subject: Re: Troubles with ALI15X3 driver in 2.4 kernels

> ALI15X3: simplex device: DMA disabled
> ide0: ALI15X3 Bus-Master DMA disabled (BIOS)
> ALI15X3: simplex device: DMA disabled
> ide1: ALI15X3 Bus-Master DMA disabled (BIOS)

Is the drive disabled in the BIOS settings ?

> ide_dmaproc: chipset supported ide_dma_timeout func only: 14
> hda: status error: staus = 0x58 { DriveReady SeekComplete DataRequest}
> ... a few more of the same ...
> hda: drive not ready for command

> My system - i586-pc-linux-gnu
> Compiler - gcc-3.0.5 (cvs)

At this point I just lost interest. Please reproduce it with 2.95/2.96 - I'm
betting you can but it would be nice to be sure.

2002-03-11 20:31:51

by Art Haas

[permalink] [raw]
Subject: Re: Troubles with ALI15X3 driver in 2.4 kernels

On Mon, Mar 11, 2002 at 05:20:21PM +0000, Alan Cox wrote:
> > ALI15X3: simplex device: DMA disabled
> > ide0: ALI15X3 Bus-Master DMA disabled (BIOS)
> > ALI15X3: simplex device: DMA disabled
> > ide1: ALI15X3 Bus-Master DMA disabled (BIOS)
>
> Is the drive disabled in the BIOS settings ?
>
> > ide_dmaproc: chipset supported ide_dma_timeout func only: 14
> > hda: status error: staus = 0x58 { DriveReady SeekComplete DataRequest}
> > ... a few more of the same ...
> > hda: drive not ready for command
>
> > My system - i586-pc-linux-gnu
> > Compiler - gcc-3.0.5 (cvs)
>
> At this point I just lost interest. Please reproduce it with 2.95/2.96 - I'm
> betting you can but it would be nice to be sure.
>

Using ...

$ gcc -v
gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20010810 (Debian prerelease)
$

... I saw the same problem as I did when using the gcc-3.0.5 compiler.
Here's my transcription of the kernel output when poking around
with the disks ...

ALI15X3: chipset rev 32
ALI15X3: not 100% native mode, will probe irqs later
ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:pio, hdd:pio
ide0 at 0x1f0-0x1f7, 0x3f6 on irq 14
ide1 at 0x170-0x177, 0x376 on irq 15
hda: 6303024 sectors (3227MB) w/128 kiB Cache, CHS=781/128/63 (U)DMA
hdc: 16514064 sectors (8455MB) w/512 kiB Cache, CHS=16383/16/63 (U)DMA

at this point there are again the messages about ide_dmaproc and
then the "drive not ready for command".

I have an old 2.2 Debian kernel that I booted from, and it has
the driver in it. Here is it's output, if that is of any use ...

...
ALI15X3: IDE controller on PCI bus 00 dev 58
ALI15X3: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:pio, hdd:pio
hda: ST33232A, ATA DISK drive
hdb: ATAPI CDROM, ATAPI CDROM drive
hdc: FUJITSU MPD3084AT, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: ST33232A, 3077MB w/128kB Cache, CHS=781/128/63
hdc: FUJITSU MPD3084AT, 8063MB w/512kB Cache, CHS=16383/16/63
hdb: ATAPI 24X CD-ROM drive, 120kB Cache
Uniform CD-ROM driver Revision: 3.11
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
md driver 0.36.6 MAX_MD_DEV=4, MAX_REAL=8
scsi: <fdomain> Detection failed (no card)
NCR53c406a: no available ports found
sym53c416.c: Version 1.0.0
Failed initialization of WD-7000 SCSI card!
IBM MCA SCSI: Version 3.2
IBM MCA SCSI: No Microchannel-bus present --> Aborting.
This machine does not have any IBM MCA-bus
or the MCA-Kernel-support is not enabled!
megaraid: v1.11 (Aug 23, 2000)
aec671x_detect:
3w-xxxx: tw_findcards(): No cards found.
scsi : 0 hosts.
scsi : detected total.
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 >
hdc: [PTBL] [1027/255/63] hdc1 hdc2 < hdc5 hdc6 > hdc3
apm: BIOS not found.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 156k freed
...

As for the question about the drive being disabled in the BIOS, if
I read you right then the answer is no, the drive is not disabled.
Otherwise I couldn't boot up. As for the settings of things like
DMA, 32-bit mode, etc, I can set much of them with hdparm, though
DMA I could not do, and I've poked around the BIOS configuration
screen looking for what to set, and have come up empty. The BIOS,
BTW, is 'AMIBIOS 8/28/1997 S' and the motherboard has a
"TXpro Pentium PCI" chipset and supports Ultra DMA/33, according
to the manual that came with it.

--
They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759