A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
Basic bringup is completed for the RPi400 and ToaruOS can reach a desktop and run applications on one core. This ticket tracks incomplete functionality.
[x] SMP: spin up other cores
Firmware drops us in EL2, might want to bootstrap cores to EL1 in the platform shim with our own spintables and let Misaka resume them with the existing EL1 AP startup code.
[ ] Collect memory information
Currently pretending we have 512MB of continuous memory from 0, but that's probably not true with the VC? Consider switching to the "high peripheral" mode as well...
[ ] Actually parse the DTB firmware gives us
This was skipped and important stuff (mostly GIC) was hardcoded as the existing DTB parser is incomplete and only barely understands the QEMU virt dtb.
[ ] Device drivers
[ ] USB
I can put it off no longer, it's time to write a USB stack.
[ ] XHCI
[ ] HID
[ ] Onboard PCM?
The 400 lacks the audio jack, but HDMI audio is supported - is that hooked up to the same hardware? Look into this.
[ ] Ethernet
[ ] Bluetooth
[ ] GPIO
[x] Support setting clock time from userspace
RPi has no RTC, so we need to be able to set the time through ntp or a command, probably just by adjusting the 'clock basis time'.
Basic bringup is completed for the RPi400 and ToaruOS can reach a desktop and run applications on one core. This ticket tracks incomplete functionality.
ntp
or a command, probably just by adjusting the 'clock basis time'.