VOGONS


First post, by kodi

User metadata
Rank Newbie
Rank
Newbie

<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.

0. Preamble
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...

1. Preface
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.

2. Intro
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)

....................................TBC.............................................

5. Chipset support
Intel:
* 430TX
* 440BX
* 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

VIA:
* VT82C586B (VT82C586 has no DDMA support, VT82C586A is unclear - if anyone has it and is willing to test, let me know)
* VT82C596/A/B
* 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.

SiS:
* 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.

Other
* 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
TBA

7. KoDi's tool set
TBA

TO BE CONTINUED...in the mean time comments and suggestion are more than welcomed

Reply 1 of 4, by PARUS

User metadata
Rank Oldbie
Rank
Oldbie

You said you have done tests yourself. How did you make these tests?

I've started my Live cards successfully on my motherboards with ICH5, VT8235, VT8237, ICH4, SiS964 southbrigdes. What is this if not PCI DDMA? How can you explain it?

Reply 2 of 4, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
PARUS wrote on 2019-12-13, 09:03:

I've started my Live cards successfully on my motherboards with ICH5, VT8235, VT8237, ICH4, SiS964 southbrigdes. What is this if not PCI DDMA? How can you explain it?

All of those, I guess, have to be "vendor specific solutions (some of them software emulations and not even hardware in nature)" as the above article states in the "Preface" section. It's explained in the article that DDMA is like virtualization of i8237 over PCI bus and it's not just the ability to play sound in Dos - in other words if you can play sound in dos with PCI card, it doesn't mean it uses DDMA to do that.

Reply 3 of 4, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
kodi wrote on 2019-11-17, 15:29:

* Unclear: cost-reduced versions of 440BX like 440ZX

I have an Abit ZM6 motherboard which is based on the 440ZX chipset. It supports DDMA and has a SB-Link connector as well.

Both DDMA and SB-Link (tested separately) worked fine with my Yamaha YMF724F-V sound card.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 4 of 4, by furan

User metadata
Rank Member
Rank
Member

I've been digging into both DDMA and SB-LINK (PC/PCI). Finding the documents was hard, and I had to convert most from old word documents, so here they are. Yes, I realize I'm reviving an old thread. I am still attempting to find the document titled "PC/PCI DMA Arbitration and Protocols" which was located on the public Intel FTP server under /pub/IAL/PCI/dma22.doc - this is of course, long gone.

Implementing Legacy Audio on the PCI Bus:

Filename
PCI SBLINK.PDF
File size
57.41 KiB
Downloads
171 downloads
File license
Public domain

Distributed DMA Support for PCI Systems:

Filename
dma60.pdf
File size
433.38 KiB
Downloads
158 downloads
File license
Public domain

Serialized IRQ Support for PCI Systems:

Filename
serirq60.pdf
File size
495.55 KiB
Downloads
124 downloads
File license
Public domain

Common Architecture Desktop PC/AT systems v.93 (more DDMA discussion):

Filename
com93.pdf
File size
835.5 KiB
Downloads
120 downloads
File license
Public domain