Skip to content

v0.1 - Minimal boot and UART output

Choose a tag to compare

@HalfTimeOfLife HalfTimeOfLife released this 23 Aug 16:34
· 6 commits to master since this release

First release of the AArch64 bare-metal kernel.

Added

  • linker.ld: custom linker script, kernel linked at 0x40000000, stack layout with _stack_bottom and _stack_top
  • src/boot/boot.s: AArch64 bare-metal boot code, stack initialization and kernel halt loop
  • src/uart/uart.s: UART MMIO driver for QEMU virt, uart_putc and uart_puts, null-terminated string output, UART transmit FIFO polling through UART_FR, character output through UART_DR
  • Makefile: assembly and linking of the kernel, automatic generation of the build/ directory and object files
  • scripts/check_setup.sh: development environment verification
  • build/: generated object files and kernel ELF
  • AArch64 assembly-only implementation with no C runtime or standard library

Verification

The kernel successfully boots on QEMU virt and outputs:

Hello, AArch64!