Baremetal bootloader (2) +

22.12.2019

(NOOBS) I didn’t get a linux boot to work.I copied my boot code to a working raspberry linux… and tried it out.
It did load my kernel alright, but when it tries to load the „following” boot loader (loader.pit) – it fails with a „file not found” error. It seems, that right after loading the „first” kernel, the SD is „remounted” to another partition, which has the linux stuff on it.
The original „boot” directory is than mounted under „/boot” in the linux file system.
However – even putting the required files in the linux „root” directory does not work.I don’t know what filesystem is active than, and I haven’t explored it yet. The boot code could actually output the directory it „knows” – but I haven’t done that yet.But still it might be possible – but its not as simple as just loading the kernel. Why easy if we can do something special and unkown. The raspberry inventors weren’t really all that nice regarding easy to use and documenting.

On the bright side – doing 2 hours of PiTrex – I have at least a new demo to show, although only partially running yet:

Gyrocks…If you start it – you must „resize” the display (button 2+3 together).
To go back to the boot menu press button 1+2+3+4 together.
Since I haven’t done much lately – I lost sight which FTP server is active…I uploaded a zip file „pitrex5.zip” to my server… 
That contains the latest changes from my last update.Some corrections on the vectrex side… and gyrocks.
If someone can send me the current FTP details I would be happy to upload to the right server.
In the uppermost directory the „*.img” and „pit” files can be copied to a baremetal pi, and start my most current menu…


23.12.2019

Ok…
I looked into the multi boot thing… It is not as trivial as I thought.


bootcode.bin -> start-elf -> cmdline.txt -> config.txt -> kernel.img -> reloading different FS.

The thing is „kernel.img” (this is what I generate and load) is pretty down the line. And it seems, that start.elf is already fiddling with the partitions.
It seems when the kernel.img is loaded, that I am not anymore within the boot partition. And I am also not yet in the linux partition – I am „in” the recovery partition. This seems to be NOOBS standard from what I read.(I am not sure if a OS booting can be made more complicated…)
Anyways… even copying „my” files to the recovery partition does not work (which does not surprise me).
Perhaps we will have more luck, when not booting thru NOOBS.

But…
My personal opinion… I don’t think it is utterly necessary to have a dual boot system.
I do not ever! intend to develop on the pitrex directly… that is just too slow – at least that is my personal taste…
Another option that might be feasable… have a „dev” menu entry… with which we can(via some serial option) transport stuf, then the pitrex can start things from there again…
That could be a standalone program (like the VecFevers „vserial” – which can communicate/send stuff).That as a commanline tool can be integrated in any dev environment (Vide… or other script based things).
Shouldn’t be too difficult to do and we can provide bins/sources for linux/windows/mac.Serial communication is already part of the baremetal… (at least one way)…

On another note. Some more work in progress:
a) I added a raster print string routine to the vectrex „api”

b) goal is to use that one within the vectrex emulator – than most „original” games might look ok.    The “code interceptor” works already… but the sizing of the text must be fine tuned (not done yet).    So I commented the interceptor out.

c) I added a YM-Player… the „menu” now plays a tune 🙂

d) added a „WAV” player… the pitrex now starts with a sampled „jingle” 🙂

e) added controls for Gyrocks. But somehow the ATAN / ATAN2 which I copied and pasted from the internet obviously does something wrong… the ship „spins” wildly
I must for now quit pitrex again… xmas is coming and directly after I go on a short holiday…

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.