Skip to contentSkip to conversation

2.4.18 (and maybe earlier versions) can't see my IDE disks where 2.2 can

DISCUSSION Nix 2 participants 3 messages Jun 30, 2002 – Jul 1, 2002

lore
Share & tools
lore

Nix

author
#0 lore raw

I'm using a ten year old 486 as a firewall, with an aged transparent 2.5Mb Promise caching IDE controller managing a couple of fairly bog-standard IDE disks (one a 420Mb 1989-vintage Western Digital of some kind, the other a 1994-vintage 1Gb IBM disk). I can't find out the model numbers without taking the machine to pieces, because even with 2.2.20 the (new) ide driver says

Jun 30 00:33:50 esperi kernel: hda: non-IDE drive, CHS=2047/16/63
Jun 30 00:33:50 esperi kernel: hdb: non-IDE drive, CHS=895/15/62
Jun 30 00:33:50 esperi kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

but then it finds the partitions OK:

Jun 30 00:33:50 esperi kernel: Partition check:
Jun 30 00:33:50 esperi kernel:  hda: hda1 hda2 hda3 < hda5 hda6 hda7 > hda4
Jun 30 00:33:50 esperi kernel:  hdb: hdb1 < hdb5 hdb6 hdb7 >

2.4 doesn't get anywhere near this far. It finds the IDE controller but fails to find any of the attached drives, and panics because it can't mount /.

When I try to force it with kernel parameters, viz `hda=2047,16,63 hdb=895,15,62', it says

hda6: bad access: block=2, count=2
end_request: I/O error, dev 03:06 (hda), sector 2

and then panics because it can't mount root.

I must admit to not knowing where to start debugging this one.

The old disk-only driver works OK with this machine, but it doesn't support IRQ-based transfer that I can see, with the result that my 16450 UART is dropping incoming packets like confetti :((((

(log from the old driver starting up in 2.4:

Jun 30 13:00:44 esperi kernel: hda: 1007MB, CHS=2047/16/63 
Jun 30 13:00:44 esperi kernel: hdb: 406MB, CHS=895/15/62 
Jun 30 13:00:44 esperi kernel: Partition check: 
Jun 30 13:00:44 esperi kernel:  hda: hda1 hda2 hda3 < hda5 hda6 hda7 > hda4 
Jun 30 13:00:44 esperi kernel:  hdb: hdb1 < hdb5 hdb6 hdb7 > 

pretty uninformative, really.)

Anyone got any idea how I could start to debug this? I could really do with a driver that supports IRQ on this machine...

Signature · 3 lines
`What happened?'
                 `Nick shipped buggy code!'
                                             `Oh, no dinner for him...'
#1 lore raw
Quoted 6 lines · Nix

I'm using a ten year old 486 as a firewall, with an aged transparent 2.5Mb Promise caching IDE controller managing a couple of fairly bog-standard IDE disks (one a 420Mb 1989-vintage Western Digital of some kind, the other a 1994-vintage 1Gb IBM disk). I can't find out the model numbers without taking the machine to pieces, because even with 2.2.20 the (new) ide driver says

If 2.4 kernel does not work:
Andre Hedrick <[email protected]> [09 apr 2002]
ATA/ATAPI Storage Architect [2.0,2.2,2.4] HBA interface developer
Serial ATA Architect [future release] Voting NCITS member AT-Attachment Committee

If 2.5 kernel does not work:
Martin Dalecki <[email protected]> [11 mar 2002]
IDE subsystem maintainer for 2.5 (mail Vojtech Pavlik <[email protected]> too)

Include lspci data and .config
--
vda

author
#2 lore raw
Quoted 7 lines · Denis Vlasenko
Quoted 6 lines · Nix

I'm using a ten year old 486 as a firewall, with an aged transparent 2.5Mb Promise caching IDE controller managing a couple of fairly bog-standard IDE disks (one a 420Mb 1989-vintage Western Digital of some kind, the other a 1994-vintage 1Gb IBM disk). I can't find out the model numbers without taking the machine to pieces, because even with 2.2.20 the (new) ide driver says

[snip --- probe fails to pick up any drives in 2.4, 2.2 says `non-IDE disk'
but then works OK: if detection is forced with kernel parameters, 2.4 says
`hda6: bad access: block=2, count=2'... old hd.c driver works, but...]

Quoted 2 lines

If 2.4 kernel does not work:
Andre Hedrick <[email protected]> [09 apr 2002]

[so copied: Andre, the earlier post is at
<http://www.uwsg.iu.edu/hypermail/linux/kernel/0206.3/0679.html>.]

Quoted 1 line

Include lspci data and .config

lspci? On a 486 that's considerably older than the PCI spec itself? It's ISA here, as far as the eye can see... as for ATA/ATAPI, forget it :)

One of the problems I'm having is that without PCI info, with a box that's old enough that I can't easily tell what the hard drive models actually *are*, it's hard to know where to start debugging :) I may have to pull it apart and see if the drives have identifying labels on them.

I think that one of the problem spots may be that do_probe() spends most of its time trying to fire ATA commands at the drive: I don't expect the drives in *this* machine to make head or tail of that.

Anyway, I'm going to start a cautious forward merge of the 2.2 ide-probe code into 2.4, and see when the behaviour changes. (Cautious and *slow*, because this box is a firewall that has to be running most of the time, so I'll have to sneak debugging in at odd hours. :( )

Signature · 3 lines
`What happened?'
                 `Nick shipped buggy code!'
                                             `Oh, no dinner for him...'