cheesestraws
Well-known member
As I was saying before we were so rudely interrupted... ;-)
@Daniël Oosterhuis, @Knez and I are digging into the feasibility of using unsupported combo PCI cards on Gazelle-based machines (TAM etc). The problem here is that there is a bug in the Open Firmware on those machines which prevent it seeing devices on the other side of a PCI bridge.
Sonnet did produce a patch for their early Tango 2.0 cards, which doesn't work with any other combination cards. The "patch", being for Open Firmware, is in Forth; and Forth is a bit of a write-once language, but given enough caffeine one can work out what is going on in it.
On looking at this (I can repost the commented analysis, if anyone's interested), it became obvious the reason it doesn't work with other cards is that it doesn't actually re-enable PCI enumeration at all: what it does instead is to "fake" the devices that PCI enumeration would find. It also became obvious that the patch wasn't really a patch at all but just an initialisation script (an "nvramrc").
This was bad news because it meant that we couldn't simply adapt the patch to work with all devices. But it was also good news, because it meant there wasn't any reason in theory why the approach couldn't work with other cards.
There was a parallel problem, which was how to install the patches. The Sonnet one was rather hardcoded to one specific patch, or rather a patch of that specific length. We do now have a more generic patcher that can install patches of varying length (https://github.com/cheesestraws/pitcherpatcher). We do still only have 2k to play with, though.
The next step will be to try to work out how to generate the patch source from the OF output of a "good" machine. I have a beige G3 arriving from @joshc next weekend, which will hopefully assist with this.
Further progress may occur...
@Daniël Oosterhuis, @Knez and I are digging into the feasibility of using unsupported combo PCI cards on Gazelle-based machines (TAM etc). The problem here is that there is a bug in the Open Firmware on those machines which prevent it seeing devices on the other side of a PCI bridge.
Sonnet did produce a patch for their early Tango 2.0 cards, which doesn't work with any other combination cards. The "patch", being for Open Firmware, is in Forth; and Forth is a bit of a write-once language, but given enough caffeine one can work out what is going on in it.
On looking at this (I can repost the commented analysis, if anyone's interested), it became obvious the reason it doesn't work with other cards is that it doesn't actually re-enable PCI enumeration at all: what it does instead is to "fake" the devices that PCI enumeration would find. It also became obvious that the patch wasn't really a patch at all but just an initialisation script (an "nvramrc").
This was bad news because it meant that we couldn't simply adapt the patch to work with all devices. But it was also good news, because it meant there wasn't any reason in theory why the approach couldn't work with other cards.
There was a parallel problem, which was how to install the patches. The Sonnet one was rather hardcoded to one specific patch, or rather a patch of that specific length. We do now have a more generic patcher that can install patches of varying length (https://github.com/cheesestraws/pitcherpatcher). We do still only have 2k to play with, though.
The next step will be to try to work out how to generate the patch source from the OF output of a "good" machine. I have a beige G3 arriving from @joshc next weekend, which will hopefully assist with this.
Further progress may occur...