diff --git a/Makefile b/Makefile index c29155a11a5d065d5b3c9bcea3043f55e07816ff..6347967452ce73e5b78ab4ba72ef6966f9dca814 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,16 @@ +BITS ?= 64 + default: assemble-legacy bootloader-legacy: - $(MAKE) -C bootloader-legacy + BITS=$(BITS) $(MAKE) -C bootloader-legacy bootloader-uefi: - $(MAKE) -C bootloader-uefi + # BITS=$(BITS) $(MAKE) -C bootloader-uefi kernel: - $(MAKE) -C kernel + BITS=$(BITS) $(MAKE) -C kernel .PHONY: bootloader-legacy bootloader-uefi kernel diff --git a/bootloader-legacy/Makefile b/bootloader-legacy/Makefile index 8fa0ceedd9f63dadef517e984786b05031cca5c4..1e602476b8d166c9919bf4fe5b06432a88e06ef2 100644 --- a/bootloader-legacy/Makefile +++ b/bootloader-legacy/Makefile @@ -1,11 +1,12 @@ -build: - nasm -f bin boot.asm -o boot.img - -build_x86: - -build_x86_64: +BITS ?= 64 +build: + nasm -f bin boot.asm -DTARGET_BITS=$(BITS) -o boot.img run: build qemu-system-x86_64 boot.img +clean: + rm -f boot.img + + diff --git a/bootloader-legacy/boot.asm b/bootloader-legacy/boot.asm index 58d580180a55f705942740cb05a38a8212d39eab..df57a7139ed8f4c33341052f4962e7bc5d7a4482 100644 --- a/bootloader-legacy/boot.asm +++ b/bootloader-legacy/boot.asm @@ -100,6 +100,7 @@ _prot_begin: mov ebx, _motd_32 call println_vga +%if TARGET_BITS == 64 ; Test if 64bit available call test_support_long_mode cmp eax, 0 @@ -112,6 +113,9 @@ _test_passed: jmp inline_enter_long_mode %include "./inline_x64lib.inc" jmp _call_kern_64 +%else + jmp _call_kern_32 +%endif [bits 32] _call_kern_32: diff --git a/efi/efi_helo.demo/build.sh b/playground/efi_helo.demo/build.sh similarity index 100% rename from efi/efi_helo.demo/build.sh rename to playground/efi_helo.demo/build.sh diff --git a/efi/efi_helo.demo/efi/LICENSE b/playground/efi_helo.demo/efi/LICENSE similarity index 100% rename from efi/efi_helo.demo/efi/LICENSE rename to playground/efi_helo.demo/efi/LICENSE diff --git a/efi/efi_helo.demo/efi/README.md b/playground/efi_helo.demo/efi/README.md similarity index 100% rename from efi/efi_helo.demo/efi/README.md rename to playground/efi_helo.demo/efi/README.md diff --git a/efi/efi_helo.demo/efi/efi-bs.h b/playground/efi_helo.demo/efi/efi-bs.h similarity index 100% rename from efi/efi_helo.demo/efi/efi-bs.h rename to playground/efi_helo.demo/efi/efi-bs.h diff --git a/efi/efi_helo.demo/efi/efi-ct.h b/playground/efi_helo.demo/efi/efi-ct.h similarity index 100% rename from efi/efi_helo.demo/efi/efi-ct.h rename to playground/efi_helo.demo/efi/efi-ct.h diff --git a/efi/efi_helo.demo/efi/efi-rs.h b/playground/efi_helo.demo/efi/efi-rs.h similarity index 100% rename from efi/efi_helo.demo/efi/efi-rs.h rename to playground/efi_helo.demo/efi/efi-rs.h diff --git a/efi/efi_helo.demo/efi/efi-st.h b/playground/efi_helo.demo/efi/efi-st.h similarity index 100% rename from efi/efi_helo.demo/efi/efi-st.h rename to playground/efi_helo.demo/efi/efi-st.h diff --git a/efi/efi_helo.demo/efi/efi-time.h b/playground/efi_helo.demo/efi/efi-time.h similarity index 100% rename from efi/efi_helo.demo/efi/efi-time.h rename to playground/efi_helo.demo/efi/efi-time.h diff --git a/efi/efi_helo.demo/efi/efi.h b/playground/efi_helo.demo/efi/efi.h similarity index 100% rename from efi/efi_helo.demo/efi/efi.h rename to playground/efi_helo.demo/efi/efi.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-acpitp.h b/playground/efi_helo.demo/efi/protocol/efi-acpitp.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-acpitp.h rename to playground/efi_helo.demo/efi/protocol/efi-acpitp.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-dpp.h b/playground/efi_helo.demo/efi/protocol/efi-dpp.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-dpp.h rename to playground/efi_helo.demo/efi/protocol/efi-dpp.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-fp.h b/playground/efi_helo.demo/efi/protocol/efi-fp.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-fp.h rename to playground/efi_helo.demo/efi/protocol/efi-fp.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-gop.h b/playground/efi_helo.demo/efi/protocol/efi-gop.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-gop.h rename to playground/efi_helo.demo/efi/protocol/efi-gop.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-lidpp.h b/playground/efi_helo.demo/efi/protocol/efi-lidpp.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-lidpp.h rename to playground/efi_helo.demo/efi/protocol/efi-lidpp.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-lip.h b/playground/efi_helo.demo/efi/protocol/efi-lip.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-lip.h rename to playground/efi_helo.demo/efi/protocol/efi-lip.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-sfsp.h b/playground/efi_helo.demo/efi/protocol/efi-sfsp.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-sfsp.h rename to playground/efi_helo.demo/efi/protocol/efi-sfsp.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-stip.h b/playground/efi_helo.demo/efi/protocol/efi-stip.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-stip.h rename to playground/efi_helo.demo/efi/protocol/efi-stip.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-stop.h b/playground/efi_helo.demo/efi/protocol/efi-stop.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-stop.h rename to playground/efi_helo.demo/efi/protocol/efi-stop.h diff --git a/efi/efi_helo.demo/efi/protocol/efi-vmpp.h b/playground/efi_helo.demo/efi/protocol/efi-vmpp.h similarity index 100% rename from efi/efi_helo.demo/efi/protocol/efi-vmpp.h rename to playground/efi_helo.demo/efi/protocol/efi-vmpp.h diff --git a/efi/efi_helo.demo/ehelo.demo.c b/playground/efi_helo.demo/ehelo.demo.c similarity index 100% rename from efi/efi_helo.demo/ehelo.demo.c rename to playground/efi_helo.demo/ehelo.demo.c diff --git a/bootloader-legacy/test.asm b/playground/test.asm similarity index 100% rename from bootloader-legacy/test.asm rename to playground/test.asm