Sakura-IT / PowerPCAmiga

Next generation PowerPC library for classic AmigaOS (work in progress)
12 stars 0 forks source link

Add Prometheus/Firestorm support #5

Closed DvdBoon closed 3 years ago

DvdBoon commented 4 years ago

Current library version does not support the Firestorm PCI bridge. Not sure if Prometheus is possible due to lack of DMA in the original firmware.

DvdBoon commented 4 years ago

Prometheus support probably needs an update to the prometheus library (no auto init of certain cards). Who has the source of the library @MastaTabs

tkurbad commented 4 years ago

Well, the binary of prometheus.library 3.0 seems to be here: https://github.com/jeperk/OpenPCI/tree/master/PrometheusOpenPci/Prometheus-3.0

Maybe @jeperk does know something...

jeperk commented 4 years ago

I happen to subscribe to this project and noticed my name.

I really know very little about it. I just asked if I could get the source and post it under an open license for posterity.

Note that due to the restrictive developer license for the Mediator, support for that backplane couldn't be included in the source code release.

rkujawa commented 4 years ago

@grzegorz-kraszewski is the original author of prometheus.library. He may know something.

On a side note, Prometheus is super easy to program, it is probably the most simplistic of Amiga PCI bridges. I once wrote a NetBSD driver for it and it was a breeze. Well... just that nobody probably wants to spend the time on reinventing that wheel - it would be easier to just mod the original library.

DvdBoon commented 4 years ago

The other thing that is missing from the prometheus library (as far as I can see) are the PCI memory allocate/free functions. Like if I need 256MB of PCI memory for the PPC card I can allocate that through the mediator library. I am not sure how the prometheus library does that internally.

jcagigal commented 4 years ago

@MastaTabs is the current prometheus.library maintainer. His new library supports both Prometheus & Firestorm firmwares. Perhaps he can supply you the sources or perform the required sources. I've sent him an email with a link to this thread, let's hope he reads it

DvdBoon commented 4 years ago

As soon as the library is in a working state, I'll try harder to contact @MastaTabs

DvdBoon commented 4 years ago

Expecting a Firestorm somewhere early July. Library is ready to add and test Firestorm code.

DvdBoon commented 3 years ago

Have some preliminary K1/M1 support in. I used hard-coded addresses for where the memory and config block should be as I don't have the means to allocate them through the prometheus.library at this point (see pci.library) @MastaTabs.

More pressing is that the context switch is 90ms instead of 500us. Not sure if I am doing something wrong or the prometheus is the issue @grzegorz-kraszewski.

I'll try to add some Harrier (PowerPlus-III) support to see if I have the same issue there.

DvdBoon commented 3 years ago

For example, the mediator has a function to add and set the INT2 interrupt for a card. The prometheus only has an add function? 90ms almost seems like it is linked to the VB Prometheus interrupt which is fired every 20ms or so. And because the INT2 chain is activated by that, my interrupt code picks it up instead of being activated by an actual interrupt generated by the card?

DvdBoon commented 3 years ago

The INT2 issue appeared to be a bug in the prometheus.library. Work around has been implemented. Now Warp3D is the next issue.

DvdBoon commented 3 years ago

Apocalypse, Ragnarok and Rapture cards seem to work correct. Including Warp3D. Sonnet crashes start-up. Could be memory problem. K1/M1 cards start up correctly, but show artifacts in 2D windowed apps (outside of the window) and Warp3D not working.

Working now on adding functions to the prometheus.library so hardcoded addresses are no longer necessary and the powerpc.library can ask for valid pci addresses through the prometheus.library.

DvdBoon commented 3 years ago

I also need to upload the latest sources.... But it will break Mediator support probably initially.

DvdBoon commented 3 years ago

Radeon seems to timeout leading to bus errors. Voodoo support seems ready.

DvdBoon commented 3 years ago

Done. Further issues tracked elsewhere.