PDA

View Full Version : IPC 80286 + IDE detect hangs



SpidersWeb
April 19th, 2012, 11:45 AM
I know the solution here is to use a normal sized hard drive and not XTIDE but I was curious as to what might be going on with this machine.

It arrived yesterday with no hard drive but working fine. It has Pheonix 80286 ROM BIOS PLUS 3.1 in ROM, 1Mb chip memory, a 256K VGA card and a multi I/O with IDE.
I used my 1.2Mb boot disk with ZIP100 drivers to mount my Zip drive - that was all good.

I installed a 240Mb IDE drive and tried using IDESDI (little tool that reports back on IDE IDENTIFY), it said 'AT controller found' then locked up for around 30-60 seconds, then dumped back to the command prompt with no drive information. Running the program again and it wont find a controller.

So next I throw in a tested network card with the AT version of the XTIDE BIOS (v2) and it detected my drive immediately as 1F0 Master, but then the machine hardware locks at 1FO slave.

So I tried other drives, IO controllers, and IDE cables - all the same result.
I even fitted a slave drive, and it detects both instantly, but when it looks for a seconday channel the machine hardware locks (I left it for 4-5 minutes).

What could cause the thing to hardware lock when it doesn't find a device?? This card/BIOS has been tested on two 386 boards without issue.

Just after some theories :) I have a 40Mb IDE drive that matches a drive type in the BIOS I'm going to use, just really curious!!


EDIT: oh and the Zip drive is parallel port based, just in case you were wondering if that was an issue

Chuck(G)
April 19th, 2012, 12:47 PM
The ZIP shouldn't matter. IDESDI drops you back to the command prompt after the drive refuses to respond with an interrupt (Probably should throw a message in there).

Have a look and make sure that the interrupts are jumpered or configured correctly--and that they're not being hogged by another peripheral.

hargle
April 19th, 2012, 12:52 PM
Not quite following all of the steps and details yet, but some things sound normal:

I installed a 240Mb IDE drive and tried using IDESDI (little tool that reports back on IDE IDENTIFY), it said 'AT controller found' then locked up for around 30-60 seconds, then dumped back to the command prompt with no drive information. Running the program again and it wont find a controller.
Running it again, after it had gummed up whatever it was trying to do to the controller makes perfect sense. That software did something that locked up the controller and the only way out at this point is likely to power cycle the machine. (With IDE, the controller is actually on the drive itself, so it would even be immune to a reset switch press) This if it's hosed up the IDE interface that badly, neither drive will materialize.



So next I throw in a tested network card with the AT version of the XTIDE BIOS (v2) and it detected my drive immediately as 1F0 Master, but then the machine hardware locks at 1FO slave.

Unless the IDESDI program is actually calling BIOS functions to do some of its work, the lockup on 1f0 slave should be exactly the same as without the XTIDE bios installed. That doesn't make much sense.



What could cause the thing to hardware lock when it doesn't find a device?? This card/BIOS has been tested on two 386 boards without issue.

I'd make sure there isn't a memory map conflict at D000 (or wherever you have the XTIDE BIOS installed at). Try running the biosdrvs.com that came with the xtide universal BIOS. it probably does something very similar to this IDESDI program

Chuck(G)
April 19th, 2012, 01:04 PM
Not quite following all of the steps and details yet, but some things sound normal:

Running it again, after it had gummed up whatever it was trying to do to the controller makes perfect sense. That software did something that locked up the controller and the only way out at this point is likely to power cycle the machine. (With IDE, the controller is actually on the drive itself, so it would even be immune to a reset switch press) This if it's hosed up the IDE interface that badly, neither drive will materialize.


Unless the IDESDI program is actually calling BIOS functions to do some of its work, the lockup on 1f0 slave should be exactly the same as without the XTIDE bios installed. That doesn't make much sense.

IDESDI is a port-level program. Most likely what happened was that it issued an IDENTIFY command and got no interrupt. The drive stayed busy with an unsatisfied DRQ.

That's why I'd look to the interrupt situation.

hargle
April 19th, 2012, 02:06 PM
oooh! interrupts. what a novel concept! :)
yep, that makes perfect sense.

SpidersWeb
April 19th, 2012, 03:38 PM
hah I didn't realise that was your utility Chuck! Nice. Took me ages to find a tool that did that.

Will run a few programs tonight to look at mappings just to check what is where.

So, if it is the DRQ issue suggested, I'm guessing the motherboard or BIOS is not doing something a normal AT would in a situation where a device isn't present?

Appreciate the discussion, it is good edumication for my brains. So much I don't know.... yet.

SpidersWeb
April 19th, 2012, 03:41 PM
Unless the IDESDI program is actually calling BIOS functions to do some of its work, the lockup on 1f0 slave should be exactly the same as without the XTIDE bios installed. That doesn't make much sense.

By "it" I actually meant XTIDE, should've been more clear :)
XTIDE was detecting my drives instantly and then locking the machine as soon as it tried to detect a non-existant drive.

IDESDI was just a tool I tried before inserting my NIC with XTIDE BIOS.

SpidersWeb
April 20th, 2012, 10:26 PM
Ok, so the only solution in the end that worked was installing 2 hard drives + XTIDE BIOS set to only check for one IDE channel.

But I found that if I remove the second drive, sometimes XTIDE doesn't hang but rather just waits for a very long time, I can either wait it out (2 minutes) or hit CTRL+ALT+MINUS - as soon as the turbo is on it instantly (not 1 second, or 2 seconds, INSTANTLY) proceeds to the boot menu. Most times it seems to hang, which made me wonder if it was a timing issue, but with two drives installed and the turbo off it boots right up.

Can't find any physical way to keep the turbo on, guessing it's a ROM setting that is not in GSETUP because it is enabled until after the memory test. I did however find 4 switches on the motherboard and found:

SW1 - disable option ROMs
SW2 - no change?
SW3/4 - memory config - 256Kb OR 512KB or 640KB or 512Kb + 512Kb. I couldn't make it do 640+384 which was a tad frustrating.

I really don't want to waste a second IDE drive, so going to try burning the XTIDE BIOS with the slave set to 0/0/0 (not sure if that works for XTIDE as 'disabled' but will find out I guess), or use my 600Mb Seagate which has bad sectors (just can't find the damn thing!!).

aitotat
April 21st, 2012, 12:24 AM
XTIDE was detecting my drives instantly and then locking the machine as soon as it tried to detect a non-existant drive.

There is a timeout of 500 ms (10 s for first drive) to wait drive reply during drive detection. Drive is assumed to be absent if it does not reply ready during that time. Timeout is implemented by polling system timer ticks from BIOS Data Area. Because drives are detected after main BIOS calls boot loader, the system timer should be ticking correctly.

But in your case it does not seem to work and so timeout is never reached. Try to boot to DOS with a boot disk and try time command few times to see if the system timer works.

SpidersWeb
April 21st, 2012, 01:50 AM
There is a timeout of 500 ms (10 s for first drive) to wait drive reply during drive detection. Drive is assumed to be absent if it does not reply ready during that time. Timeout is implemented by polling system timer ticks from BIOS Data Area. Because drives are detected after main BIOS calls boot loader, the system timer should be ticking correctly.

But in your case it does not seem to work and so timeout is never reached. Try to boot to DOS with a boot disk and try time command few times to see if the system timer works.

Yep, RTC works correctly, I set the date/time yesterday and it's ticking just fine (turbo ON or OFF).

Tried using a preconfigured XTIDE BIOS with slave set to CHS of 0/0/0 but it still tries to autodetect causing the hang :/ I was hoping 0/0/0 would be equivilent to disabled.

SpidersWeb
April 21st, 2012, 03:06 AM
Yep, RTC works correctly, I set the date/time yesterday and it's ticking just fine (turbo ON or OFF).

Tried using a preconfigured XTIDE BIOS with slave set to CHS of 0/0/0 but it still tries to autodetect causing the hang :/ I was hoping 0/0/0 would be equivilent to disabled.

hah it doesn't autodetect, it says it's 0.3Kb and DOS thinks it's 8Gb. I'd better switch the ROM chip back.
I also thought since I'm using an 8KB XTIDE image, I could (although I don't know enough assembler) make another option ROM that enables the turbo before XTIDE. For the mean time it just has two hard drives and is booting fine.
If anyone can think of any tests I'd be glad to try them out. CheckIt didn't find any faults.

aitotat
April 21st, 2012, 08:36 AM
Yep, RTC works correctly
RTC is used only to initialize the system timer tick value in the BIOS Data Area. If RTC is not present, the ticks starts at zero. Intel 8254 Programmable Interval Timer is used to generate interrupt every 54.9 ms. This is what XTIDE Universal BIOS uses for timeout checks (because it is available on every PC, like many XT systems without RTC). For some reason there is no interrupt. The BIOS might leave the 8254 masked (so CPU never gets the interrupt request) or the BIOS interrupt handler does not update the BDA.


I was hoping 0/0/0 would be equivilent to disabled.
Sorry but specifying the CHS manually does not prevent autodetection. The drive is told to use CHS addressing in the final stages of initialization.

SpidersWeb
April 22nd, 2012, 12:03 PM
Ahhhh got you, cheers :) That makes a lot of sense.

Given that it's symptoms changed, I'm guessing possibly a bad connection somewhere, I'll need to see if I can get any timer (or other) failures with applications after booting.
CheckIt had no issues but I never spotted a Timer test, just RTC.


Edit: video of successful startup with XTIDE + 2 x HDD, it's not terribly exciting, but if anyone is really bored: http://www.youtube.com/watch?v=QnvD82hvhbA

SpidersWeb
April 23rd, 2012, 11:23 AM
Found something I beleive is odd.

Timer 2 appears screwy. Viewing it in CheckitPro it has two values, -923 which stays static, and another which changes every second - but instead of counting it goes -9 then -7 then -5 then -2 then -9 etc I don't think that's right, it doesn't feel right.

I have no faults in games (yet) or applications I've installed (yet).
If someone could let me know their thoughts about the negative values that'd be great. I haven't compared it to another system yet.
Using version 3 of CKPRO (1994).