shanshe / Prometheus-Resurrector

8 stars 1 forks source link

Awesome! #1

Open tkurbad opened 1 year ago

tkurbad commented 1 year ago

This is something I wanted to do for a long time! Even contacted Michael Böhmer (E3B) about it.

You are the man, @shanshe!

Btw., the original board from E3B has two of the PCI address lines swapped. I can send you an errata once I'm back home. Also, it uses several parts that are not hobbyist soldering friendly.

I've made my own "corrections" to the board and have (still blank) PCBs at home. I guess it's time to assemble them and test with your firmware.

shanshe commented 1 year ago

This summer has been very "productive" ;)

First time I saw the new schematics and those lines, I thought that it was some kind of "new features". Also interrupt lines were swapped. Then I saw original prometheus board schematics, and I put all like the original one (but I routed 3.3V to the PCI connectors, following the new schematics).

Some components are NC in my schematics, as they are mainly for debugging. I only soldered the debug connector to see some signals with a logic analyzer. There are leds, and their respective resistors, that are not used in firmware, so I left the board without them. I also routed a PLL to multiply by 2 the 33MHz from oscillator, but it is not used at all...

And yes, 0402 resistors are very very tiny. What I do is to spread some soldering paste drops, pass the soldering tip over the pads, put the resistor over the pad, and finally apply hot with a hot air gun. And of course, I use a good microscope, hehehe. I'm still under 50 (it will change in months), but my sight is not what it was :)

Please, share those corrections (no hurry, when you are back at home), so we can improve the project.

tkurbad commented 1 year ago

I see that our modifications are quite similar. I've also added a footprint for an SMD oscillator. Nice catch with the interrupt lines. I think that was what I meant by "address lines". :-)

I did away with all the 0402 components and replaced them by resistor arrays and 0603 and larger stuff. Also routed 3.3 V to the PCI connectors and placed a footprint for a less exotic regulator.

I see that we are of similar age. I'll be 47 in about a month. Invested in a good trinocular microscope about two years ago. One of the best things I ever bought for the hobby...

shanshe commented 1 year ago

There were two main issues. Address lines 16 to 19, has to be connected to every PCI SEL lines (A16 to the first PCI, A17 to the second,…). They were connected to other lines. Interrupt lines INTA, B, C and D were connected but each PCI connector had a different connection. Original Prometheus has all interrupts connected to the same pins on all PCI connectors.

shanshe commented 7 months ago

I will write here another issue that I find in the original E3B xilinx firmware. The IO space had also a byte swap mistake. The fix was uploaded two weeks ago.

mheyer32 commented 7 months ago

What is the practical result of these byte swaps from the programmer's perspective?

shanshe commented 7 months ago

It was a hardware issue (a xilinx CPLD firmware issue). For example, a voodoo 3 card didn't work before this was fixed, it didn't even show anything in its VGA output (with the current prometheus libraries). Now, prometheus xilinx and altera versions are closer in their behavior, but xilinx's one seems to do things better than altera's (timing issues when writing data through PCIe bridges for example).

mheyer32 commented 7 months ago

Oh, I understand this fix makes sure, Xilinx and Altera behave the same. Well done! Looking forward the A3000/A4000 daughterboard versions!