I bought some of these little SSD boards with a 44 pin IDE connector and want to use them on older systems. It plugs right into a thin client I have and works great there. However once I get it connected to an older motherboard (through all sorts of adapters) it causes weird problems. It will begin booting from it, so I know it's working, but causes the floppy controller to fail and won't boot all the way. The POST screen shows serial ports at 2E8, 2F8, 3E8, and 3F8 that only appear when the SSD is connected.
The IDE interface I'm using connects this thing directly to the ISA bus which is probably normal and why all this is occurring. But both /CS0 and /CS1 are driven by the chip on the I/O card, and the datasheet for the chip indicates one is for 1F0-1F7 and the other for 3F6 and 3F7. Maybe the SSD is ignoring the chip selects for some addresses?
I'm thinking about making an interface board that tri-states the IDE data bus unless it's being talked to and that seems like it would solve the problem. So that would be 0x1F0 to 0x1F7 for sure, and maybe I'd also include an option for secondary. Are there any others required for old school IDE? It appears there's other ranges for bus mastering, but I don't need that.
For 0x3F6 I found this at https://ceunican.github.io/aos/36.IO_Devices.pdf:
Address 0x3F6 = 0x80 (0000 1RE0): R=reset, E=0 means "enable interrupt”
0x3F6 is used by the floppy controller, so not sure what to make of this.
And the MSB of 0x3F7 is also used by the floppy controller, but does IDE still used this?
I'm guessing someone out there knows more about this!
The IDE interface I'm using connects this thing directly to the ISA bus which is probably normal and why all this is occurring. But both /CS0 and /CS1 are driven by the chip on the I/O card, and the datasheet for the chip indicates one is for 1F0-1F7 and the other for 3F6 and 3F7. Maybe the SSD is ignoring the chip selects for some addresses?
I'm thinking about making an interface board that tri-states the IDE data bus unless it's being talked to and that seems like it would solve the problem. So that would be 0x1F0 to 0x1F7 for sure, and maybe I'd also include an option for secondary. Are there any others required for old school IDE? It appears there's other ranges for bus mastering, but I don't need that.
For 0x3F6 I found this at https://ceunican.github.io/aos/36.IO_Devices.pdf:
Address 0x3F6 = 0x80 (0000 1RE0): R=reset, E=0 means "enable interrupt”
0x3F6 is used by the floppy controller, so not sure what to make of this.
And the MSB of 0x3F7 is also used by the floppy controller, but does IDE still used this?
I'm guessing someone out there knows more about this!
Last edited: