English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.Hardware (https://eab.abime.net/forumdisplay.php?f=20)
-   -   Sonnet 7200 PCI programming (https://eab.abime.net/showthread.php?t=76633)

Hedeon 23 January 2015 12:56

1 Attachment(s)
With help from MastaTabs regarding the memory recognition and initiation code. The PPC now sets up the 3x16MB correctly and maps it to PCI space. I added some code to add it as a memory node.

strim 23 January 2015 13:05

Quote:

Originally Posted by Hedeon (Post 999301)
With help from MastaTabs regarding the memory recognition and initiation code. The PPC now sets up the 3x16MB correctly and maps it to PCI space. I added some code to add it as a memory node.

Looks cool.

So, the next step would by trying to run some code on the PPC and sync it with 68k exec somehow? Hmm. If I remember correctly, warphw.library documentation was available at some point.

I wonder if it would be possible to provide own implementation... Although there are many differences compared to Phase5 boards. Namely, in this situation PPC CPU has access only to PCI side of the bridge.

It might be easier to run pure-PPC OS in this setup than WarpOS (assuming that Master jumper works as I think it does).

You're cross-compiling your stuff from PC, or hacking directly on the Amiga?

Promilus 23 January 2015 21:55

Quote:

So, the next step would by trying to run some code on the PPC and sync it with 68k exec somehow?
That might be a bit difficult with that design. Remember than sonnet memory is native to ppc and is mapped through pci adressing space (4GB) to amiga memory. Now let's say we have 68040 turbo card, mediator pci and sonnet 7200. You have motherboard chip memory, you have native 68k fast ram on turbo card and you have ppc native ram on sonnet mapped to pci. Accessing Sonnet mem is basically as slow as accessing radeon vram (on mediator). It goes other way around too - so accessing fast ram by ppc is really slow. Optimal speed would be only available if PPC code was executed from sonnet mem alone. That's a lot of hacking I suppose.

wXR 24 January 2015 02:45

Wait wait, what is going on here? Is this a homebrew SharkPPC in the works? :-)

gulliver 24 January 2015 04:59

This is certainly an interesting thread.

I dont care if it is slow, as long as it works as some sort of coprocessor speeding up some tasks.

NMI 24 January 2015 15:39

Really, really cool!
Using it for some of the same tasks that the BPPC/CSPPC tend to be used for when you run AOS3.x should be possible I think. Like JPEG (de-)compression, mp3 (de-/en-)coding, datatypes etc.
Does the Sonnet have any features to simplify sharing memory and/or message passing?
And what about interrupts, can both the processors send interrupts to the other?

Hedeon 25 January 2015 10:43

@Strim

I'm hacking directly on the Amiga. (FYI an A3000UX which also has NetBSD installed).
Using Devpac (Genam/Monam) on the 68k code and Powerasm for the PPC code. Which has it's quirks, like not supporting the L2CR register and while the docs say that addis rD,rS,SIMM should work as rD=0+SIMM when rS = 0 it still somehow behaved as rD=r0+SIMM which took me a while to find.

But i'm happy with it.

strim 25 January 2015 14:00

Quote:

Originally Posted by Hedeon (Post 999733)
@Strim

I'm hacking directly on the Amiga. (FYI an A3000UX which also has NetBSD installed).
Using Devpac (Genam/Monam) on the 68k code and Powerasm for the PPC code. Which has it's quirks, like not supporting the L2CR register and while the docs say that addis rD,rS,SIMM should work as rD=0+SIMM when rS = 0 it still somehow behaved as rD=r0+SIMM which took me a while to find.

I was asking about that because I was wondering if I could somehow join your development, without actually making it more difficult for you.

Earlier I mentioned GitHub, that I normally use for source code management of my projects, but since you're developing natively, that is not an option. As far as I know there's no usable git client for OS 3.x. I think the only option would be to set up our own Subversion or CVS repository. I didn't do any native development in ages, but I remember there were working CVS and Subversion clients. CVS is simpler so I'd probably go for it.

The second thing to solve would be a compiler that works both natively and for cross compilation (for 68k and ppc). I'm often out of home, can't take my Amiga on the road, and using UAE for actually writing code is a pain for me. So I'd prefer a solution that works both on real Amiga and from other OS - I normally use some Unix-like while on the road. I could try to build such environment with vbcc, which is modern and available both natively on AmigaOS and for cross compilation.

Any solutions like "compile on Amiga, then copy to PC, to push to GitHub", or "mail lha of source code snapshot" are not acceptable in my opinion (it's a huge waste of time). It would absolutely make no sense at this early stage, if you'd have to spend more time on sharing to results of your work, than actually working. I think developer's time is most precious and should be used on development instead of menial tasks. Tell me your opinion ;).

If you send me the source, I could set up CVS server and vbcc-ize the code, to make it buildable both on AmigaOS and Unix-likes.

Hedeon 25 January 2015 20:56

Maybe vbcc is an option

Hedeon 26 January 2015 23:19

Oh, didn't read your post very well, I see now. You have a PM.

Don't know if I actually have a working vbcc installation on this Amiga, but that shouldn't be a problem.

At least the interrupt from 68k -> PPC is now working, Slowly getting there. With the PPC -> 68k interrupt in place we have a basic context switching mechanism.

wXR 27 January 2015 05:55

Quote:

Originally Posted by strim (Post 999786)
Any solutions like "compile on Amiga, then copy to PC, to push to GitHub", or "mail lha of source code snapshot" are not acceptable in my opinion (it's a huge waste of time). It would absolutely make no sense at this early stage, if you'd have to spend more time on sharing to results of your work, than actually working. I think developer's time is most precious and should be used on development instead of menial tasks. Tell me your opinion ;).

He said he's using NetBSD, so probably git is available on that platform...

Hedeon 13 February 2015 14:01

Quote:

Originally Posted by NMI (Post 999583)
Does the Sonnet have any features to simplify sharing memory and/or message passing?
And what about interrupts, can both the processors send interrupts to the other?

The Amiga can access the Sonnet memory 'directly' (about as fast as CHIP mem on a 060). The Sonnet cannot access the Amiga memory (or hardware) directly (could set up an address (MMU) exception to catch em and transfer it to the 68k CPU; very slow). Message passing PPC-> 68k can be achieved by a 68k process/message port located in Sonnet Memory, I think. Both CPU's can interrupt each other.

Hedeon 13 February 2015 14:37

Quote:

Originally Posted by strim (Post 999304)
So, the next step would by trying to run some code on the PPC and sync it with 68k exec somehow? Hmm. If I remember correctly, warphw.library documentation was available at some point.

I wonder if it would be possible to provide own implementation... Although there are many differences compared to Phase5 boards. Namely, in this situation PPC CPU has access only to PCI side of the bridge.

I've started to write an own implementation of the powerpc.library. Hope to have some simple message system/task scheduler in place at end of the month. Then the first programs can be (tried to) run

Sir_Lucas 20 February 2015 10:59

Very, very interesting thread!!! Keep up the good work!! :)

strim 12 March 2015 11:18

There is some major progress in the project, and there's public mirror of development repository on GitHub.

alexh 12 March 2015 11:24

Are the Sonnet 7300 cards pretty much the same thing?

strim 12 March 2015 11:29

I think it is a mislabeled 7200. As far as I know there's no such thing as Crescendo 7300. And no information about it on Sonnet web page.

alexh 12 March 2015 11:51

I saw them for sale @ $99 if anyone is looking for one.

http://www.welovemacs.com/crg350wi1m16.html

strim 17 March 2015 09:24

CyberPI (from WarpOS distribution) is working. Needed some patching here and there, but we're working on running (unpatched) normal programs.

http://c0ff33.net/drop/Cyberpi_WOS.png

jbenam 17 March 2015 10:32

Amazing! How does the CyberPI result compare to one from a BlizzardPPC/CyberstormPPC?


All times are GMT +2. The time now is 01:08.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.20859 seconds with 11 queries