VOGONS


First post, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie

I'm using some ISA I/O+ATA controller in my old 386SX system and on its settings jumper are missing two pins corresponding to "IOCHREADY (Optional)". What does this IOCHREADY mean and what is the purpose of this setting? All mechanical hard drives I have ever used with this I/O+ATA controller have worked normally without it. I'm just wondering.

Last edited by analog_programmer on 2024-05-11, 08:16. Edited 1 time in total.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 1 of 22, by Trashbytes

User metadata
Rank Oldbie
Rank
Oldbie

Input Output Control Hub or the South Bridge in most cases controls access to all IO systems on the Motherboard from Serial through to Drives, pretty sure USB along with all other Input/Output systems are part of the south bridge in newer modern systems.

In older boards USB/Firewire is controlled through one or more separate ICs, SATA too is also usually a seperate IC on older boards.

On a 386 it may mean Input Output Control Header/Hub which may mean the ICs controlling extra serial IO.

What happens when you put a jumper on that pin ? my guess is it sets the IOCH to the ready state and is for compatibility reasons.

Reply 2 of 22, by vstrakh

User metadata
Rank Member
Rank
Member
Trashbytes wrote on 2024-05-11, 07:28:

Input Output Control Hub or the South Bridge in most cases controls access to all IO systems on the Motherboard

386 is _way_ before any of those things.

analog_programmer wrote on 2024-05-11, 07:22:

I'm using some ISA I/O+ATA controller in my old 386SX system and on its settings jumper are missing two pins corresponding to "IOCHREADY (Optional)". What does this IOCHREADY mean and what is the purpose of this setting? All mechanical hard drives I have ever used with this I/O+ATA controller have worked normally without it. I'm just wondering.

It's all about ISA bus timings and wait states. There is a default ready timeout that gives I/O devices time to perform the request.
Sometimes the device needs more time, and it can pull the CHRDY (or IOCHRDY, IOCHREADY, meaning 'I/O channel ready') signal low to indicate it needs more time, and extra wait cycles are inserted on the ISA bus as long as that signal is held low.
The opposite of the CHRDY is NOWS/0WS - the device can pull that line to signal request completion before the default ready timeout has elapsed.

Your particular card might be just fast enough to not require extra wait states to serve the requests.

Reply 3 of 22, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie
Trashbytes wrote on 2024-05-11, 07:28:
Input Output Control Hub or the South Bridge in most cases controls access to all IO systems on the Motherboard from Serial thro […]
Show full quote

Input Output Control Hub or the South Bridge in most cases controls access to all IO systems on the Motherboard from Serial through to Drives, pretty sure USB along with all other Input/Output systems are part of the south bridge in newer modern systems.

In older boards USB/Firewire is controlled through one or more separate ICs, SATA too is also usually a seperate IC on older boards.

On a 386 it may mean Input Output Control Header/Hub which may mean the ICs controlling extra serial IO.

What happens when you put a jumper on that pin ? my guess is it sets the IOCH to the ready state and is for compatibility reasons.

Well, I don't know if any 486 board ever supported USB or FireWire (IEEE1394) ports. Maybe some industrial boards form late 90's do, but this is not the case.

My controller is just simple standard for its time ISA controller and works fine on 386 or 486 boards. I've soldered the missing pins on the jumper header for this IOCHREADY setting, but I don't want to try it with HDD attached until I'm not 100% sure what this means and what its purpose is 😀 I thought maybe it is short from something like "I/O channel ready", but the purpose is more important.

vstrakh wrote on 2024-05-11, 07:50:
It's all about ISA bus timings and wait states. There is a default ready timeout that gives I/O devices time to perform the requ […]
Show full quote

It's all about ISA bus timings and wait states. There is a default ready timeout that gives I/O devices time to perform the request.
Sometimes the device needs more time, and it can pull the CHRDY (or IOCHRDY, IOCHREADY, meaning 'I/O channel ready') signal low to indicate it needs more time, and extra wait cycles are inserted on the ISA bus as long as that signal is held low.
The opposite of the CHRDY is NOWS/0WS - the device can pull that line to signal request completion before the default ready timeout has elapsed.

Your particular card might be just fast enough to not require extra wait states to serve the requests.

Hah, without meaning to I've hit the abbreviation 😁 Thanks for this explanations!

I have to check if one of the two pins is shorted to ground.**

So, Is this setting for some older drives compatibility or what? Are this cycles chipset related or they're HDD dependent?

P.S. A simple explanation like "use IOCHREADY setting in case of..." or "don't use it in case of..." will be be appreciated, 'cause I've never had user manual for this controller.

Edit: **- I've checked this and it turned out that no ground is involved on the ISA controller's PCB.

Last edited by analog_programmer on 2024-05-13, 04:41. Edited 3 times in total.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 4 of 22, by Trashbytes

User metadata
Rank Oldbie
Rank
Oldbie
vstrakh wrote on 2024-05-11, 07:50:
386 is _way_ before any of those things. […]
Show full quote
Trashbytes wrote on 2024-05-11, 07:28:

Input Output Control Hub or the South Bridge in most cases controls access to all IO systems on the Motherboard

386 is _way_ before any of those things.

analog_programmer wrote on 2024-05-11, 07:22:

I'm using some ISA I/O+ATA controller in my old 386SX system and on its settings jumper are missing two pins corresponding to "IOCHREADY (Optional)". What does this IOCHREADY mean and what is the purpose of this setting? All mechanical hard drives I have ever used with this I/O+ATA controller have worked normally without it. I'm just wondering.

It's all about ISA bus timings and wait states. There is a default ready timeout that gives I/O devices time to perform the request.
Sometimes the device needs more time, and it can pull the CHRDY (or IOCHRDY, IOCHREADY, meaning 'I/O channel ready') signal low to indicate it needs more time, and extra wait cycles are inserted on the ISA bus as long as that signal is held low.
The opposite of the CHRDY is NOWS/0WS - the device can pull that line to signal request completion before the default ready timeout has elapsed.

Your particular card might be just fast enough to not require extra wait states to serve the requests.

Yeah my initial part was before I went back and saw it was 386 Era, I wasn't far off the name though I knew it was part of the IO system. Glad there was someone far more knowledgeable than me about early ISA IO stuff.

Reply 5 of 22, by Trashbytes

User metadata
Rank Oldbie
Rank
Oldbie
analog_programmer wrote on 2024-05-11, 07:54:
Well, I don't know if any 486 board ever supported USB of FireWire (IEEE1394) ports. Maybe some industrial boards form late 90's […]
Show full quote
Trashbytes wrote on 2024-05-11, 07:28:
Input Output Control Hub or the South Bridge in most cases controls access to all IO systems on the Motherboard from Serial thro […]
Show full quote

Input Output Control Hub or the South Bridge in most cases controls access to all IO systems on the Motherboard from Serial through to Drives, pretty sure USB along with all other Input/Output systems are part of the south bridge in newer modern systems.

In older boards USB/Firewire is controlled through one or more separate ICs, SATA too is also usually a seperate IC on older boards.

On a 386 it may mean Input Output Control Header/Hub which may mean the ICs controlling extra serial IO.

What happens when you put a jumper on that pin ? my guess is it sets the IOCH to the ready state and is for compatibility reasons.

Well, I don't know if any 486 board ever supported USB of FireWire (IEEE1394) ports. Maybe some industrial boards form late 90's do, but this is not the case.

My controller is just simple standard for its time ISA controller and works fine on 386 or 486 boards. I've soldered the missing pins on the jumper header for this IOCHREADY setting, but I don't want to try it with HDD attached until I'm not 100% sure what this means and what its purpose is 😀 I thought maybe it is short from something like "I/O channel ready", but the purpose is more important.

vstrakh wrote on 2024-05-11, 07:50:
It's all about ISA bus timings and wait states. There is a default ready timeout that gives I/O devices time to perform the requ […]
Show full quote

It's all about ISA bus timings and wait states. There is a default ready timeout that gives I/O devices time to perform the request.
Sometimes the device needs more time, and it can pull the CHRDY (or IOCHRDY, IOCHREADY, meaning 'I/O channel ready') signal low to indicate it needs more time, and extra wait cycles are inserted on the ISA bus as long as that signal is held low.
The opposite of the CHRDY is NOWS/0WS - the device can pull that line to signal request completion before the default ready timeout has elapsed.

Your particular card might be just fast enough to not require extra wait states to serve the requests.

Hah, without meaning to I've hit the abbreviation 😁 Thanks for this explanations!

I have to check if one of the two pins is shorted to ground.

So, Is this setting for some older drives compatibility or what? Are this cycles chipset related or they're HDD dependent?

Wait States are like traffic lights, where higher wait states simply tell the card or bus to wait a cycle or two, lower wait states let the card go as fast as the bus allows. I remember this wait state stuff for VLB memory settings where you could set the memory to 0 wait states for extra speed or to a higher wait state if the BUS was not able to handle the lower setting. IIRC system memory could also use wait states, I feel the HDD controller may use it in a similar manner.

Reply 6 of 22, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie

Ok, so this is probably more of a CPU/chipset/ISA bus related setting.

But still, in which case I may need it? Slower CPU, slower ISA bus setting, slower HDD?

Last edited by analog_programmer on 2024-05-13, 04:45. Edited 4 times in total.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 7 of 22, by vstrakh

User metadata
Rank Member
Rank
Member
analog_programmer wrote on 2024-05-11, 07:54:

So, Is this setting for some older drives compatibility or what? Are this cycles chipset related or they're HDD dependent?

This line is driven by the devices, the chipset will be listening it to give devices more time.
It's not that it is required. It's not really needed at all unless you're running some really slow device (ISA card or ancient IDE drive) on a faster ISA bus and it's glitching at those speeds. Supporting/enabling CHRDY will allow such device to throttle the bus to give more time to respond.

Reply 8 of 22, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie
vstrakh wrote on 2024-05-11, 08:12:

This line is driven by the devices, the chipset will be listening it to give devices more time.
It's not that it is required. It's not really needed at all unless you're running some really slow device (ISA card or ancient IDE drive) on a faster ISA bus and it's glitching at those speeds. Supporting/enabling CHRDY will allow such device to throttle the bus to give more time to respond.

So, in my case this jumper will remain open.

Edit: Actually HDD sends "I/O channel ready" signal to the chipset, so it's better to be available 'til the drive itself had issues with permanent/stuck "I/O ch. ready" signal.

Last edited by analog_programmer on 2024-05-13, 05:59. Edited 1 time in total.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 9 of 22, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie

I traced back this "IOCHREADY" signal on the controller's PCB. One of the two jumper pins (I soldered them some time ago, just to make it look "complete") is directly connected to ISA slot A-10 pin (I/O CH RDY) and the second pin goes directly to ATA pin-header on pin 27 (IOCHRDY), so no controller logic is involved in this signal.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 10 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
analog_programmer wrote on 2024-05-12, 19:02:

One of the two jumper pins (I soldered them some time ago, just to make it look "complete") is directly connected to ISA slot A-10 pin (I/O CH RDY) and the second pin goes directly to ATA pin-header on pin 27 (IOCHRDY), so no controller logic is involved in this signal.

An ISA IDE "controller" is not really a controller with hard drive logic. In just contains an address decoder that recognizes access to I/O ports 1F0-1F7 and 3F6, and if the port range matches, it forwards these ISA cycles to the IDE cable. The 16-bit ISA bus is also "AT-bus", because it has been introduced in the IBM AT, and that's why the official name for IDE is "AT-bus attachment (ATA)".

Reply 11 of 22, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

I've just encountered this signal/bus setting on my socket 3 single board computer setup.

I was having major digital audio playback issues - popping, clicking etc, regardless of ISA card used, and changing this IOCHREADY option the bios from a default of "disabled" to "enabled" has resolved all audio issues.

I've never seen a bios with that setting before, so it isn't something I've ever had experience in changing, but setting it "on" has clearly improved the digital playback of the sound card (a ymf-719).

My collection database and technical wiki:
https://www.target-earth.net

Reply 12 of 22, by kingcake

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2024-05-12, 19:31:
analog_programmer wrote on 2024-05-12, 19:02:

One of the two jumper pins (I soldered them some time ago, just to make it look "complete") is directly connected to ISA slot A-10 pin (I/O CH RDY) and the second pin goes directly to ATA pin-header on pin 27 (IOCHRDY), so no controller logic is involved in this signal.

An ISA IDE "controller" is not really a controller with hard drive logic. In just contains an address decoder that recognizes access to I/O ports 1F0-1F7 and 3F6, and if the port range matches, it forwards these ISA cycles to the IDE cable. The 16-bit ISA bus is also "AT-bus", because it has been introduced in the IBM AT, and that's why the official name for IDE is "AT-bus attachment (ATA)".

Correct, the IDE ribbon cable is basically just extending the ISA bus to the hard drive. The actual controller is the PCB on the bottom of the drive. IDE means integrated drive electronics. (for ISA controllers)

Reply 13 of 22, by douglar

User metadata
Rank Oldbie
Rank
Oldbie

IOCHRDY means "Input Output Channel Ready" and can be used a short cut to make PIO transfers efficient. The hard drive issues IOCHRDY when it's ready to send or receive data. If the BIOS knows about this, it doesn't have to poll quite as much. Shows up more with VLB controllers. It's on PIN 27, yes?

Reply 14 of 22, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie

Thanks everyone for sharing details about the ATA interface that I never bothered to know.

kingcake wrote on 2024-05-13, 00:15:

Correct, the IDE ribbon cable is basically just extending the ISA bus to the hard drive. The actual controller is the PCB on the bottom of the drive. IDE means integrated drive electronics. (for ISA controllers)

Of course the actual HDD's controller is on HDD itself, but I'm not looking at any HDDs here, but at ISA controller PCB, which is on the motherboard's side.

megatron-uk wrote on 2024-05-12, 22:09:

I was having major digital audio playback issues - popping, clicking etc, regardless of ISA card used, and changing this IOCHREADY option the bios from a default of "disabled" to "enabled" has resolved all audio issues.

I've never seen a bios with that setting before, so it isn't something I've ever had experience in changing, but setting it "on" has clearly improved the digital playback of the sound card (a ymf-719).

douglar wrote on 2024-05-13, 03:00:

IOCHRDY means "Input Output Channel Ready" and can be used a short cut to make PIO transfers efficient. The hard drive issues IOCHRDY when it's ready to send or receive data. If the BIOS knows about this, it doesn't have to poll quite as much.

Does all that mean that it's better the "I/O channel ready" signal to be available i.e. the "IOCHREADY" jumper on the ISA I/O+ATA controller to be shorted/closed?

douglar wrote on 2024-05-13, 03:00:

Shows up more with VLB controllers. It's on PIN 27, yes?

Yes, it is on pin 27 of the 40-pin ATA connector and comes from pin A-10 on the ISA slot.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 15 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
analog_programmer wrote on 2024-05-13, 04:33:

Does all that mean that it's better the "I/O channel ready" signal to be available i.e. the "IOCHREADY" jumper on the ISA I/O+ATA controller to be shorted/closed?

On ISA controllers, it's usually not needed. The standard ISA wait states are slow enough that the transfer works without using IOCHREADY for all drives, except possibly some very old or very odd drives. IOCHREADY got important to enable faster PIO modes, especially PIO mode 3, for drives that could take the speed most of the time, but need on occasional break to flush some transfer buffer. If IOCHREAD is constantly used at some PIO mode, it's easier to just not support that mode and require the IDE interface card to run at a slower cycle time (lower PIO mode).

I've seen a drive with broken IOCHREADY output that pulls the line constantly low, and thus halts the ISA bus completely as soon as it is connected. That drive happens to work on a Tekram DC-680, which constantly runs the IDE drives in PIO 0, and obviously without IOCHRDY. As PIO 0 is faster than the default ISA port I/O timing in most systems, all drives that work on that Tekram controller should work fine with the IOCHRDY jumper removed.

On the other hand, installing that jumper shouldn't hurt, and most ISA IDE interfaces have the line permanently connected. I thus suggest to install the jumper unless you encounter a broken drive that requires IOCHRDY to be ignored.

Reply 16 of 22, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie

Aha, this makes sense. And it's actually backwards of what I thought according to vstrakh's explanations.

Right now I'm using 250 MB HDD attached to this ISA controller and this hard drive supports PIO mode 3 . When I find some time, I'll test drive's transfer speed with and without IOCHREADY jumper shorted.

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 17 of 22, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie
douglar wrote on 2024-05-13, 03:00:

IOCHRDY means "Input Output Channel Ready" and can be used a short cut to make PIO transfers efficient. The hard drive issues IOCHRDY when it's ready to send or receive data. If the BIOS knows about this, it doesn't have to poll quite as much. Shows up more with VLB controllers. It's on PIN 27, yes?

My industrial SBC board is indeed a VLB design (well, the onboard VGA is VLB - it's not on a physical VLB edge connector).

The description of the signal certainly makes sense if having it disabled was stopping or somehow truncating digital audio transfers over the ISA bus, leading to the clicking.

My collection database and technical wiki:
https://www.target-earth.net

Reply 18 of 22, by analog_programmer

User metadata
Rank Oldbie
Rank
Oldbie

I've just checked my other old VLB I/O+ATA controller for 486 systems and it also has separate "IOCHRDY" jumpers (factory populated) for both the ATA channels, but it also has jumpers for setting the PIO modes - 0 to 3. It was factory set to PIO mode 0 and I/O ch. ready - disabled, now I fixed this with new settings for PIO mode 3 and IOCHRDY enabled 😀

from СМ630 to Ryzen gen. 3
engineer's five pennies: this world goes south since everything's run by financiers and economists
this isn't voice chat, yet some people, overusing online communications, "talk" and "hear voices"

Reply 19 of 22, by vstrakh

User metadata
Rank Member
Rank
Member
analog_programmer wrote on 2024-05-13, 05:44:

And it's actually backwards of what I thought according to vstrakh's explanations.

It's just my first reaction to the overall 386sx environment case. It's definitely pre- ATA-2, where PIO 3 was even defined 😀