I went a bit overboard this weekend with my current investigations into ATIs Rialto bridge.
While electrically everything is clear, there is the software component that has the most unknowns.
I know from schematics that the Rialto bridge is connected to the SPI EEPROM that is used by the GPU to store the BIOS. The question is: Why does the Rialto bridge need the EEPROM access and what's it doing with it?
My card to answer that is my X700 AGP and my X700 PCIe + a X700SE PCIe BIOS.
First I logged the complete SPI traffic using an RP2040 that is done by both the AGP and PCIe variant and found certain reads that the AGP card does before just loading the whole BIOS exactly like the PCIe one. This brought me forward to the point that I needed to test different BIOSes on the AGP card.
The goal: Take the X700SE PCIe BIOS (which also uses TSOP memory) and make it work on the AGP card with Rialto.
I built a test-jig with a Raspberry Pi Pico (RP2040), 74HC244 as a mux and moved the the EEPROM (SA25F005L) from the graphics card onto a SOP8 to DIP8 adapter.
This allows me to easily flash the EEPROM without need for software on the machine. This is especially important, since ATIflash will, dependent on the changes I do to the BIOS, not recognize the card anymore. The EEPROM needs to be isolated during programming from the card, because the Rialto bridge may assume the SPI master and then I'm locked out.
I flashed around 60 different BIOS permutations this way. It's very convenient. I tell the RP2040 to hand ownership of the EEPROM to itself (via the mux), then flash the BIOS via a small python program, then hand over ownership of the EEPROM to the graphics card. Next is just to restart the system under test and see if the BIOS works.
The attachment IMG_20260920_131844_preview.jpeg is no longer available
The attachment IMG_20260920_124906_preview.jpeg is no longer available
The attachment IMG_20260920_131848_preview.jpeg is no longer available
Since I know when the card is reading the BIOS contents from my SPI tracing, I know when it's safe to take over the EEPROM.
The attachment x700_weird_8.JPG is no longer available
Things I've seen so far:
- Card not posting, board ignores GPU error and boots without it
- Card not posting, stuck at boot code 25
- Card not posting, stuck at boot code 26
- Card posting, ATIflash not enumerating it
- Card posting, but in Windows I have 8 (!!!) X700 devices listed, driver bluescreens
- Card posting, but in Windows I have 8 X700 devices listed and one of them installs successfully + 3D works
- Modified X700SE PCIe BIOS + block for Rialto booting and running 3D successfully
I'm not far enough to conclude everything, but this weekend has been awesome and I can't wait to write it all up.
And for the kicks: Here is Rialto under load without any airflow:
The attachment img_thermal_1789924167607_preview.jpeg is no longer available