English Amiga Board


Go Back   English Amiga Board > Support > support.Hardware

 
 
Thread Tools
Old 08 May 2024, 20:19   #41
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 2,016
The PCIBPMC from Dynamic Engineering works. I noticed that some bridges crash when nothing is behind it
Hedeon is offline  
Old 09 May 2024, 15:29   #42
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by Hedeon View Post
OpenPCI sits on top of prometheus.library (and pci.library etc)

You can do both.

Ok. I am in the funny situation, that I basically have all basic functionality and some acceleration for the Matrox Mystique running, but cannot get a .card driver for P96 to work for whatever reason. Something in my BoardInfo makes P96 crash (at a later point) as soon as the BoadInfo is internally added to the list. No idea why and hard to debug, since the actual crash is outside my code and process.



So now I try the .chip+Prometheus.card variant hoping it avoids whatever is wrong with my card. Still confident, to get most of the Matrox hardwarerunning soon (as time permits).


Thanks for your valuable advice. The S3 driver already helped a lot as an example (though I am doing assembly).

Last edited by PainDictator; 09 May 2024 at 15:49.
PainDictator is offline  
Old 09 May 2024, 15:48   #43
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by Hedeon View Post
OpenPCI recommended as you automatically support multiple pci solutions

Was also my idea. Thus, I so far have sticked to using OpenPCI and avoiding to rely on prometheus.library. However, I dont see how to do it using OpenPCI. Any idea?
PainDictator is offline  
Old 09 May 2024, 20:02   #44
pipper
Registered User
 
Join Date: Jul 2017
Location: San Jose
Posts: 664
Matrox MGA100 was on my list, too! But I have not started working on it yet.

I don't think its possible to write the driver in OpenPCI only, mainly because it lacks the API to hand out DMA memory to the system. It only has APIs to allocate and free DMA memory from the system.

I have seen graphics drivers that do not separate .card and .chip libraries. I think this is fine (i.e. only provide a .card driver) and it might even be helpful in the beginning as it removes complications from dealing with building libraries.
The separation of .card and .chip was done so various cards with the same VGA chip can share code.

WRT card driver crashing the system: share the source and we can take a look. P96 typically fills in most if not all functions with default implementations.
Its possible that the .chip library does not have a proper structure? Is it being built as library?
pipper is offline  
Old 09 May 2024, 20:35   #45
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by pipper View Post
Matrox MGA100 was on my list, too! But I have not started working on it yet.

I don't think its possible to write the driver in OpenPCI only, mainly because it lacks the API to hand out DMA memory to the system. It only has APIs to allocate and free DMA memory from the system.

I have seen graphics drivers that do not separate .card and .chip libraries. I think this is fine (i.e. only provide a .card driver) and it might even be helpful in the beginning as it removes complications from dealing with building libraries.
The separation of .card and .chip was done so various cards with the same VGA chip can share code.

WRT card driver crashing the system: share the source and we can take a look. P96 typically fills in most if not all functions with default implementations.
Its possible that the .chip library does not have a proper structure? Is it being built as library?

G100 should be almost the same as mystique hardware-wise (from what I have seen so far. I expect, that largely the same code (with few additions) can finally serve Millenium, Millenium II, Mystique, Mystique 220, G100, G200, G400, G450, G550. BTW: Did you see a PCI G100? All I found are AGP. Most other boards I have already acquired for testing. Currently, only Mystique and Mystique 200 work (because that is what is implemented).



Regarding OpenPCI, that fits my impression. Maybe it would make sense (later) to modify it to allow providing the memory via the library (rather than through the backend libraries), because that enables "pure" OpenPCI drivers. Currently, I consider using the prometheus.library for providing the memory (if present) and sticking to OpenPCI for the rest, but have not checked this in detail.


Will share the source soon, its supposed to end up on GitLab anyway. Can mail you "as is" if you are interested. Can however mail you the code anytime if you are interested. Currently, it all only works in the "test" program while the actual driver is wired to work, but does not.


I am wondering if it is an issue, that I do not provide anything as the Chip, even internall because I see no need to and the documentation seems to say its not required. The chip libary usually seems to only provide a single function, that is supposed to be called be the individual InitCard. I just do everything in InitCard without chip.
PainDictator is offline  
Old 09 May 2024, 20:58   #46
pipper
Registered User
 
Join Date: Jul 2017
Location: San Jose
Posts: 664
Yes, you should be able to go without the .chip library.

WRT OpenPCI: the idea is nice, but it seems, OpenPCI doesn't support anything other than Prometheus anyways(?)
https://github.com/jeperk/OpenPCI
There's indications that GRex/Mediator support was once there, but I don't see any code in there still supporting them.
IDK the state of affairs there... is this the original OpenPCI library or a reimplementation? Why has the non-Prometheus code been removed?
pipper is offline  
Old 09 May 2024, 21:23   #47
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 2,016
The SDK or whatever it is called for Mediator at least is behind an NDA. Maybe that's it.

Regarding .chip and .card. you can have it in one file. Just need the initcard and initchip to be there.

Also the old boardinfo structure is smaller than the current one (2.1 vs 3.0)

And of course there are function pointers in the boardinfo structure so maybe it crashes there?

What kind of debugging tools are you using?
Hedeon is offline  
Old 09 May 2024, 21:46   #48
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by pipper View Post
Yes, you should be able to go without the .chip library.

WRT OpenPCI: the idea is nice, but it seems, OpenPCI doesn't support anything other than Prometheus anyways(?)
https://github.com/jeperk/OpenPCI
There's indications that GRex/Mediator support was once there, but I don't see any code in there still supporting them.
IDK the state of affairs there... is this the original OpenPCI library or a reimplementation? Why has the non-Prometheus code been removed?

I suspect there are non-public versions of the openpci.library that do work with GRex and Mediator. But yes, it seems the open source version does not include anyhting but Prometheus.
PainDictator is offline  
Old 09 May 2024, 21:51   #49
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by Hedeon View Post
The SDK or whatever it is called for Mediator at least is behind an NDA. Maybe that's it.

Regarding .chip and .card. you can have it in one file. Just need the initcard and initchip to be there.

Also the old boardinfo structure is smaller than the current one (2.1 vs 3.0)

And of course there are function pointers in the boardinfo structure so maybe it crashes there?

What kind of debugging tools are you using?

I have no InitChip as there is no .chip library in my implementation. The documentation says, that the library is supposed to be loaded by InitBoard and that InitBoard() also is the caller of InitChip. So it seemed ok not to have it all, but I really wonder if not having the ChipBase set in the end runs into something for P96.



Other than that, I have all unimplemented functions pointing to dummy so I see what is called. Debugging takes place in MonAm (the debuger included with HiSofts DevPac Assembler). What I see is that right after the instruction that inserts the the BoardInfo into P96s's internal list, dragging a screen makes the computer reset. One instruction before everything is fine. So it seems ther is something in my BoardInfo that makes P96 choke when it comes across it but I cannot see what. Already spent days looking for that ...
PainDictator is offline  
Old 09 May 2024, 23:11   #50
grelbfarlk
Registered User
 
Join Date: Dec 2015
Location: USA
Posts: 2,932
Cool Matrox Mystique!
I had one of those back in the day, since the 3D part is pretty much useless at least people won't be pining for Warp3D drivers.

The Firestorm really runs quite well, I thought the 1/4 decrease compared to the Mediator would be a lot more noticeable with a PPC card, but it's really not that much worse.
A4000 with a CSMK2 060@50MHz, A4091, Voodoo 3-3000, Ragnarok 800MHz:
Quake demo1 640x480 16bpp 640x480 = 49FPS
Quake 2 demo1 640x480 16bpp 640x480 = 60FPS
ScummVM 2.2 ELF monster version runs great, COMI intro is very smooth
MESS 320x200 8bpp Frameskip 2 runs perfectly
Wipeout 640x480 16bpp very smooth
SBLive 7.1 and AHI 6.7 works fine with:
Amplifier and mpega.library PPC Libmad version to play MP3s
QuakeGL, even in 16 bit 44100
HexenGL 2 as usual it works fine at 16bit 44100 PCI sound perfectly, for some reason

Last edited by grelbfarlk; 11 May 2024 at 04:28.
grelbfarlk is offline  
Old 10 May 2024, 20:20   #51
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 2,016
Quote:
Originally Posted by PainDictator View Post
I have no InitChip as there is no .chip library in my implementation. The documentation says, that the library is supposed to be loaded by InitBoard and that InitBoard() also is the caller of InitChip. So it seemed ok not to have it all, but I really wonder if not having the ChipBase set in the end runs into something for P96.
Had a quick look and indeed the InitChip() seems to not be needed. The library needs FindCard() and InitCard().

I can't seem to find that ChipBase is needed.

Maybe install the COP debugger
Hedeon is offline  
Old 11 May 2024, 15:04   #52
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by Hedeon View Post
Had a quick look and indeed the InitChip() seems to not be needed. The library needs FindCard() and InitCard().

I can't seem to find that ChipBase is needed.

Maybe install the COP debugger

Any particular Idea what I should look for at COP? Does this do anything specific (like catching that reset in a way)?
PainDictator is offline  
Old 11 May 2024, 23:36   #53
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 2,016
Quote:
Originally Posted by PainDictator View Post
Any particular Idea what I should look for at COP? Does this do anything specific (like catching that reset in a way)?
It catches almost all crashes. You can trace trough interrupts, that kind of stuff.
Hedeon is offline  
Old 13 May 2024, 16:41   #54
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by Hedeon View Post
It catches almost all crashes. You can trace trough interrupts, that kind of stuff.

Helped indeed. Turned out, my idea to use ALERT for debug Output in SetDisplay kills the system as the function is called during screen changes where apparently the system is not ready to display an alert ...


So far, things start to work. Think I will put something up shortly.
PainDictator is offline  
Old 14 May 2024, 11:22   #55
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 2,016
Quote:
Originally Posted by grelbfarlk View Post
ScummVM 2.2 ELF monster version
Steve is back in the house BTW. Compiling ELF binaries.

Regarding speed, mediator is faster if you use the 17.13b version as it is in asm. But was getting a nightmare to maintain.
Hedeon is offline  
Old 14 May 2024, 11:24   #56
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 2,016
Quote:
Originally Posted by PainDictator View Post
Helped indeed. Turned out, my idea to use ALERT for debug Output in SetDisplay kills the system as the function is called during screen changes where apparently the system is not ready to display an alert ...


So far, things start to work. Think I will put something up shortly.
Output to serial I mostly use. And regarding the last sentence: pics plx
Hedeon is offline  
Old 15 May 2024, 02:15   #57
PainDictator
Registered User
 
Join Date: May 2023
Location: Dortmund
Posts: 16
Quote:
Originally Posted by Hedeon View Post
Output to serial I mostly use. And regarding the last sentence: pics plx
You can find First Screenshots here

https://www.a1k.org/forum/index.php?threads/91414/
PainDictator is offline  
Old 15 May 2024, 02:32   #58
pipper
Registered User
 
Join Date: Jul 2017
Location: San Jose
Posts: 664
Very cool! Can you post some P96Speed results as well?

Gute Arbeit!
pipper is offline  
Old 15 May 2024, 04:54   #59
grelbfarlk
Registered User
 
Join Date: Dec 2015
Location: USA
Posts: 2,932
Wunderbar Kekstraube!
grelbfarlk is offline  
Old 15 May 2024, 16:11   #60
Hedeon
Semi-Retired
 
Join Date: Mar 2012
Location: Leiden / The Netherlands
Posts: 2,016
Quote:
Originally Posted by PainDictator View Post
You can find First Screenshots here

https://www.a1k.org/forum/index.php?threads/91414/
So how did you do it? Linux drivers? Documentation?
Hedeon is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
VA2000 Support Thread mntmn support.Hardware 161 20 March 2024 05:45
AKReal Support Thread Retrofan support.Other 1070 23 December 2023 23:42
Help setting up Prometheus Firebird and Voodoo3 trixster support.Hardware 17 18 June 2020 12:50
Starquake: Support & Release Thread Galahad/FLT support.Games 69 19 April 2020 19:29
Support on removed thread Azvareth project.EAB 5 06 December 2019 10:51

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 15:52.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.09606 seconds with 16 queries