VOGONS


DMA on PIIX3?

Topic actions

First post, by murrayman

User metadata
Rank Member
Rank
Member

Not UDMA, just DMA. I have two CFs, one with W95 and one with W98, that I use on my PB system listed in the sig. It has a 430VX and the 82371SB PIIX3. The W95 install is from a system-correct Packard Bell restore disc that included all the necessary drivers and OSR 2.1. It has DMA checked off in system properties for both the CF and CD drives, and works flawlessly. The W98 install is just from a 98SE Retail disc I have that comes with all the standard Microsoft drivers. DMA Is turned off by default, and when I turn it on, I get all the usual telltale glitches that come with enabling it on a system that doesn’t have DMA.

So, does the chipset not actually support DMA, and W95 is doing something funky? Is this the weird Trione Busmaster whatever dark magic from the era and I’m doing something wrong?

P3B-F 1.04, PIII 1k, 512MB PC133, GF DDR 32MB + DM3DII 12MB SLI, SB0100
P3B-F 1.03, PIII 700, 384MB PC100, V5 AGP, SB0160
CP 5170, PII 350, 256MB PC100, Rage LT 2MB, ESS 1869
PB M S610, PMMX 233, 128MB EDO66, DM3D 4MB, Aztech

Reply 1 of 31, by rasz_pl

User metadata
Rank l33t
Rank
l33t

Intel datasheet https://theretroweb.com/chip/documentation/27 … 6b098362128.pdf :

"The 82371SB PCI ISA IDE Xcelerator (PIIX3) may contain design defects or errors known as errata which may cause the
product to deviate from published specifications. Current characterized errata are available on request"

Troubleshooting
Common System Configuration Issues
Windows* 95/98 INF Update Utility
Bus Master IDE Driver for Windows 95 http://ps-2.kev009.com/ncr3xxx/pcfiles/Machin … 3271/INF_BM.PDF

https://github.com/raszpl/FIC-486-GAC-2-Cache-Module for AT&T Globalyst
https://github.com/raszpl/386RC-16 memory board
https://github.com/raszpl/440BX Reference Design adapted to Kicad
https://github.com/raszpl/Zenith_ZBIOS MFM-300 Monitor

Reply 2 of 31, by murrayman

User metadata
Rank Member
Rank
Member
rasz_pl wrote on 2023-02-03, 03:31:
Intel datasheet https://theretroweb.com/chip/documentation/27 … 6b098362128.pdf : […]
Show full quote

Intel datasheet https://theretroweb.com/chip/documentation/27 … 6b098362128.pdf :

"The 82371SB PCI ISA IDE Xcelerator (PIIX3) may contain design defects or errors known as errata which may cause the
product to deviate from published specifications. Current characterized errata are available on request"

Troubleshooting
Common System Configuration Issues
Windows* 95/98 INF Update Utility
Bus Master IDE Driver for Windows 95 http://ps-2.kev009.com/ncr3xxx/pcfiles/Machin … 3271/INF_BM.PDF

Much appreciated. By all accounts, it seems it should just work, given its functionality in W95 and DMA confirmation in Sandra. Just to triple check given Intel’s language in the first doc, I got another CF card out and installed W2K; after a few hours, was able to confirm functioning and stable DMA with that install as well using native drivers. Only W98SE gives any fuss.

P3B-F 1.04, PIII 1k, 512MB PC133, GF DDR 32MB + DM3DII 12MB SLI, SB0100
P3B-F 1.03, PIII 700, 384MB PC100, V5 AGP, SB0160
CP 5170, PII 350, 256MB PC100, Rage LT 2MB, ESS 1869
PB M S610, PMMX 233, 128MB EDO66, DM3D 4MB, Aztech

Reply 3 of 31, by mscdex

User metadata
Rank Newbie
Rank
Newbie

For what it's worth, the fastest/best and most stable DMA I've been able to get out of my Sandisk Extreme CF card on a Packard Bell 810 motherboard (430VX/PIIX3 also) with a PMMX 233MHz was MWDMA mode 1, which is 13.3MB/s.

While I instead use Linux on that board, I found I had to explicitly set the DMA mode otherwise at every boot Linux would spend a lot of time automatically downgrading the DMA modes until it found something usable. I'm not entirely sure how Windows handles DMA configuration, but perhaps the fix might be to similarly force an explicit DMA mode in Windows (perhaps via a registry entry or similar) rather than just the regular on/off checkbox in the GUI?

Reply 4 of 31, by murrayman

User metadata
Rank Member
Rank
Member
mscdex wrote on 2023-02-03, 07:47:

For what it's worth, the fastest/best and most stable DMA I've been able to get out of my Sandisk Extreme CF card on a Packard Bell 810 motherboard (430VX/PIIX3 also) with a PMMX 233MHz was MWDMA mode 1, which is 13.3MB/s.

While I instead use Linux on that board, I found I had to explicitly set the DMA mode otherwise at every boot Linux would spend a lot of time automatically downgrading the DMA modes until it found something usable. I'm not entirely sure how Windows handles DMA configuration, but perhaps the fix might be to similarly force an explicit DMA mode in Windows (perhaps via a registry entry or similar) rather than just the regular on/off checkbox in the GUI?

In W2K at least, it shows DMA vs UDMA status, though it doesn’t show which mode in my experience. If forcing a mode could be an option though for 98, that would be neat.

In any case, my situation ended up being a funky CF card; got a new Verbatim 233x in direct from Amazon warehouse this morning, verified it with h2testw, then got 98SE installed and… now DMA works just fine. The install that doesn’t play nice with DMA is on a Transcend 133x.

P3B-F 1.04, PIII 1k, 512MB PC133, GF DDR 32MB + DM3DII 12MB SLI, SB0100
P3B-F 1.03, PIII 700, 384MB PC100, V5 AGP, SB0160
CP 5170, PII 350, 256MB PC100, Rage LT 2MB, ESS 1869
PB M S610, PMMX 233, 128MB EDO66, DM3D 4MB, Aztech

Reply 5 of 31, by douglar

User metadata
Rank l33t
Rank
l33t
rasz_pl wrote on 2023-02-03, 03:31:

"The 82371SB PCI ISA IDE Xcelerator (PIIX3) may contain design defects or errors known as errata which may cause the
product to deviate from published specifications. Current characterized errata are available on request"

Sounds like the answer is: "Very possible, but it depends on your board, your bios, and your storage device"

Reply 6 of 31, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie

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

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 7 of 31, by douglar

User metadata
Rank l33t
Rank
l33t
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.

Reply 8 of 31, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie
douglar wrote on 2024-07-23, 15:07:

Here's my understanding and experience on the matter-- Please correct me if I'm off base here...

Thanks @douglar for your fantastic analysis, as always... Ok, that explains it -- DOS won't use DMA without a driver. Keep up the good work!

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 9 of 31, by mkarcher

User metadata
Rank l33t
Rank
l33t
mockingbird wrote on 2024-07-23, 16:50:

Thanks @douglar for your fantastic analysis, as always... Ok, that explains it -- DOS won't use DMA without a driver. Keep up the good work!

For your 430VX systems, try this driver for DOS: http://vogonsdrivers.com/getfile.php?fileid=398

That driver worked perfectly back in the day on our 430HX system.

Reply 10 of 31, by douglar

User metadata
Rank l33t
Rank
l33t
mkarcher wrote on 2024-07-23, 17:32:
mockingbird wrote on 2024-07-23, 16:50:

Thanks @douglar for your fantastic analysis, as always... Ok, that explains it -- DOS won't use DMA without a driver. Keep up the good work!

For your 430VX systems, try this driver for DOS: http://vogonsdrivers.com/getfile.php?fileid=398

That driver worked perfectly back in the day on our 430HX system.

It would be really interesting if it works in MWUDMA mode with a ssd device attached via pata-sata bridge.

Reply 11 of 31, by mkarcher

User metadata
Rank l33t
Rank
l33t
douglar wrote on 2024-07-23, 19:13:

It would be really interesting if it works in MWUDMA mode with a ssd device attached via pata-sata bridge.

The PIIX3 chip does not support Ultra DMA (UDMA), it only supports the older mode called Multi-Word DMA (MWDMA). There is no such thing as MWUDMA.

Reply 12 of 31, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2024-07-23, 17:32:

For your 430VX systems, try this driver for DOS: http://vogonsdrivers.com/getfile.php?fileid=398

That driver worked perfectly back in the day on our 430HX system.

Yes!!! This worked.

douglar wrote on 2024-07-23, 19:13:

It would be really interesting if it works in MWUDMA mode with a ssd device attached via pata-sata bridge.

Ok, I got the following result. The SATA bridge I used was Marvell, FYI.

PIO4:

The attachment PIO4.png is no longer available

MWDMA2:

The attachment MWDMA.png is no longer available

Quite the substantial gain, almost a doubling of speed!

If the computer industry back in the day had its act together, SCSI would have been superseded much earlier than it eventually was. MWDMA probably makes Win9x a lot more tolerable on a Pentium. This should technically work on a 430FX as well. As far as I can tell by looking at the datasheet, the only different between PIIX and PIIX3 is that the PIIX3 has USB support.

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 13 of 31, by douglar

User metadata
Rank l33t
Rank
l33t
mkarcher wrote on 2024-07-23, 20:37:
douglar wrote on 2024-07-23, 19:13:

It would be really interesting if it works in MWUDMA mode with a ssd device attached via pata-sata bridge.

The PIIX3 chip does not support Ultra DMA (UDMA), it only supports the older mode called Multi-Word DMA (MWDMA). There is no such thing as MWUDMA.

Sorry, it was a typo…. I meant MWDMA. I was trying to do too many things at once.

Reply 14 of 31, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie

Has anyone had any luck enabling DMA for the PIIX3 in Windows? I am attempting to do so in Windows 95 OSR2, but the DMA box won't stay checked. Trigon's driver trashes my drive, and I tried Intel's 2.64, 3.00 and 3.02 drivers which cause the system not to boot.

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 15 of 31, by douglar

User metadata
Rank l33t
Rank
l33t
mockingbird wrote on 2024-08-13, 23:49:

Has anyone had any luck enabling DMA for the PIIX3 in Windows? I am attempting to do so in Windows 95 OSR2, but the DMA box won't stay checked. Trigon's driver trashes my drive, and I tried Intel's 2.64, 3.00 and 3.02 drivers which cause the system not to boot.

People have been able to get WDMA modes to work with DMA checked if they have a storage device that supports WDMA.

But so far I've not heard of anyone who has been able to get a Sata drive to work over a Jmicron sata bridge.

Reply 16 of 31, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie
douglar wrote on 2024-08-14, 00:55:

People have been able to get WDMA modes to work with DMA checked if they have a storage device that supports WDMA.

But so far I've not heard of anyone who has been able to get a Sata drive to work over a Jmicron sata bridge.

Can you elaborate please? Yes, I'm using a JMicron adapter with a SATA SSD... You mean to say they couldn't get MWDMA working in Windows? I did get it working in DOS with the Trigun driver in config.sys.

I know JMicron works with PIIX4 in Windows and DMA mode.

EDIT:
YES! I was able to get DMA working with a Marvell adapter... Odd that JMicron works better than Marvell on PIIX4 though (in my experience, since Marvell usually always performs better otherwise).

Using default Windows 95 OSR2 driver (before and after):

The attachment 430VX-atto.png is no longer available
The attachment 430VX_MARVELL-atto.png is no longer available

The speed increase is nice, but the main thing about MWDMA is the offloading from the CPU, which is really noticeable during disk activity -- the mouse cursor becomes unresponsive... MWDMA is also nice if you burn CDs I imagine -- especially back in the day when burners had not protection against buffer underruns, though I will have to test this in the future.

Last edited by mockingbird on 2024-08-14, 14:44. Edited 1 time in total.

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 17 of 31, by douglar

User metadata
Rank l33t
Rank
l33t
mockingbird wrote on 2024-08-14, 03:37:
douglar wrote on 2024-08-14, 00:55:

People have been able to get WDMA modes to work with DMA checked if they have a storage device that supports WDMA.

But so far I've not heard of anyone who has been able to get a Sata drive to work over a Jmicron sata bridge.

Can you elaborate please? Yes, I'm using a JMicron adapter with a SATA SSD... You mean to say they couldn't get MWDMA working in Windows? I did get it working in DOS with the Trigun driver in config.sys.

I know JMicron works with PIIX4 in Windows and DMA mode.

When you check the DMA box in windows, Windows is going to try to enable the fastest DMA mode available.

PIIX4 controllers support WDMA and UDMA. When you enable DMA mode under Windows on a PIIX4, it is going to try to enable UDMA if your storage device supports it. Jmicron bridges support UDMA and work fine. I did a build a couple days ago and it worked fine.

PIIX3 does not support UDMA, it only supports the older WDMA modes. I have not had any luck getting Jmicron bridges to work in WDMA. I tried last weekend on a Intel TE430VX (Tiger Eye) with the 1.00.07.CY0J BIOS and had no luck. I've tried to do WDMA with a Jmicron Sata bridge on a Promise 20630 IDE controller that does WDMA using the VG4 dos driver that allows you to force the ATA mode and it was not stable. I've tried on an Nforce2/MCP2 and it didn't work either.

Getting ATA to work in a specific mode requires cooperation between the controller, the storage device, the driver, and in this case, the pata-sata bridge. It's possible that there's a combination out there where a JMicron sata bridge works in a WDMA mode, but if there is, I have not found it. I am not optimistic about finding it at this point, because it seems that WDMA modes, (like CHS addressing) were supported with decreasing frequency in devices created after 2008.

It's been reported that the Marvel pata-sata bridge can do WDMA with the PIIX3. Seems plausible because the Marvel pata-sata bridges are older than the Jmicron bridges.

I have a Marvel Sata bridge. I tried it on the Promise 20630 IDE controller and it didn't work when I tried to enable WDMA using the dos VG4 drivers.

I can try using my Marvel pata-sata bridge with the PIIX3 this weekend and see how it goes.

Reply 18 of 31, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie
douglar wrote on 2024-08-14, 12:40:

I have a Marvel Sata bridge. I tried it on the Promise 20630 IDE controller and it didn't work when I tried to enable WDMA using the dos VG4 drivers.

I can try using my Marvel pata-sata bridge with the PIIX3 this weekend and see how it goes.
<snip>

See my post edit above... Yes -- it is working.

Note that I used the 88SA8040 (SATA150) and not the 88SA8052 (SATA300). I wonder if that's better for older southbridges.

I can test it on the PDC20630 for you if you don't have one.

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 19 of 31, by douglar

User metadata
Rank l33t
Rank
l33t
mockingbird wrote on 2024-08-14, 14:48:
See my post edit above... Yes -- it is working. […]
Show full quote
douglar wrote on 2024-08-14, 12:40:

I have a Marvel Sata bridge. I tried it on the Promise 20630 IDE controller and it didn't work when I tried to enable WDMA using the dos VG4 drivers.

I can try using my Marvel pata-sata bridge with the PIIX3 this weekend and see how it goes.
<snip>

See my post edit above... Yes -- it is working.

Note that I used the 88SA8040 (SATA150) and not the 88SA8052 (SATA300). I wonder if that's better for older southbridges.

I can test it on the PDC20630 for you if you don't have one.

Glad you got it to work. I agree, enabling DMA definitely changes the user interface feel of windows 9x for the better. No DMA feels a lot like Win31. Things are choppy when the disk runs and you directly experience it when moving the mouse. Enable DMA and it feels like you are using a real multi-tasking operating system.

Seems very possible that different sata device could have better support for WMDA than others. It would be interesting to see if one works and the other doesn't.

When I was testing on the Promise 20630, I was using the dos driver with the /m08 flag.

http://vogonsdrivers.com/getfile.php?fileid=2076