English Amiga Board


Go Back   English Amiga Board > Support > support.Hardware

 
 
Thread Tools
Old 25 April 2019, 18:38   #21
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 849
So you have taken an interesting idea and run with it. Can I ask your opinion on something I have tried "shopping around" many many years back:
Could you imagine an A4000 cpu card with a connector cable to the chipram SIMM slot on the motherboard? Basically putting something like 2M SRAM on board and force the addressing to go locally and not to the chipmem bus? (Hitting the replacement chipmem as fast as you can while still serving data over the SIMM slot.)
NorthWay is offline  
Old 25 April 2019, 18:47   #22
madlax
Registered User
 
madlax's Avatar
 
Join Date: Oct 2017
Location: St. Louis, MO, USA
Posts: 60
This is so cool!
madlax is offline  
Old 25 April 2019, 19:10   #23
deladrevoc
Not enough time
 
deladrevoc's Avatar
 
Join Date: Dec 2014
Location: England
Posts: 67
Internet radio would be quite cool
deladrevoc is offline  
Old 25 April 2019, 21:37   #24
Eriond
Happy Registered User
 
Eriond's Avatar
 
Join Date: Apr 2009
Location: Stockholm, Sweden
Posts: 101
Quote:
Originally Posted by NorthWay View Post
Could you imagine an A4000 cpu card with a connector cable to the chipram SIMM slot on the motherboard?
I'm no expert on the 32-bit machines, but my guess would be that you would not gain that much performance by allowing faster CPU access to chipram. It (the CPU) would still have to wait for the comparably slow custom chips to complete whatever task they are given.
In order to see a real performance boost, you would probably need to re-create your own faster versions of the custom chips, in a FPGA for instance. Because if you just overclock the existing ones, you'll run into all sorts of timing related issues (like illegal video timings etc.).
So, if you choose to go down that route (New CPU board, new custom chips, new ways of accessing the memory) you might just as well do a new Amiga model
Eriond is offline  
Old 25 April 2019, 22:34   #25
AndrewNC
Registered User
 
Join Date: Apr 2019
Location: Kent, UK
Posts: 7
Fantastic project! Just ordered some PCBs, can't wait to get one up and running!
AndrewNC is offline  
Old 25 April 2019, 23:13   #26
madlax
Registered User
 
madlax's Avatar
 
Join Date: Oct 2017
Location: St. Louis, MO, USA
Posts: 60
Quick question, does it work with Vampire?
madlax is offline  
Old 25 April 2019, 23:16   #27
kolla
Banned
 
Join Date: Nov 2007
Location: Trondheim, Norway
Posts: 1,893
Quote:
Originally Posted by madlax View Post
Quick question, does it work with Vampire?

Should work with V2 as long as you don't use Core3 (or whatever it is called, the "AGA core".)
kolla is offline  
Old 25 April 2019, 23:28   #28
madlax
Registered User
 
madlax's Avatar
 
Join Date: Oct 2017
Location: St. Louis, MO, USA
Posts: 60
Quote:
Originally Posted by kolla View Post
Should work with V2 as long as you don't use Core3 (or whatever it is called, the "AGA core".)
Would it be possible to also use the USB ports on the Pi for the Amiga? Like keyboard, mouse or external storage.
madlax is offline  
Old 26 April 2019, 01:35   #29
NovaCoder
Registered User
 
NovaCoder's Avatar
 
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,406
This is pretty cool, nice to see something different in the Amiga space
NovaCoder is offline  
Old 26 April 2019, 04:22   #30
Heywood
Registered User
 
Join Date: Mar 2018
Location: Brisbane/Australia
Posts: 72
Quote:
Originally Posted by madlax View Post
Would it be possible to also use the USB ports on the Pi for the Amiga? Like keyboard, mouse or external storage.

At least for the external storage piece I suspect that the "PiDisk - A remote file system that resides on the RPi, and can be further shared from that platform using for instance SMB." software could do this.


For Mouse and Keyboard, it may be worth taking advantage of the bluetooth capability of the Pi otherwise you need to snake cables through the trapdoor or something but there would most likely be a need to develop the software to make it work and this might suggest that it would really only work for system friendly software.



-----



One of my questions is how does the solution deal with asynchronous boot sequencing/timing of the Pi and Amiga? I imagine you need to kick off a task/thread to poll/wait for contact with the other device.
Heywood is offline  
Old 26 April 2019, 08:24   #31
Niklas
Registered User
 
Join Date: Apr 2018
Location: Stockholm / Sweden
Posts: 129
Quote:
Originally Posted by AndrewNC View Post
Fantastic project! Just ordered some PCBs, can't wait to get one up and running!
Yay, that's great to hear! Growing the user base by 50%!
Niklas is offline  
Old 26 April 2019, 08:26   #32
kolla
Banned
 
Join Date: Nov 2007
Location: Trondheim, Norway
Posts: 1,893
Quote:
Originally Posted by Heywood View Post
One of my questions is how does the solution deal with asynchronous boot sequencing/timing of the Pi and Amiga? I imagine you need to kick off a task/thread to poll/wait for contact with the other device.
Good question, though my experience is that the pi is up and running before the Amiga even has figured out what device to boot from.
kolla is offline  
Old 26 April 2019, 08:46   #33
Niklas
Registered User
 
Join Date: Apr 2018
Location: Stockholm / Sweden
Posts: 129
Quote:
Originally Posted by madlax View Post
Quick question, does it work with Vampire?
I don't know the answer to that I'm afraid as it hasn't been tested.

Quote:
Originally Posted by madlax View Post
Would it be possible to also use the USB ports on the Pi for the Amiga? Like keyboard, mouse or external storage.
There is no special support for USB-attached storage today, but using the a314fs file system should work as it stands. However, we were talking about that the functionality of the file system handler (a314fs) could be extended so that a device (e.g. USB0: ) is mounted in AmigaDOS, and then when a USB memory stick is inserted in the RPi it looks to AmigaDOS as if a diskette was inserted in USB0:, and similarly if the USB stick is removed it looks as if the diskette was ejected.

For keyboard and mouse there is no software support today, but it could be written.
Niklas is offline  
Old 26 April 2019, 09:10   #34
Eriond
Happy Registered User
 
Eriond's Avatar
 
Join Date: Apr 2009
Location: Stockholm, Sweden
Posts: 101
Quote:
Originally Posted by Heywood View Post
One of my questions is how does the solution deal with asynchronous boot sequencing/timing of the Pi and Amiga? I imagine you need to kick off a task/thread to poll/wait for contact with the other device.
We have made boot floppies with a very short startup-sequence: They basically start up the PiDisk file system, then assign all the system directories over to PI0: and continue the boot process from there.

The time spent during floppy access on the Amiga, is enough for the RPi to boot up and start the A314 daemon which in turn launches the PiDisk filesystem.
This is of course primarily a concern for cold boot situations; a warm boot (Ctrl-A-A Reset) does not affect the RPi, so in those situations the A314 daemon is already available.
Eriond is offline  
Old 26 April 2019, 09:21   #35
AndrewNC
Registered User
 
Join Date: Apr 2019
Location: Kent, UK
Posts: 7
Quote:
Originally Posted by Niklas View Post
Yay, that's great to hear! Growing the user base by 50%!
I've ordered parts to build up two of them, but will have some spare PCBs available for sale if anyone else wants to build their own. Should be somewhere around £12-£15 GBP per board (4 layer boards so a bit pricier than normal).
AndrewNC is offline  
Old 26 April 2019, 09:42   #36
Niklas
Registered User
 
Join Date: Apr 2018
Location: Stockholm / Sweden
Posts: 129
Quote:
Originally Posted by Heywood View Post
One of my questions is how does the solution deal with asynchronous boot sequencing/timing of the Pi and Amiga? I imagine you need to kick off a task/thread to poll/wait for contact with the other device.
Great question. It is designed to work regardless of the timing when booting up. I'll explain how it works.

First, you should know that the trapdoor expansion has essentially two buses going through it: a DRAM bus, and an RTC bus. The A314 looks like regular DRAM memory and RTC chip to the Amiga, but the RTC bus is also slightly subverted. If a particular bit in a particular RTC register is toggled then the RTC emulation switches bank to a new set of A314 registers that only the a314.device knows about. These registers are known as CMEM registers. CMEM registers can hold information, but some of them are also involved in controlling interrupts.

On the Amiga side:
- When a program on the Amiga wants to communicate with the RPi it loads a314.device (after that a314.device remains in memory until reboot).
- When a314.device loads it allocates a block of MEMF_A314 memory, i.e. memory on the board that can be accessed by the RPi. This block of memory is called the "communication area".
- a314.device writes the address of the communication area (the base address) to a set of CMEM registers (each CMEM register is 4 bits, so 5 CMEM registers are used to store the base address).
- a314.device writes to CMEM registers to interrupt the RPi to notify that the base address has been written. This interrupt may not be seen by the RPi if the RPi has not booted yet.
- When the program on the Amiga wants to connect to a service on the RPi, it calls a314.device, which writes a CONNECT packet to the com-area, and then generates an interrupt notifying the RPi that a packet has been written. Again, this interrupt may not be seen if the RPi hasn't booted yet.
- The program (via a314.device) waits until it receives a CONNECT_RESPONSE packet back from the RPi.
- Each program that connects to a service allocates a separate logical channel that are multiplexed over the shared communication channel, so there can be many outstanding connect requests.

On the RPi side:
- When the RPi boots up, systemd will start a314d as a service (daemon).
- a314d will read the base address from CMEM registers (via the SPI bus).
- If a base address had been written then a314d will know where the communication area is, otherwise it'll just wait until it gets interrupted with a notification that the base address has been written.
- Once a314d knows where the com-area is, a314d will read the queue pointers to see if the Amiga has sent it a packet.
- If a packet has been written to the com-area it will be read and processed. If the packet is a CONNECT packet, a314d will see which service is being connected to; there is a table of services that are registered, and this table also contains information so that a service can be loaded on demand if it wasn't started yet. In this sense, a314d is a bit like inetd, a super-daemon.
- A CONNECT_RESPONSE is sent back to the Amiga, by writing the packet to the communication area and then writing to CMEM registers to generate an interrupt at the Amiga.

This way, if the Amiga boots up first a314.device will write request packets for the RPi and then wait until response packets are available, and then later when the RPi boots it will see those request packets and respond to them. If the RPi boots up first it will see that the Amiga hasn't booted yet (no base address has been written) and simply wait until it is interrupted with a notification that the base address has been written.

Last edited by Niklas; 26 April 2019 at 10:52.
Niklas is offline  
Old 26 April 2019, 12:08   #37
project23
Used Register
 
Join Date: Jul 2018
Location: Liverpool
Age: 41
Posts: 437
This project is incredible, and i'll be printing some PCBs this month for sure...

A quick question:

The Pi has direct access to the chip ram, is that right?

Okay so iirc fastram or no, the graphics rendering on the Amiga is via chipram?

So on the Pi side, would a developer be free to tinker around with that ram to achieve whetever visual effects they're interested in on the Amiga side?

Where i'm going with this, is the ability to start work on something that would essentially render a windowed Pi native app on the workbench screen - such as a chat client or a web browser.

Perhaps even development into something akin to the ECS indy? Which I believe also has direct memory access.

Maybe a bit more hardware would be required for this, but the point is that the access would be there to develop with - or even monitor the actual memory in realtime using the Pi video out?

Am i talking out of my ass here? lol

John
project23 is offline  
Old 26 April 2019, 12:55   #38
Niklas
Registered User
 
Join Date: Apr 2018
Location: Stockholm / Sweden
Posts: 129
Quote:
Originally Posted by project23 View Post
This project is incredible, and i'll be printing some PCBs this month for sure...
It's nice to hear that we aren't the only ones that finds this interesting! Be advised though that soldering the components on the board can be a bit tricky, or at least so I've heard (it's Eriond who designed and assembled the boards).

Quote:
Originally Posted by project23 View Post
The Pi has direct access to the chip ram, is that right?
The Pi has direct access to the memory that sits on the A314. Whether this is chip mem or slow mem depends on which revision of Agnus chip is in your A500.

Have a look at this table: https://en.wikipedia.org/wiki/MOS_Te..._by_capability Also, if you have a 1MB Agnus you might have to do the mod as explained here, http://www.amibay.com/showthread.php...ll=1#post49241, to let Agnus use the trapdoor expansion memory as chip memory.

Quote:
Originally Posted by project23 View Post
Okay so iirc fastram or no, the graphics rendering on the Amiga is via chipram?
Yes, Denise reads the bitplanes from chip memory and translates those to the output video signals.

Quote:
Originally Posted by project23 View Post
So on the Pi side, would a developer be free to tinker around with that ram to achieve whetever visual effects they're interested in on the Amiga side?
Yes, more or less. You may want to synchronize the writing of bitplanes to memory with the way Denise reads those bitplanes though. The way this is done in the video player is by double buffering, but it might be possible to do something more clever using timing information.

Quote:
Originally Posted by project23 View Post
Where i'm going with this, is the ability to start work on something that would essentially render a windowed Pi native app on the workbench screen - such as a chat client or a web browser.
Drawing into a window on the workbench screen would have to be coordinated with the drawing that intuition performs normally, I think. I'm hoping it should be doable!

Quote:
Originally Posted by project23 View Post
Perhaps even development into something akin to the ECS indy? Which I believe also has direct memory access.
Not sure about this though; ECS Indivision has access to the RGA bus which I think is necessary to basically emulate what Denise is doing.

Quote:
Originally Posted by project23 View Post
Maybe a bit more hardware would be required for this, but the point is that the access would be there to develop with - or even monitor the actual memory in realtime using the Pi video out?
Well, if you extend the functionality of A314 to also connect to the RGA bus then I guess you could more interesting things This would be a significant change to the board however, and you would probably have to change FPGA because almost all pins are used today.

Quote:
Originally Posted by project23 View Post
Am i talking out of my ass here? lol
Haha not at all, you have some great ideas.
Niklas is offline  
Old 26 April 2019, 13:53   #39
E-Penguin
Banana
 
E-Penguin's Avatar
 
Join Date: Jul 2016
Location: Darmstadt
Posts: 1,214
An AHI-compatible sound card would be amazing, if you're accepting feature requests!
E-Penguin is offline  
Old 26 April 2019, 14:21   #40
Heywood
Registered User
 
Join Date: Mar 2018
Location: Brisbane/Australia
Posts: 72
Quote:
Originally Posted by Niklas View Post
Great question. It is designed to work regardless of the timing when booting up. I'll explain how it works
....

Thanks for the detailed explanation!
Heywood 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
Rygar AGA Edition - Official Bugs thread DamienD Coders. Contest 68 12 April 2022 18:43
Has anyone tried to mount a rpi zero inside A520 modulator? balrogsoft Amiga scene 4 06 December 2016 14:52
Clockport can be used like RPI GPIO port? mags Amiga scene 4 15 September 2014 15:02
PeterK's IconLib Official Thread Foul support.Apps 194 29 July 2011 09:47
The Official "Newly Aquired Games" thread StarEye project.SPS (was CAPS) 42 24 February 2006 01:33

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 01:10.

Top

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