VOGONS


First post, by 8bitbubsy

User metadata
Rank Member
Rank
Member

I have a VLB card with a CMD640 (PCI0640B) chip for the primary IDE channel, and a Winbond chip for the secondary IDE channel. I heard some really bad things about the former chip corrupting data, and I wonder if this happens in every configuration or not.
Will it only happen if you have two devices connected to the same CMD640 IDE channel? Am I safe since I only have a CF card connected to the 640 (primary channel) and my CD-ROM connected to the Winbond controller?

I use MS-DOS 6.22 and Windows for Workgroups 3.11, and I don't use any CMD640 IDE drivers.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 1 of 5, by mpe

User metadata
Rank Oldbie
Rank
Oldbie

Sadly, it is not just primary/secondary data corruption bug.

There are about 5 different bugs affecting CMD640 (multi-read prefetch, corruption of data during floppy activity, simultaneous IO on primary/secondary channels, lack of 32bit writes support, ...) and 2 bugs affecting RZ-1000 variant.

Some of these can be worked around (with severe performance reduction) if using latest BIOS and patched OS.

However, the matrix of chip revisions, bios and sw workarounds is quite complex.

I'd say it is not safe/good idea to use the controller for anything. Just disable it and use PCI card.

Blog|NexGen 586|S4

Reply 2 of 5, by 8bitbubsy

User metadata
Rank Member
Rank
Member

One would think that the secondary IDE channel has nothing to do with the primary one since it runs on a different chip (in my case) and different interrupt + I/O address. Does it still matter if both are active at the same time? The card is a "CSA-6210/Kx" model. The floppy bug sounds very critical though, and I can't for the life of me understand how this chip could be used as the onboard IDE for several mobos without the companies knowing about these bugs? This makes me wonder if the bug really is that common to encounter.

I have no BIOS on my VLB IDE controller, so I assume you mean my mobo BIOS. That one is from 1995, SIS471 chipset. Most likely it's not considered "new" and probably has no fixes for this. The system is a 486 with ISA/VLB, so I can't use a PCI controller.

Last edited by 8bitbubsy on 2021-02-08, 16:56. Edited 1 time in total.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS

Reply 3 of 5, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

The bug I remember hearing about involved data corruption during overlapping floppy/HDD access. So I would say don't use the primary IDE channel if you have any floppy drive connected. Win95 has a driver to work around the bugs but I don't think Win3.x ever got one.

BTW, as for companies knowing about the bug... Some knew sooner than others but didn't necessarily tell their competitors about it.

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 4 of 5, by Eep386

User metadata
Rank Member
Rank
Member

The CMD-0640's floppy bug supposedly could be fixed by cutting a trace/lifting a pin. No, don't ask me what trace to cut/pin to lift because I don't know! I scoured the internet for a pinout of the stupid chip years ago and couldn't find it. 🙁
The other IDE corruption bugs aren't so easy to fix however.

The best option is to just disable the onboard CMD IDE controller and use a PCI or VLB card (depending on what your board uses). Sometimes the secondary onboard IDE port is handled by an ISA bus controller and is perfectly fine though.

Life isn't long enough to re-enable every hidden option in every BIOS on every board... 🙁

Reply 5 of 5, by 8bitbubsy

User metadata
Rank Member
Rank
Member

I replaced the dual-channel CMD640 card with my Pine Technology PT-626, which has only one IDE channel (UMC chip). It sucks to not have another channel for my CD-ROM (I don't have an IDE cable long enough to reach both the CD-ROM and the CF adapter in the back of the machine), but I don't really use it anyway.

386:
- CPU: 386DX-40 (128kB external L1 cache)
- RAM: 8MB (0 waitstates at 40MHz)
- VGA: Diamond SpeedSTAR VGA (ET4000AX 1MB ISA)
- Audio: SB Pro 2.0 + GUS 1MB
- ISA PS/2 mouse card + ISA USB card
- MS-DOS 6.22 + Win 3.1
- MR BIOS