[Oberon] Extended Oberon running on Pepino
Skulski, Wojciech
skulski at pas.rochester.edu
Tue Apr 23 05:38:24 CEST 2024
Andreas:
today I booted EOS on Pepino developed by Magnus Karlsson of Saanlima Electronics. Pepino was specifically designed to run the original firmware and the original 2013 FPGA Oberon System by Wirth and Reed. It is a small FPGA board similar to the Spartan-3 Starter Kit originally used to develop the 2013 System. The board is populated with Spartan-6 LX9, 1 MB of ASRAM memory (the same chipset as used originally with Spartan-3), PS/2 mouse and keyboard, and the VGA connector for the 1024*768 VGA monitor. The FPGA is filled to about 50% with the original RISC5 firmware, adjusted by Magnus for this FPGA. The soft core RISC5 is running at 25 MHz on this board for the same reason it did so on the original board, that is the speed of the ASRAM memory chips. I have been running Magnus' version of the original System on Pepino for quite a while.
I first tried EOS under the Michael's version of the PdW Emulator under Windows 10. Michael kindly changed the white-on-grey to the usual white-on-black, so I could see anything. So I launched EOS under Windows 10, using the image downloaded from the EOS github. Pay attention: as far as I know, the image was originally developed under MacOS. So we have the first miracle right here. The binaries produced under MacOS ran under Windows 10 just like that. No recompilation required. Take note.
I burned the same EOS image to a microSD using win32 Disk Imager-1.0.0. Then I inserted the microSD into the Pepino socket and power cycled the board. It booted the EOS on the first try in about one second. I demoed it to one of our employees with a few operations like opening, editing, and compiling the files. I also built the whole operating system "with one click" provided in System.Tool. Compilation took about a minute. (I did not measure time.) The build ended up with a file allocation error of System1.Mod. Apparently the disk went full. (Every demo must end with a bug....) But the EOS did not crash. It kept running.
Now take another note. I ran the same binaries. The binary files, first developed and compiled on a Mac, were running under Windows, and then (the same binaries, yes, the same...) were running on a soft core on the FPGA. And the installation of this operating system took about one second. It consisted of inserting the microSD into the slot, and power cycling. One second. That's it.
Now recall the last time you installed the fresh version of Raspbian, Beaglebian, Debian, or whatever this stuff is called. No adjustments needed. Really so?
It is truly impressive that the whole graphical operating system with a decent editor, compiler, system building tools, and a whole bunch of example programs, which was developed on the emulated board on a Mac, without regular tests on any real hardware, flawlessly booted and ran under an emulated board in Windows 10, and then on real hardware board the first time ever. It just did. Not only that. I was able to instantly recompile the entire operating system in situ, using the target hardware board, in less than a minute, with the soft CPU core running 100x slower than Intel i3 core of my laptop.
Those who never developed embedded systems may shrug their shoulders. It ran.... so what? Why is it so remarkable? Those who do develop real electronics may want to compare this experience with our daily practice. I would use the words "miraculous" and "unbelievable". It is truly unbelievable that the entire operating system could be developed under an emulator on MacOS, boot under another emulator under Windows, and then boot on a hardware board which it never saw before, without first causing months and months of frustration. And then this OS could recompile itself with one click on the very same target board. And it did so in less than a minute.
We in this community do not fully appreciate the magnitude of this achievement by Niklaus Wirth, Paul Reed, Magnus Karlsson, Peter de Wachter, Michael Schierl, and Andreas Pirklbauer. And many others. But I do. I know the amount of suffering we are spending on this other embedded software.
Thank you,
Wojtek
More information about the Oberon
mailing list