Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Adding an ISA Slot to a Modern Motherboard [video] (youtube.com)
116 points by zdw on March 22, 2023 | hide | past | favorite | 67 comments


Transcript:

    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 that


A picture is worth a thousand words, but sometimes a thousand words is worth more than a thousand pictures. Thank you for the transcript.


I prefer text to video or audio. Text is a more 2-dimensional format – my eyes scan up and down the page looking for keywords. I read it non-linearly, reading the more interesting-looking sentences first (even multiple times), leaving the less interesting ones until the end. Text lets me follow my own attention, audio/video force me into a linear straight-jacket – I know I can rewind/fast-forward/etc, but that's still a lot more slow and painful than just darting my eyes around a page. A picture can say a lot that words can't, but that's why (hyper)text can have pictures, figures, diagrams, photos, tables, etc, embedded in it. Even embedded video clips and audio files, for those times when an audiovisual component is really adding something.


I've largely hated the slow transition of information from barebones html scrawlings to the modern video presentation format. One thing I've discovered is installing an HTML5 video speed controller extension that lets me run most videos at 2.5-3.0x speed. It really seems to help. I think part of the problem is that most videos are tuned well below the rate I like to scan in information.


Youtube only allows up to 2x and that's annoying. I use mpv (with youtube-dl) to work around that... up to 4x.

I can often understand and follow a vid just fine at 3-4x.


If you do not want to install an add-on to work around that, you can use a bookmarklet like this (works at least in Firefox):

javascript:(() => { document.getElementsByTagName("video")[0].playbackRate=2.0; })();


Enchanter for YouTube allows you to set the speed as fast as you want.


I agree and also watch most videos much faster than 1x; it seems lowest-common-denominator-oriented "educational" videos require the most speedup, while with denser stuff, and some entertainment, I can only get up to 1.5-1.8x. An (un?)fortunate side-effect is that talking to most people in realtime becomes annoyingly slow; and likewise, others tell me that I'm talking too fast.


From fortune:

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


That’s Perlisism #39 from inaugural Turing Award winner Alan Perlis’s delightful “Epigrams in Programming”.

http://cs.yale.edu/homes/perlis-alan/quotes.html


Edsger Dijkstra: “A picture may be worth a thousand words, a formula is worth a thousand pictures” (https://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/E...)

Terry Tao: “A picture is worth a thousand equations”

I think it’s all about choosing the best medium for a message.


Didn’t Jobs say a word is worth a thousand pictures?


I'll do you one better. Here is a ChatGPT summary:

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


Thank you, I very much dislike "youtube shorts"


Oh man, thank you. The few that I click seem to be on an interesting topic. Yet they're always frenetically edited together and either don't explain anything (cooking shorts, for instance. Much worse than old school GifRecipes) or are just a teaser to get you to subscribe for the full video a couple weeks/months later.

I wish I could just wholesale disable the feature in my app, as it wastes scrolling space.


I agree and while you probably know this, it's actually only URL formatting, you can take the short URL and make it a long format youtube URL with the video ID and regain pausing etc



This has been built right in to YouTube for a while now, click the 3 dots and click show transcript.


This is so useful thanks!


Unfortunately that's not a truly "modern" motherboard as it's from around 2011, and newer ones no longer support LPC DMA. If my research is correct, the last Intel chipset to support LPC DMA should be the X99 from 2014, but even before that, e.g. Atom x2000 series (2012), LPC DMA was already missing.

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.


The X299 (2017) PCH certainly still has the proper DMAC for LPC[1]. The first series you see lacking a DMAC core (or, at least one compatible with LPC/ISA DMA) is the consumer 200 series of PCHs[2]. And it was fully gone by the 300 series[3]. It would seem that something in the switchover to the new streamed Intel HDA DMA architecture or going from DMI2.0->DMI3.0 left the functionality to the wayside.

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


The X299 (2017) PCH certainly still has the proper DMAC for LPC[1].

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


What about on the AMD side. Is there still any compatibility there?


I wouldn't be surprised if you could bit bang ISA these days. ISA ran at 8MB/s, and (e.g.) a Raspberry Pi runs at 1.5GHz. That's nearly 200 cycles per ISA clock. All you need is a couple of i/o pins.


An RPi is not so much different from a PC in that the CPU core clock is going to be the fastest and everything else will be slower. You're not going to get 1.5GHz out of a GPIO.

https://raspberrypi.stackexchange.com/questions/100011/how-f...


You don’t need to. Your cap is 8MB/sec. For audio you don’t even need that. 48khz 16bit stereo is only 192k/sec.


I've seen some astounding projects using the Raspberry Pi Pico "PIO" to create n64 Flash carts and now HDMI adapters. I don't have the slightest knowledge of how this stuff works but I imagine it is some sort of bit banging like process. Do you think it would be possible to simulate something like a soundcard using Raspberry Pi Pico? These devices seem like a great and really cost effective way to design around expensive FPGA based designs.



Truly Amazing! Thank you for the link!


I'm the creator of PicoGUS... PIO is kind of like hardware assisted bit banging. You program a very simple, extremely fast computer (aka the PIO peripheral on the RP2040) to do the bit banging for you. :)


Bit-banging one I'd be surprised about mostly for signal integrity at that line-speed reasons.

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.


I would. Doing bitbanging reliably is easy only if you have single process running.

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.


ISA is very forgiving timing wise. As long as you have the data on the pins when IOR or do your read by the time IOW is deasserted by the chipset you’re fine. And you can always deassert IOCHRDY and get all the time in the world to respond (within reason).


A friend of mine is building a Raspberry Pi ISA board so I’ll have to ping him on how it’s going.


I had some very successful experiments with bit banging ISA on a Raspberry Pi 3 and 4 a while ago: https://github.com/polpo/pigus I quickly moved over to a Raspberry Pi Pico because it's much better suited to such things. You need more than a couple I/O pins, though... to do real ISA (i.e., not LPC) right, you need more GPIOs than what the Pi gives you. But muxing the data/address lines is enough to give you back what you need.


It may be possible if you programmed the pi bare metal, I can't imagine a non rt os working.


https://github.com/osnr/rpi-bitbang-ethernet

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.


I had terrible luck getting 48k audio out of a bit-banged I2C ADC over Raspberry Pi. Being in userland was the most noticeable problem; once I switched to a kernel driver I was barely able to get the right sample rate.


It's still more modern than ISA


Proper announcement with more detail https://www.vogons.org/viewtopic.php?f=24&t=93291

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


TL;DR: LPC to ISA adapter basically allows you to connect old ISA cards like a Sound Blaster 16 here up to modern motherboards. Doing the old standard Doom test we have audio as you can hear that's full audio music and sound effect so seems to be working. I'm going to be open sourcing this board

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


You can still buy new motherboards with ISA slots. Lots of industries need these. https://duropc.com/product/r6029-4p5i-4


For how long?

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.


Rather sooner or later, someone is bound to implement that with an FPGA. Many already come with native PCIe blocks and a more-or-less powerful microprocessor to deal with DMA and whatever.



I never understood how these motherboards work given that they look more like expansion cards. Now I know the intended way is to plug that into a backplane and wire the bus interfaces out.


The mainboard is the card and the part with the connectors is just a passive backplane.


Ah picmg, we meet again. I have a Pentium chassis like this for retro stuff... I would like the full gamut of processor cards (8088, 286, 386, 486) for this.


Yeah, generally with a hefty price tag.

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.


> present in most modern motherboards, including current generation

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.


They broke TPM port? Old TPMs can't be plugged into new ports and the other way around?

This seems so messed up.


The LPC bus was introduced by Intel in 1998 as a software-compatible substitute for the Industry Standard Architecture (ISA) bus. It resembles ISA to software... [0]

[0]: https://en.wikipedia.org/wiki/Low_Pin_Count#Overview


Huh. What does the TPM port look like? And how did he get an old application to talk to this?

That could be useful for industrial and scientific applications where some ancient hardware from the DOS era is still in use.


> What does the TPM port look like?

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.


TPM uses the LPC (low pin count) bus controller, which provides a 4 bit @ 33 mhz interface... which isn't a coincidence that it is 1/4 the bits at 4x the clock rate as ISA, because that it what it was designed for. So demultiplex the bus back to 16 bit ISA and pull some driver magic and voila.

At least that is what I think is happening here.


> 33 mhz interface.

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


I didn't watch the video. I guess they are using the LPC header available on some mobos and a microcontroller or FPGA to change it to a full-blown ISA bus.


LPC (Low Pin Count) is the last remains of the ISA bus in the PC.

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.


> Supposedly there is no way to properly implement 100% ISA compatibility on modern PC's after the Pentium 3.

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.


As others have pointed out LPCis as dead as ISA is these days.


I mean, my AM4 motherboard I bought less than a year ago has an LPC bus. It ain't that dead.


as in AMD also removed them or never had them in the first place ?


AMD removed support as well.

https://flaterco.com/kb/ISA_chipsets.html


usb 2 ISA adapter is more handy thought

http://arstech.com/install/ecom-prodshow/usb2isar.html


you misspelled "less". This works only with their SDK (and non public build of dosbox), latency is bad due to USB so things that read a lot over ISA are out of the question (think playing doom on ISA vga)


Nop, no lag. Bandwidth is not an issue at all.A single ISA slot will top up @ 8MB half / 16MB full duplex


Latency is 3 orders of magnitude worse. USB 125µs while ISA ~500ns. No problem when writing if you do write coalesce/combining, big problem when reading from ISA devices.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: