diff --git a/Bootloader/CMakeLists.txt b/Bootloader/CMakeLists.txt index 03faca3..84eb761 100644 --- a/Bootloader/CMakeLists.txt +++ b/Bootloader/CMakeLists.txt @@ -20,7 +20,7 @@ set(POSIX_UEFI_SOURCES Source/uefi/unistd.c ) -add_library(posix_uefi_lib STATIC ${POSIX_UEFI_SOURCES}) +add_library(posix_uefi_lib OBJECT ${POSIX_UEFI_SOURCES}) target_compile_options(posix_uefi_lib PRIVATE ${UEFI_COMPILE_OPTIONS}) target_include_directories(posix_uefi_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Source/uefi) @@ -34,6 +34,7 @@ target_link_options(BOOTAA64 PRIVATE -target aarch64-unknown-windows-msvc -nostdlib -Wl,-subsystem:efi_application + -Wl,-include:uefi_init -Wl,-entry:uefi_init ) diff --git a/Bootloader/Source/main.c b/Bootloader/Source/main.c index e9586c9..a9dc6bb 100644 --- a/Bootloader/Source/main.c +++ b/Bootloader/Source/main.c @@ -1,6 +1,7 @@ -#include "uefi/uefi.h" +#include "uefi/uefi.h" // IWYU pragma: keep int main() { printf("Meow!\n"); + while (1) __asm__ ("wfi"); return 0; } \ No newline at end of file diff --git a/justfile b/justfile index 0e7599f..21641c3 100644 --- a/justfile +++ b/justfile @@ -4,7 +4,11 @@ OS_NAME := os() ARCH_NAME := arch() OVMF_ARM := if OS_NAME == "macos" { - "/opt/homebrew/share/qemu/edk2-aarch64-code.fd" + if ARCH_NAME == "arm64" { + "/opt/homebrew/share/qemu/edk2-aarch64-code.fd" + } else { + "/usr/local/share/qemu/edk2-aarch64-code.fd" + } } else { "/usr/share/edk2/aarch64/QEMU_EFI.fd" } @@ -24,7 +28,7 @@ CPU := if ARCH_NAME == "arm64" { "host" } else { export BUILD_DIR := justfile_directory() + "/.build" export TEMP_DIR := BUILD_DIR + "/temp" export BOOT_BIN := BUILD_DIR + "/bootloader/BOOTAA64.EFI" -export IMG_FILE := BUILD_DIR + "/termOS.img" +export IMG_FILE := BUILD_DIR + "/ksOS.img" mod Bootloader @@ -48,13 +52,16 @@ _prep: @run: _image @echo "🚀 Launching..." - @cp /usr/share/edk2/aarch64/QEMU_VARS.fd {{TEMP_DIR}}/vars.fd qemu-system-aarch64 {{ACCEL}} \ -machine virt \ -cpu {{CPU}} \ -m 512M \ - -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/aarch64/QEMU_EFI.fd \ - -drive if=pflash,format=raw,file={{TEMP_DIR}}/vars.fd \ + -device virtio-gpu-pci \ + -display cocoa,show-cursor=on \ + -drive if=pflash,format=raw,readonly=on,file={{OVMF_ARM}} \ -drive file={{IMG_FILE}},format=raw,if=none,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -serial mon:stdio + +@clean: + rm -rf {{BUILD_DIR}} \ No newline at end of file