KR Williams said:
THere are three forms of ISA DMA. The 8237 DMA registers only
address one. ISA can also busmaster (HOLD/ HOLDA/, IIRC). IBM
had a series of modem/sound cards that did ISA busmastering. It
worked rather well, though the drivers had to copy into buffers
below the 16MB line.
Actually, you had 2 x 8237 chips: one was wired for 8-bit, one for 16-bit
(even addresses) transfers. The two chips were cascaded (don't remember
which was master and which slave); one 8-bit channel was used for DRAM
refresh and one for floppy. Since the 8237 has only 16-bit address,
there was an external 8-bit register to get 24-bit address (up to 16 MB,
can't cross 64-KB physical address boundary in one DMA transaction).
You could also program a 8237 channel to be bus arbiter only, using your
own hardware to create bus cycles.
However, none of this was widely used, and even when there was no PCI,
many ISA DMA cards wouldn't work in all "PC Compatible" systems. IIRC,
most of these high-performance cards has a default programmed-I/O mode
(for example: basic ATA-controller PIO mode), which was the one used
by most users.
I am not at all sure that modern chipsets still support all these
modes. After all, who in his right mind will use an ISA bus-mastering
network or tape interface card TODAY? why waste verification CAD cycles
to test these modes? I am not even sure if modern OSes still read/write
floppy using DMA, and using DMA to refresh DRAM is dead as the Dodo.
I wouldn't disagree with this assessment. ISA is dead, and may
it stay dead. ;-)
You won't meet spec without the internal planes. It might work,
but might not. I'd never go below 2S2P for a PCI card, which
throws it out of the range of the hobbyist.
I was assuming a hobbyist card, so he wouldn't care about failure rate in
a 10,000-unit production run; one unit will most probably work - most PCs
leave a reasonable noise-margin error.
You may also be able to get a prototyping board with the PCI interface
ready for use and a prototyping area in the local-bus side.