Adding an ISA Slot to a Modern Motherboard [video]
youtube.com
youtube.com
0:00 hi so this is a project I'm working on
0:02 it's uh well you can see uh LPC to ISA
0:05 adapter basically it allows you to
0:07 connect old Isa cards like this sound
0:09 blaster 16 here up to Modern
0:11 motherboards this is a socket 1155
0:13 motherboard with a Intel 6 series
0:15 chipset and the ISA adapter is connected
0:18 up to it through its TPM Port which is
0:20 normally used for an encryption key it's
0:23 got a Sandy Bridge Core i5 in it so you
0:25 know it's still a little bit older but
0:27 it's certainly got no business having an
0:28 Isa slot connected to it but yeah if I
0:31 just uh do the old standard Doom test
0:35 we have audio
0:37 as you can hear that's full audio music
0:40 and sound effect so uh yeah seems to be
0:42 working I'm going to be open sourcing
0:44 this board as well as making a longer
0:45 video explaining how it all works so get
0:47 subscribed to my channel if you don't
0:48 want to miss thatI can often understand and follow a vid just fine at 3-4x.
javascript:(() => { document.getElementsByTagName("video")[0].playbackRate=2.0; })();
"A picture is worth 10K words -- but only those to describe the picture. Hardly any sets of 10K words can be adequately described with pictures."
Sometimes the written form is far better than the visual form.
"The LPC to ISA adapter enables old ISA cards to work with modern motherboards via the TPM port, as demonstrated with a sound blaster 16 card."
Terry Tao: “A picture is worth a thousand equations”
I think it’s all about choosing the best medium for a message.
I wish I could just wholesale disable the feature in my app, as it wastes scrolling space.
I've not had the time to prove this out, but I believe it should still be possible to have full ISA support, including DMA, via a PCI/PCIe bridge that also needs to contain a pair of 8237-compatible DMA controllers and act as a bus master to buffer and translate ISA DMA requests to PCI/PCIe requests. It'll probably need an option ROM to configure the interrupt controllers and related signal paths in an ISA-compatible fashion. It might make a good exercise to implement one using an FPGA.
https://raspberrypi.stackexchange.com/questions/100011/how-f...
But it might work if ISA card doesn't rely on clock being constant all that much, then any jitter in CPU transfer shouldn't matter too much.
However even a home silk-screened PCB could probably handle that and a USB control connection. Without deep knowledge hard part's likely the software, getting the connected item to work; probably as a virtual hardware device in a KVM or other emulated guest OS with the illusion it's on old hardware.
Might be possible, someone bitbanged (sending) ethernet frames.
This example makes me convinved that if you added a clock and some latches to a raspberry pi, it definitely should be able to do ISA bus.
Maybe even without any hardware, who knows. But it needs to level shift from 3V to 5V anyway.
1 - [PDF] https://cdrdv2-public.intel.com/335899/335899-005.pdf
2 - [PDF] https://www.intel.com/content/dam/www/public/us/en/documents...
2 - [PDF] - https://www.intel.com/content/dam/www/public/us/en/documents...
That's a link to a CPU datasheet. The X299 datasheet is your second link, which you can see mentions "LPC 24 MHz, No DMA" on page 19.
(I hope I'm not talking to a GPT here.)
https://github.com/rasteri/dISAppointment
older similar project http://rayer.g6.cz/hardware/lpc_sio.htm
LPC is not without perils tho, there is trouble with DMA support as mentioned here https://flaterco.com/kb/ISA_chipsets.html
More about LPC bus https://blogs.coreboot.org/blog/2013/06/14/a-biology-laborat...
transcript:
hi so this is a project I'm working on it's uh well you can see uh LPC to ISA adapter basically it allows you to connect old Isa cards like this sound blaster 16 here up to Modern motherboards this is a socket 1155 motherboard with a Intel 6 series chipset and the ISA adapter is connected up to it through its TPM Port which is normally used for an encryption key it's got a Sandy Bridge Core i5 in it so you know it's still a little bit older but it's certainly got no business having an Isa slot connected to it but yeah if I just uh do the old standard Doom test we have audio as you can hear that's full audio music and sound effect so uh yeah seems to be working I'm going to be open sourcing this board as well as making a longer video explaining how it all works so get subscribed to my channel if you don't want to miss that
This open source design makes good use of TPM ports present in most modern motherboards, including current generation, thus it should bring ISA access for everyone, on the cheap.
I don’t think current generation motherboards are commonly carrying LPC interfaces having been replaced with eSPI.
The motherboard in the video is stretching the term modern being a Sandy Bridge era - ie a decade old.
This seems so messed up.
That board uses a chipset that has been out of production for 9 years.
The newest CPU it supports was released in 2017, and has been off the market for 3 years.
That could be useful for industrial and scientific applications where some ancient hardware from the DOS era is still in use.
At least that is what I think is happening here.
That's also the clock speed of PCI.
https://en.wikipedia.org/wiki/Low_Pin_Count#Timing_and_perfo...
> At least that is what I think is happening here.
ISA compatibility seems to be limited to byte sized data transfers: https://en.wikipedia.org/wiki/Low_Pin_Count#ISA-compatible_o...
From what I understand, there is no standard, it is motherboard-vendor-specific (and can even differ from model to model within the same vendor).
Some motherboards support having the TPM on a daughterboard which plugs into the motherboard. This lets them make it an optional extra, which you have to pay extra for. Nowadays more and more stuff is making a TPM mandatory (e.g. Windows 11), but when they first came out (almost 15 years ago) little used them and why pay for one if you didn't need it? The people who really needed them were most likely enterprise customers, so making them pay extra for a daughterboard is a useful form of market segmentation.
Far less common on newer motherboards, but newer motherboards wouldn't have an LPC bus either – it has been replaced by eSPI. So this hack is really only if you have a moderately old machine – new enough to not have ISA, old enough to have LPC wired through a TPM daughterboard slot.
I suppose, for newer motherboards, you could build an eSPI-to-ISA adapter – heck, you could even build a PCIe-to-ISA adapter, maybe someone has. But I think part of the hack is exploiting the fact that LPC is based on ISA, which makes the circuitry needed to interface the two simpler. Mapping ISA to a more modern bus would be a lot more complicated, since the technological gap you need to bridge is a lot bigger.
Supposedly there is no way to properly implement 100% ISA compatibility on modern PC's after the Pentium 3. The reason being some less used bus mastering or DMA signals are unable to be properly implemented due to removal of those mechanisms by Intel. But most cards that are simple like audio, serial, ethernet cards that just do basic irq and dma should work fine.
FWIW, I think that's probably referring to the fact that about then, x86 redefined dove of the semantics of the lock prefix. Before about then it'd be propagated out to the FSB as whole system visible transaction, but after about then atomic operations only went out to L2 to increase core count without the cores stepping on eachothers' toes.
That being said, very few drivers/cards actually depend on that behavior. Bridging the card to LPC (or worst case PCIe) should be fine for the vast majority of cases.