Added attributions; hitting a dead-end on the gpu driver
Re-arranging memory layout
Trying the mmu without paging first
The wee, small beginnings of an OS for my PinePhone.
I must write all the code for funos
.
Exceptions:
make
arm-none-eabi-gcc,objcopy,objdump
rustc
(with target aarch64-unknown-none
)gcc
make
To flash SD card:
# !Warning! writes to /dev/mmcblk0
# !Warning! overwrites the last 16MiB on the SD card (and the bootloader)
# However, it does save the bootloader so you can return to the previous OS
make sd-flash-all
To flash over USB (with funos
running):
make usb-flash
To flash over USB and persist on the next reboot:
make usb-flash-persist
To interact with the shell over USB:
make usb
A couple shell commands:
power off
restore uboot
: restore previous bootloader and power off (to go back to previous OS)The A64
BROM loads a 32KiB bootloader into SRAM at address 0x10000
and then executes it. This bootloader needs to be located at offset 8192
on the SD card. The bootloader has a required header generated by the mksunxiboot
tool.
boot_entry32.S
at address 0x10040
; switch to aarch64 mode0x100A0
and starts executing boot_entry.S
main
in boot.rs
entry.S
; it sets up the vectors and zeroes out BSSmain
in funos.rs
Thank you: