- Add kernel/arch/arm/boot.S with ARMv7 assembly entry, stack setup, BSS clear - Add kernel/arch/arm/linker.ld for QEMU virt memory layout (load at 0x40000000) - Add kernel/arch/arm/uart.c/uart.h for PL011 serial output - Add kernel/kernel.c with kernel_main() idle loop - Add kernel/Makefile for arm-none-eabi-gcc cross-compile and QEMU launch - Add kernel/README.md with build/run instructions - Ignore kernel build artifacts in .gitignore
17 lines
336 B
C
17 lines
336 B
C
/*
|
|
* Universalisos kernel entry point.
|
|
*/
|
|
|
|
#include "arch/arm/uart.h"
|
|
|
|
void kernel_main(void)
|
|
{
|
|
uart_init();
|
|
uart_puts("Universalisos type-1 hypervisor booted.\r\n");
|
|
uart_puts("Stage 1: bare-metal skeleton running on QEMU ARM virt.\r\n");
|
|
|
|
/* Idle loop. */
|
|
for (;;) {
|
|
__asm__ __volatile__("wfi");
|
|
}
|
|
}
|