mockingbird wrote on 2024-07-23, 05:30:Sorry to necro post, but does anyone know how to manually activate MWDMA modes through PCISET or otherwise in DOS? I've got a V […]
Show full quote
Sorry to necro post, but does anyone know how to manually activate MWDMA modes through PCISET or otherwise in DOS? I've got a VX board with a PIIX3, and many of these boards lack the ability to enable it in the BIOS. It's not hidden, it's just completely absent:
The attachment PIIX3.png is no longer available
I have an SSD connected through a SATA bridge, and it sure would be nice to get more than 7-8MB/sec with PIO4 (should be higher too, but still good for PIO4 and a Pentium MMX).
Thanks
Here's my understanding and experience on the matter-- Please correct me if I'm off base here...
But the answer is that ATA is a complicated system. Getting a specific ATA mode requires cooperation between the driver, the controller, and the storage device.
Switching between the different PIO modes is straight forward because almost all >=286 motherboards have a BIOS that understand how to do PIO. You just tell the controller and the storage device to go faster and if your CPU can keep up, it all goes fine. There's no programming change necessary. Just make things go faster and they go faster. In these cases, the BIOS works as your driver.
Switching from PIO to any of the DMA modes is a trickier because it's not a matter of just going faster. It requires a driver or INT13h handler that understands how to "set the table" for DMA. Not nearly as many BIOS's know how to do that. Usually it requires a driver or Option ROM for DOS. The BIOS or driver is almost certainly going to be controller specific.
But that's not all. It also requires that your storage device plays along with it's part of the process.
I did a bunch of testing with a Promise 20630 VLB controller with a DOS driver that allowed me to force MWDMA. I also did testing with an Nforce 2 motherboard that has a BIOS that understands how to do MWDMA and UDMA in DOS and I figured out how to force MWDMA in the BIOS. (Disable UDMA but don't force a particular PIO mode) These were not PIIX3, but they do straddle it, with one older and the other newer. In both cases, I tried forcing MWDMA on a collection of SSD Sata media with a couple different pata-->sata bridges. The builds worked in PIO and worked in UDMA on the nforce, but I had no luck getting MWDMA modes to work. Really seemed like there was some aspect to the pata-sata bridges or the sata devices themselves that didn't agree with MWDMA.
These builds worked in MWDMA mode with Sintechi SD adapters and most CF's. Curiously, some of the best MWDMA mode performance has come from some 512MB "memory partner" CF devices with 2006 firmware. I have a lot of CF's with newer firmware that outperforms them in PIO and UDMA modes, but something about those particular CFs gives them an edge in MWDMA modes. I got 4 of them and they are all about 20% faster. That's small, but it's repeatable and outside the margin of testing error. So yeah. It's a complicated system.
The PCIset tool looks really interesting and in my dumpster diving, I recent pulled in a bunch of 430FX, 430VX, & 440EX systems chipsets with PIIX, PIIX3 and PIIX4 south bridges. I look forward to seeing what I can do with that tool on those computers.