First post, by kodi
<Placeholder: 23.11.2019, rev 0.1>
<Placeholder: revision log
0.1: add initial DDMA capable chipsets list>
Disclaimer: This post depends on your comments, suggestions, etc to reach maturity. I don't claim i know everything - on the contrary. However, I will try to regularly update it based on new information and suggestions, until it reaches total reliability of the provided information.
In very short "It's all about the Benjamins, baby!"... Um, uh, no, in this case "It's all about the i8237 DMAC, baby!"
OK, after my (probably failed) attempt for satire, including in the thread title, let's get serious...
The aim of this post is to explain "Distributed DMA" and PC-PCI in simple way that everyone can understand (omitting most of the in-depth technical details). Those are hardware mechanisms for providing DMA (and IRQ) for PCI in ISA compatible way. Other not industry standard mechanisms like vendor specific solutions (some of them software emulations and not even hardware in nature), might be mentioned, but are not subject to this post.
The ISA bus uses Intel i8237 DMAC (DMA Controller) or compatible that is not present on the PCI bus.
Note: from here one, i8237-style or i8237-compatible DMA controller will be used interchangeably.
3. PC-PCI explained
3.1. if the PCI bus and the i8237-style controller are separated from each other, what is the easiest and simple way to connect them? The answer is - wires, of course. That's why IMHO much better name that is used for it is "SideBand Link" (because it provides wired connection for SideBand signals to the PCI bus), even I guess as more marketing appealing, SBLink was more advertised as "SoundBlaster Link".
Anyway, PC-PCI/SBLink/SideBand are different terms used the for same thing - just use wires (5 wires to be precise) to connect the PCI bus to i8237-style controller. that's more or less all to it and you can stop here if you just want to have some good and simple explanation about it.
3.2. However, there is something more to it, actually SBLink (read it as SideBand or SoundBlaster Link depending on your taste) is (PC-PCI DMA + Serialized IRQ). that corresponds exactly to the 5 pins on the header:
* 2 of the pins are Ground (we can ignore them for the purpose of this discussion)
* the other 2 are "PCI-PC DMA Request" and "PCI-PC DMA Acknowledge" (i.e. i8237 part of the picture)
* the other one is "Serialized Interrupt Request", which is just fancy way to say that ISA IRQs are not separate wires, but encoded to be carried out on a single wire
Why I am mentioning Serialized IRQ (SIRQ), which probably makes the explanation more blurry and technical, will become clear when we discuss in-depth DDMA.
4. Distributed DMA (DDMA) explained
4.1. If you don't want to use wires to connect your laptop to Internet what you do? you use wireless router to Broadcast or "to distribute" the signal to your laptop and in fact that makes other computer(s) in the vicinity to be able to receive the signal too. In most simple way that is how you can think about DDMA - basically it allows i8237-style controller on the motherboard to "wirelessly" connect to the PCI bus.
Actually, even better and probably for many of you well familiar way to think about DDMA is how in modern times we do "GPU passthrough" in Linux to passthrough the PCIe slot in which we installed GPU card to Virtual Machine running Windows and be able to use that GPU for games as it's physically installed to physical Windows machine. So, DDMA is what can be described as "i8237 passthrough" and our Windows VM in the case is our PCI bus.
4.2. What about the IRQs? As we saw in 3.2. actually we have 2 connections:
* i8237-style DMA controller to PCI Bus connection
* IRQ connection (in case of SBLink, SIRQ wire)
5. Chipset support
* Notable exception: 440LX, because Intel DDMA support depends on the North Bridge, not just on the South. that is documented in Intel datasheets and what makes it different than others, where DDMA is entirely function of the South Bridge.
* Unclear: cost-reduced versions of 440BX like 440ZX
* Tested by: both 430TX and 440BX are personally tested by me
* VT82C586B (VT82C586 has no DDMA support, VT82C586A is unclear - if anyone has it and is willing to test, let me know)
* VT82C686A/B (but DDMA of VT82C686A is more like VT82C596)
* Note: VT8231/VT8233/VT8235/VT8237 and VT8251 DO NOT have DDMA support, no matter of rumors spreading, everyone claiming the contrary is welcomed to share independently reproducible technical proof.
* Tested by: all of the above mentioned VIA chipsets are personally tested by me, except VT82C586A - i am in search of a tester and VT8233 - I don't have, but it's pointless, because in VT8231 DDMA support is already removed.
* Almost all PCI chipsets SiS released have DDMA with the exceptions below. First SiS South Bridge with DDMA support is SiS5582 and the last one with DDMA support is SiS963 (including all "L" revisions of those chipsets like for example SiS963L, which just indicates build-in "L"AN, i.e. Ethernet support).
* Note: SiS PCI South Bridges WIHOUT DDMA support are SiS551x, SiS5571, SiS964 and later (e.g. SiS965, SiS966, SiS968)
* Tested by: I have personally tested SiS964, SiS965, SiS966L and SiS968 to confirm no DDMA. all other SiS South Bridges I have tested have DDMA and it's the exact same level of support, because SiS just kept the support for years.
* OPTi has at least one chipset 82C750, but almost nothing is known, if there are no users with it to test, nothing can be done except for completeness making this note
* AMD unclear at the moment - they licensed their South Bridge from VIA, but if that included DDMA is yet to be determined
* Acer, i.e. ALi chipsets - there are several with DDMA support, but not much is known (at least to me) at the moment
6. Soundcards support
7. KoDi's tool set
TO BE CONTINUED...in the mean time comments and suggestion are more than welcomed