Open Oichkatzelesfrettschen opened 5 months ago
Hi,
I'm in principle open and interested in ports to other 68k systems. To you have a specific one in mind?
Thinking a place to start could be Sun3 as that is emulatable easily via SIMH if you ever wanted to tinker around that path? Then from there there are a bunch of hobby boards. Old macs would be cool, but then you have to deal with ROM workarounds to boot (which Debian and NetBSD have fairly well documented)
What about the 080 ? I would LOVE native support for the 080 instructions. The OS will work anyway, but with 080 spesific stuff, it would be much much faster than lets say the 060.
The Vampire V4 Standalone is a fantastic platform.
I looked up information about the 68080 and the Vampire V4 and it does look very interesting and I would in principle be interested in adding support for this CPU and platform in the future. However, I do not have plans for any concrete work on that front at this time.
In any case, a first step would be to find out which C compiler and assembler is able to generate machine code for the 68080. It also looks like that there's some documentation publicly available, although it's not clear how complete and accurate it is.
So if someone is interested in looking into this then this would be helpful and the result of those investigations could then serve as a starting point for further discussions on this topic.
Ok so from some digging around today here is a draft of my initial thoughts about the 68080:
Toolchain: The m68k-amigaos-gcc toolchain (https://github.com/bebbo/amiga-gcc) seems like a good starting point. It supports the 68080 and includes GCC, binutils, and other essential tools.
Apollo 68080 specifics:
Assembler: VASM now supports 68080 and AMMX... Which could be MASSIVE for low-level optimizations.
SMP?
Challenges:
NetBSD and Linux both seem to run on everything but I'm finding nothing about 68080-specifics. I'll shoot the M68K and NetBSD/M68K mailing lists a message unless someone else wishes to do so?? Any 68080 kernel-specifics could help with Serena, I think, if they are out there?
Overall, the Apollo team seems to be the best source for detailed 68080 docs... I couldn't find public low-level tech/engineering specs so I'll shoot them an email also.
Please help guide me on where to go from here as my ADHD unfortunately sometimes gets in the way of a specific direction and I branch everywhich way...
Care to explain what you mean ? If the OS was meant for 68020-68060, then the 080 runs circles around theese. That beeing said, im not that TECHY. Try to explain :-)
It’s capped at 80MHz I believe whereas it’s theoretically capable of multiple GHz. So like on-device compile and build jobs will take time
Sent from Gmail Mobile
On Tue, Jul 30, 2024 at 11:17 PM hUMUNGUz @.***> wrote:
- Challenges - Dealing with current FPGA speed limitions.
Care to explain what you mean ? If the OS was meant for 68020-68060, then the 080 runs circles around theese. That beeing said, im not that TECHY. Try to explain :-)
— Reply to this email directly, view it on GitHub https://github.com/dplanitzer/Serena/issues/3#issuecomment-2259753512, or unsubscribe https://github.com/notifications/unsubscribe-auth/BECOHLZOEPGOHCIKJDDBRW3ZPB6PPAVCNFSM6AAAAABJANTRD2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJZG42TGNJRGI . You are receiving this because you authored the thread.Message ID: @.***>
Its not capped. It all depends on the core. I have used cores from 80 - 110 mhz. And the plan is to go ASIC in 2 years time. Exciting times.
80-1xxMHz remains a far cry from 1GHz, but point proven.
It would be easier to do work with the cross compiler rather than building on-device, however, no? That was all I meant, my apologies.
This is an exciting architecture the more I dig into it. Message sent to the Apollo team asking for help with specifics.
That being said; are we able to get our project owner and dev an Apollo device for future testing?
Sent from Gmail Mobile
On Wed, Jul 31, 2024 at 2:43 AM hUMUNGUz @.***> wrote:
Its not capped. It all depends on the core. I have used cores from 80 - 110 mhz. And the plan is to go ASIC in 2 years time. Exciting times.
— Reply to this email directly, view it on GitHub https://github.com/dplanitzer/Serena/issues/3#issuecomment-2260104287, or unsubscribe https://github.com/notifications/unsubscribe-auth/BECOHLYQKXKVZNIOJAYVMC3ZPCWVBAVCNFSM6AAAAABJANTRD2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRQGEYDIMRYG4 . You are receiving this because you authored the thread.Message ID: @.***>
Still device without ASIC is still MUCH MUCH faster than any previous Amiga. But i guess you are talking about compiling o the device itself ? am i correct? if not, my bad.
If you guys were to prioritize the Vampire V4 Standalone, i am willing to support you with 1 x V4SA. And i would also like to test stuff for you guys on this device.
Please help guide me on where to go from here as my ADHD unfortunately sometimes gets in the way of a specific direction and I branch everywhich way...
Regarding:
__ILP32__
and __LP64__
compile time switches which control the definitions in the libsystem/abi header files.I think that the next steps should be:
I think that the overall strategy should be to try to initially get away with as little changes as possible to the existing code base to get the system up and running. If for example it is the case that the 080 looks and behaves like a 68030/40/60 at power-up time then this would make things much simpler since then it wouldn't be necessary to change anything in the VP scheduler. You wouldn't be able to take advantage of the 080 specific features and you would "only" get the better speed as an improvement, but you would be able to make things work much faster. Then in a second step it would make sense to look into adding support for 080 specific features like the extended register file, 64bit mode and vector instructions.
vasm Currently the following CPUs are officially supported by vasm (loosely ordered by maturity): M680x0 family (including M6888x, M68851, CPU32 and Apollo 68080)
crossdev https://github.com/WDrijver/ApolloCrossDev
ammx ^ instructions http://www.apollo-core.com/instructions.html http://www.apollo-core.com/index.htm?page=coding&tl=1
I will have someone come here and fill in the blanks..
What about Atari support? You already stole our executable file format ;) You might use Hatari emulator for that https://hatari.tuxfamily.org/
I'm definitely interested in adding support for Atari machines in the future. I've never owned one but the Atari Falcon and the TT look very interesting. There once was also a Transputer-based machine which as far as I know used a ST as an I/O processor/console. This one would be interesting too, although I've never seen an emulator for this one.
I'll check out Hatari.
On 8/13/2024 12:42:21 PM, AdamKlob @.***> wrote: What about Atari support? You already stole our executable file format ;) You might use Hatari emulator for that https://hatari.tuxfamily.org/ [https://hatari.tuxfamily.org/] —
Hatari emulates Falcon and TT quite well (CPU emulation core comes from WinUAE). Atari with transputer (ATW800) was a combination of Atari Mega ST and transputer cards from Inmos. There were wery rare and are even rarer now. There is no emulator (that I know of) for ATW800.
There is also Aranym https://aranym.github.io/, which does not emulate 'real' Atari machine - it is described as virtual Atari clone. You might also try that, as it emulates way 'faster' CPU (Hatari is limited to 32MHz 680x0). It has been used by m68k Linux people for development.
68020 support would be useful - specifically so this will run on MiSTer (Minimig core). AFAIK there's not much difference between the 68020 and the 68030 so it shouldn't be difficult to support this? The rest of the Minimig hardware should already work.
I'm definitely interested in adding support for Atari machines in the future. I've never owned one but the Atari Falcon and the TT look very interesting.
The STF/E line also have TF (terriblefire) accelerator cards with 68030's on them available, so they should be able to run this OS as well.
Atari with transputer (ATW800) was a combination of Atari Mega ST and transputer cards from Inmos. There were wery rare and are even rarer now. There is no emulator (that I know of) for ATW800.
I wish there would be an emulator somewhere. It's such an unusual machine which makes it very interesting from a technical viewpoint.
There is also Aranym https://aranym.github.io/, which does not emulate 'real' Atari machine - it is described as virtual Atari clone. You might also try that, as it emulates way 'faster' CPU (Hatari is limited to 32MHz 680x0). It has been used by m68k Linux people for development.
This looks interesting. I'll check it out more thoroughly.
68020 support would be useful - specifically so this will run on MiSTer (Minimig core). AFAIK there's not much difference between the 68020 and the 68030 so it shouldn't be difficult to support this?
68020 isn't completely out of the question, although not really a priority for me. A big reason why I went with the 68030 as the baseline is that this was the first member of the 68k family that has a paged MMU built-in. The 68020 doesn't. There was an external MMU available but it was very rare for systems to have it installed and this MMU has a machine model that is quite a bit more complex compared to the streamlined 68030+ PMMU.
That said, if someone wants to look into this and work on an MR then I would consider picking it up. But a requirement would be that supporting the 68020 wouldn't get in the way of adding virtual memory support later on and that it wouldn't make it significantly more complex to do so.
There are really only three areas to look into if you want to add 68020 support:
Everything else should work fine on a 68020 as is.
The STF/E line also have TF (terriblefire) accelerator cards with 68030's on them available, so they should be able to run this OS as well.
Sounds interesting. I'll take a look at this too. I think that adding support for the ST/STE (with a 68030 accelerator card) would in principle make sense.
Thank you all for your pointers and information. Just to be clear: I'm interested and open towards porting Serena to other 68k systems like the Atari machines. However at this time it's not a priority for me to personally sit down and start writing code to reach that goal. If someone is interested in looking into this then feel free to start a concrete porting discussion and I'll help to make this possible.
My primary goals for now are bug fixes, and improving the architecture of the kernel. Things like designing a real HAL, filesystem & disk management, more complete user space APIs, kernel introspection functionality like devfs and procfs, etc. Also building out the shell and the shell line editor more.
Curious about a port for systems such as hobbyest boards, Sun2, Sun3, Mac 68K systems, SHARP X680XX consoles, Palm handhelds (and similar)... and more!