For those who’ve never bitten the Apple, the PowerMac G4 was a blue-tinted desktop Macintosh offered from 1999 to 2004. At the time, the machines were plenty fast — being advertised as the first “personal supercomputer” when they hit the market. But Father Time is particularly harsh on silicon, so they’re properly archaic by modern standards.
As such, the rear panel of one of these machines is hardly where you’d expect to run into a functional USB-C port. But thanks to the efforts of [Dandu], old has officially met new. Critics will note that it’s not real USB-C, and instead uses USB 2.0 with the more modern connector. That’s true, but considering how many commercial devices we run into that are still using the same trick, we’ll give it a pass.
To be an Amiga fan during the dying days of the hardware platform back in the mid 1990s was to have a bleak existence indeed. Commodore had squandered what was to us the best computer ever with dismal marketing and a series of machines that were essentially just repackaged versions of the original. Where was a PCI Amiga with fast processors, we cried!
Now, thirty years too late, here’s [Jason Neus] with just the machine we wanted, in the shape of an ATX form factor Amiga motherboard with those all-important PCI slots and USB for keyboard and mouse.
What would have been unthinkable in the ’90s comes courtesy of an original or ECS Amiga chipset for the Amiga functions, and an FPGA and microcontroller for PCI and USB respectively. Meanwhile there’s also a PC floppy drive controller, based on work from [Ian Steadman]. The processor and RAM lives on a daughter card, and both 68040 and 68060 processors are supported.
Here in 2024 of course this is still a 1990s spec board, and misty-eyed speculation about what might have happened aside, it’s unlikely to become your daily driver. But that may not be the point, instead we should evaluate it for what it is. Implementing a PCI bus, even a 1990s one, is not without its challenges, and we’re impressed with the achievement.
For a while around a quarter century ago PC motherboards came with a special slot, a little shorter than the PCI slots which ruled the roost back then, and offset from them further into the case. This was the Accelerated Graphics Port, or AGP, a standard created to more quickly serve the 3D graphics cards which were then taking the world by storm. It was everywhere for a few years, then in the mid-2000s it was replaced by PCI Express and faded into obscurity. [Peter] has a Socket 7-based NAS with an AGP slot, and was left wondering whether the unused port could be put to a worthwhile purpose.
AGP is a superset of PCI clocked at 66 MHz, and usually benefiting from having its own exclusive bridge to the processor bus. Thus he reasoned that he could make an AGP to PCI adapter and it might work, as the right connections are all there. A hacked-together version was made by butchering two riser cards, and when a network card worked quite happily he knew he was on to something and made a PCB. There’s a caveat that it only works with 66-MHz capable PCI cards so not everything will work, but if you’re one of the very few people who must be in the market for one, he can do you a PCB.
Gigabyte GA486IM mainboard from 1994 with ISA, VLB and PCI slots. (Credit: Rjluna2, Wikimedia)
The early days of home computing were quite a jungle of different standards and convoluted solutions to make one piece of hardware work on as many different platforms as possible. IBM’s PC was an unexpected shift here, as with its expansion card-based system (retroactively called the ISA bus) it inspired a new evolution in computers. Of course, by the early 1990s the ISA bus couldn’t keep up with hardware demands, and a successor was needed. Many expected this to be VESA’s VLB, but as [Ernie Smith] regales us in a recent article in Tedium, Intel came out of left field with its PCI standard after initially backing VLB.
IBM, of course, wanted to see its own proprietary MCA standard used, while VLB was an open standard. One big issue with VLB is that it isn’t a new bus as such, but rather an additional slot tacked onto the existing ISA bus, as it was then called. While the reasoning for PCI was sound, with it being a compact, 32-bit (also 64-bit) design with plug and play and more complex but also more powerful PCI controller, its announcement came right before VLB was supposed to be announced.
Although there was some worry that having both VLB and PCI in the market competing would be bad, ultimately few mainboards ended up supporting VLB, and VLB quietly vanished. Later on PCI was extended into the Accelerated Graphics Port (AGP) that enabled the GPU revolution of the late 90s and still coexists with its PCIe successor. We covered making your own ISA and PCI cards a while ago, which shows that although PCI is more complex than ISA, it’s still well within the reach of today’s hobbyist, unlike PCIe which ramps up the hardware requirements.
Top image: PC AT mainboard with both 16-bit ISA and 32-bit PCI slots. (Credit: htomari, Flickr)
PCI and PCI-X are not directly compatible, and you’d be forgiven for thinking that means you’re out of luck if you need to use a PCI-X card in a machine that only has basic PCI slots. And yet, that needn’t be the case. As [Peter] shows us, you can work around this with a cheap hacky hack. Our favorite kind!
[Peter] had a PCI-X RAID card that he wanted to use on his Socket 7-based computer. The 3ware 9550SX PCI-X card is 3.3 V only, and doesn’t fit in a typical PCI slot. It’s not compatible mechanically or electrically. Enter a PCI-X riser, which gets around the missing notch that would normally not let the card sit in the slot. Other than that, it just took masking off some pins to avoid damage from the 5 V rail. Throughput is good, too, reportedly sitting at roughly 60-70 MB/s.
The hard part is probably finding a PCI-X riser; PCI-Express stuff is far more common. Few of us need to deal with PCI-X anymore, but if you’re working on some ancient industrial hardware or something, this hack might just save your beans from the roast pot one day.
If you ever looked at a PCI to PCIe x16 adapter and wondered what’d happen if you were to stick a modern PCIe GPU in it, the answer apparently is ‘it works’ according to an attempt by [Circuit Rewind]. As long as you accept needing to supply external power with even a low-end GT 1030 card – as the PCI slot cannot provide enough power – and being limited to a single PCIe lane. This latter point isn’t so much of an issue as a single PCIe lane offers more bandwidth than the (shared) PCI bus anyway.
Despite the somewhat improvised setup, the GT 1030 card provided a decent 1080p experience in a range of games, after removing half of the 8 GB of system RAM before the configuration would work, probably due to VRAM mapping issues. Since the mainboard used also offered PCIe, the same card was run in a PCIe x4 slot, as well as in an x1 configuration, both with noticeably higher performance and putting the ‘why’ in ‘try’.
Perhaps unsurprisingly, a RTX 3080 also booted fine with external power and only 4 GB system RAM installed. Despite the PCIe x1 link, the system was able to finish a 3D benchmark and play Doom 2016, but with only 4 GB of system RAM and an old Athlon quad-core CPU, it was a terrible experience. Perhaps the most fascinating lesson to learn from this is that PCI and PCIe are amazingly compatible with only a simple translation bridge, even if high-performance graphics aren’t quite what PCI was meant for. After all, that’s why we got cursed with AGP for many years.
The Raspberry Pi is famous for its low cost, versatile and open Linux environment, and plentiful I/O, making it a perfect device not only for its originally-intended educational purposes but for basically every hobbyist from gardeners to roboticists to amateur radio operators. Most builds tend to make use of the GPIO pins which allow easy connections to various peripherals and sensors, but the Pi also supports PCI devices which means that, in theory, it could use a GPU in much the same way that a modern computer would. After plenty of testing and development, [Jeff Geerling] brings us this custom graphics card interface for the Raspberry Pi.
The testing for all of these graphics cards has been done with a Pi Compute Module 4 and the end result is an interface device which looks much like a graphics card itself. It splits the PCI bus out onto a more familiar x16 slot connector and adds physical connections for power, USB, and Ethernet. When plugged into the carrier board, the Compute Module can be attached to any of a number of graphics cards, including the latest and highest-end of Nvidia and AMD offerings.
Perhaps unsurprisingly, though, the 4090 and 7900 cards don’t work with the Raspberry Pi. This is partially due to the 32-bit limitations of the Pi and other memory mapping issues, but even after attempting some workarounds Nvidia’s cards aren’t open-source enough to test properly (although the card is recognized by the Pi) and AMD’s drivers crash the system even after compiling a custom kernel. [Jeff] did find an Nvidia card that worked, although it requires using the USB interface and second-hand cards are selling for around $3000 USD. For a more economical choice there are some other graphics cards that he was eventually able to get working, albeit not with perfect performance, including some of the ones we’ve seen him test already.