diff --git a/.gitignore b/.gitignore index b641b3e..538a99b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,8 @@ # SPDX-License-Identifier: MIT *~ -Development/build/ +*/build/ +*.d +*.lib +*.efi +*.o diff --git a/Development/rootfs/kaem.amd64 b/Development/rootfs/kaem.amd64 new file mode 100644 index 0000000..a73b3fd --- /dev/null +++ b/Development/rootfs/kaem.amd64 @@ -0,0 +1,5 @@ +# kaem + +# Rebuild hex0 +EFI\BOOT\hex0.efi hex0_AMD64_POSIX.hex0 hex0 # hex0 + diff --git a/amd64/Development/Makefile b/amd64/Development/Makefile new file mode 100644 index 0000000..ca1fbba --- /dev/null +++ b/amd64/Development/Makefile @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +cc = clang +cflags = -ffreestanding -MMD -mno-red-zone -std=c11 -target x86_64-unknown-windows +ld = lld-link +lflags = -subsystem:efi_application -nodefaultlib -dll + +build = build + +all: $(build)/hex0.efi + +$(build)/%.o : %.S + mkdir -p $(build) + $(cc) $(cflags) -c $< -o $@ + +$(build)/%.efi : $(build)/%.o + $(ld) $(lflags) -entry:efi_main $< -out:$@ + +. PHONY : clean all +clean: + rm -f $(build) diff --git a/amd64/Development/hex0.S b/amd64/Development/hex0.S new file mode 100644 index 0000000..ba23241 --- /dev/null +++ b/amd64/Development/hex0.S @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + + .text + .globl efi_main + +efi_main: + sub $16, %rsp + mov %rdx, 8(%rsp) + mov %rcx, (%rsp) + mov $42, %eax + add $16, %rsp + ret