From f471cf287fdef515ced7357aca2f3f47f284998f Mon Sep 17 00:00:00 2001 From: Amlal Date: Tue, 18 Feb 2025 11:20:00 +0100 Subject: REFACTOR: ZBAOSLDR to BOOTZ. Signed-off-by: Amlal --- dev/Boot/BootKit/Support.h | 4 ++-- dev/Boot/Mod/NetBoot/build.json | 2 +- dev/Boot/Mod/SysChk/amd64.json | 2 +- dev/Boot/Mod/SysChk/arm64.json | 2 +- dev/Boot/amd64-desktop.make | 8 +++---- dev/Boot/arm64-desktop.make | 6 ++--- dev/Boot/arm64-mobile.make | 6 ++--- dev/Boot/src/BootloaderRsrc.rsrc | 6 ++--- dev/Boot/src/HEL/64X000/Boot64x0.S | 35 ---------------------------- dev/Boot/src/HEL/64X000/BootCB.S | 35 ++++++++++++++++++++++++++++ dev/Boot/src/HEL/ARM64/BootCB.S | 40 ++++++++++++++++++++++++++++++++ dev/Boot/src/HEL/ARM64/CoreBootStartup.S | 40 -------------------------------- dev/Boot/src/HEL/POWER/BootCB.S | 2 +- dev/Kernel/FirmwareKit/EFI/API.h | 8 +++---- dev/Kernel/HALKit/AMD64/Storage/AHCI.cc | 4 ++-- dev/Kernel/doc/SPECIFICATION.md | 2 +- 16 files changed, 101 insertions(+), 101 deletions(-) delete mode 100644 dev/Boot/src/HEL/64X000/Boot64x0.S create mode 100644 dev/Boot/src/HEL/64X000/BootCB.S create mode 100644 dev/Boot/src/HEL/ARM64/BootCB.S delete mode 100644 dev/Boot/src/HEL/ARM64/CoreBootStartup.S diff --git a/dev/Boot/BootKit/Support.h b/dev/Boot/BootKit/Support.h index 12377d80..3c79262b 100644 --- a/dev/Boot/BootKit/Support.h +++ b/dev/Boot/BootKit/Support.h @@ -16,7 +16,7 @@ #define kLongMax ((long)(~0UL >> 1)) #define kLongMin (~kLongMax) -#ifdef __ZBAOSLDR__ +#ifdef __BOOTZ__ /// @brief memset definition in C++. /// @param dst destination pointer. @@ -40,7 +40,7 @@ EXTERN_C int strcmp(const char* whatToCheck, const char* whatToCheckRight); #include -#endif // __ZBAOSLDR__ +#endif // __BOOTZ__ #define SetMem(dst, c, sz) memset(dst, c, sz) #define MoveMem(dst, src, sz) memcpy(dst, src, sz) diff --git a/dev/Boot/Mod/NetBoot/build.json b/dev/Boot/Mod/NetBoot/build.json index e02f7f13..6f6d575f 100644 --- a/dev/Boot/Mod/NetBoot/build.json +++ b/dev/Boot/Mod/NetBoot/build.json @@ -15,7 +15,7 @@ ], "cpp_macros": [ "__NEOSKRNL__", - "__ZBAOSLDR__", + "__BOOTZ__", "__NE_AMD64__", "kNetBootVersionHighest=0x0100", "kNetBootVersionLowest=0x0100", diff --git a/dev/Boot/Mod/SysChk/amd64.json b/dev/Boot/Mod/SysChk/amd64.json index 0fdaec50..1b1f7a34 100644 --- a/dev/Boot/Mod/SysChk/amd64.json +++ b/dev/Boot/Mod/SysChk/amd64.json @@ -15,7 +15,7 @@ ], "cpp_macros": [ "__NEOSKRNL__", - "__ZBAOSLDR__", + "__BOOTZ__", "__BOOTLDR_STANDALONE__", "__NE_AMD64__", "kChkVersionHighest=0x0100", diff --git a/dev/Boot/Mod/SysChk/arm64.json b/dev/Boot/Mod/SysChk/arm64.json index 59cb6189..09d86309 100644 --- a/dev/Boot/Mod/SysChk/arm64.json +++ b/dev/Boot/Mod/SysChk/arm64.json @@ -16,7 +16,7 @@ ], "cpp_macros": [ "__NEOSKRNL__", - "__ZBAOSLDR__", + "__BOOTZ__", "__BOOTLDR_STANDALONE__", "__NE_ARM64__", "kChkVersionHighest=0x0100", diff --git a/dev/Boot/amd64-desktop.make b/dev/Boot/amd64-desktop.make index 208d6ff6..de14f5ca 100644 --- a/dev/Boot/amd64-desktop.make +++ b/dev/Boot/amd64-desktop.make @@ -67,11 +67,11 @@ REM=rm REM_FLAG=-f FLAG_ASM=-f win64 -FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mno-red-zone -D__NEOSKRNL__ -D__ZBAOSLDR__ \ +FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mno-red-zone -D__NEOSKRNL__ -D__BOOTZ__ \ -DEFI_FUNCTION_WRAPPER -I./ -I../Kernel $(DISK_DRV) -I../ -c -nostdlib -fno-rtti -fno-exceptions \ -std=c++20 -DBOOTZ_GPT_SUPPORT -DBOOTZ_EPM_SUPPORT -D__HAVE_NE_APIS__ -DZBA_USE_FB -D__NE_AMD64__ -D__NE__ -DNE_AUTO_FORMAT -BOOTLOADER=zbaosldr.exe +BOOTLOADER=bootz.exe KERNEL=neoskrnl.exe SYSCHK=syschk.sys STARTUP=startup.sys @@ -87,7 +87,7 @@ all: compile-amd64 mkdir -p src/Root/EFI/BOOT $(LD_GNU) $(OBJ) $(LD_FLAGS) -o src/$(BOOTLOADER) $(COPY) src/$(BOOTLOADER) src/Root/EFI/BOOT/BOOTX64.EFI - $(COPY) src/$(BOOTLOADER) src/Root/EFI/BOOT/ZBAOSLDR.EFI + $(COPY) src/$(BOOTLOADER) src/Root/EFI/BOOT/BOOTZ.EFI $(COPY) ../Kernel/$(KERNEL) src/Root/$(KERNEL) $(COPY) ./Mod/SysChk/$(SYSCHK) src/Root/$(SYSCHK) $(COPY) ../LibSCI/$(SCIKIT) src/Root/$(SCIKIT) @@ -136,7 +136,7 @@ efi: $(HTTP_GET) https://retrage.github.io/edk2-nightly/bin/DEBUGX64_OVMF.fd -O OVMF.fd BINS=*.bin -EXECUTABLES=zbaosldr.exe neoskrnl.exe OVMF.fd +EXECUTABLES=bootz.exe neoskrnl.exe OVMF.fd TARGETS=$(REM_FLAG) $(OBJ) $(BIN) $(IMG) $(IMG_2) $(EXECUTABLES) diff --git a/dev/Boot/arm64-desktop.make b/dev/Boot/arm64-desktop.make index 5e78868f..7470a9fc 100644 --- a/dev/Boot/arm64-desktop.make +++ b/dev/Boot/arm64-desktop.make @@ -45,9 +45,9 @@ REM_FLAG=-f FLAG_ASM=-f win64 FLAG_GNU=-fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__NE_ARM64__ -fno-rtti -fno-exceptions -I./ \ -target aarch64-unknown-windows \ - -std=c++20 -DBOOTZ_EPM_SUPPORT -DZBA_USE_FB -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__NEOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_NE_APIS__ -D__NE__ -I../ -I../Kernel + -std=c++20 -DBOOTZ_EPM_SUPPORT -DZBA_USE_FB -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__NEOSKRNL__ -D__BOOTZ__ -D__HAVE_NE_APIS__ -D__NE__ -I../ -I../Kernel -BOOT_LOADER=zbaosldr.exe +BOOT_LOADER=bootz.exe KERNEL=neoskrnl.exe SYSCHK=syschk.sys STARTUP=startup.sys @@ -94,7 +94,7 @@ efi: $(HTTP_GET) https://retrage.github.io/edk2-nightly/bin/DEBUGAARCH64_QEMU_EFI.fd -O OVMF.fd BINS=*.bin -EXECUTABLES=zbaosldr.exe neoskrnl.exe OVMF.fd +EXECUTABLES=bootz.exe neoskrnl.exe OVMF.fd TARGETS=$(REM_FLAG) $(OBJ) $(BIN) $(IMG) $(IMG_2) $(EXECUTABLES) diff --git a/dev/Boot/arm64-mobile.make b/dev/Boot/arm64-mobile.make index 809ad313..c4522e52 100644 --- a/dev/Boot/arm64-mobile.make +++ b/dev/Boot/arm64-mobile.make @@ -46,9 +46,9 @@ REM_FLAG=-f FLAG_ASM=-f win64 FLAG_GNU=-fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__NE_ARM64__ -fno-rtti -fno-exceptions -I./ \ -target aarch64-unknown-windows \ - -std=c++20 -DBOOTZ_EPM_SUPPORT -DkExpectedWidth=320 -DkExpectedHeight=480 -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__NEOSKRNL__ -D__ZBAOSLDR__ -D__HAVE_NE_APIS__ -D__NE__ -I../ -I../Kernel + -std=c++20 -DBOOTZ_EPM_SUPPORT -DkExpectedWidth=320 -DkExpectedHeight=480 -D__FSKIT_USE_NEFS__ -D__BOOTLDR_STANDALONE__ -D__NEOSKRNL__ -D__BOOTZ__ -D__HAVE_NE_APIS__ -D__NE__ -I../ -I../Kernel -BOOT_LOADER=zbaosldr.exe +BOOT_LOADER=bootz.exe KERNEL=neoskrnl.exe SYSCHK=syschk.sys STARTUP=startup.sys @@ -95,7 +95,7 @@ efi: $(HTTP_GET) https://retrage.github.io/edk2-nightly/bin/DEBUGAARCH64_QEMU_EFI.fd -O OVMF.fd BINS=*.bin -EXECUTABLES=zbaosldr.exe neoskrnl.exe OVMF.fd +EXECUTABLES=bootz.exe neoskrnl.exe OVMF.fd TARGETS=$(REM_FLAG) $(OBJ) $(BIN) $(IMG) $(IMG_2) $(EXECUTABLES) diff --git a/dev/Boot/src/BootloaderRsrc.rsrc b/dev/Boot/src/BootloaderRsrc.rsrc index 47623fbc..8baa8c3d 100644 --- a/dev/Boot/src/BootloaderRsrc.rsrc +++ b/dev/Boot/src/BootloaderRsrc.rsrc @@ -11,10 +11,10 @@ BEGIN VALUE "CompanyName", "Amlal EL Mahrouss" VALUE "FileDescription", "NeKernel OS Loader." VALUE "FileVersion", BOOTLOADER_VERSION - VALUE "InternalName", "zbaosldr" + VALUE "InternalName", "bootz" VALUE "LegalCopyright", "Copyright (C) 2024, Amlal EL Mahrouss all rights reserved." - VALUE "OriginalFilename", "zbaosldr.exe" - VALUE "ProductName", "zbaosldr" + VALUE "OriginalFilename", "bootz.exe" + VALUE "ProductName", "bootz" VALUE "ProductVersion", BOOTLOADER_VERSION END END diff --git a/dev/Boot/src/HEL/64X000/Boot64x0.S b/dev/Boot/src/HEL/64X000/Boot64x0.S deleted file mode 100644 index ff6726ee..00000000 --- a/dev/Boot/src/HEL/64X000/Boot64x0.S +++ /dev/null @@ -1,35 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -.section .boot_hdr -.align 4 - -/* BootZ boot header begin for a 64x000 Kernel. */ - -boot_hdr_mag: - .ascii "CB" -boot_hdr_name: - // it has to match ten bytes. - .asciz "zbaosldr\0\0" -boot_hdr_ver: - .word 0x104 -boot_hdr_proc: - .long bootloader_start - -/* BootZ boot header end */ - -.extern bootloader_main -.extern bootloader_stack - -.globl bootloader_start -bootloader_start: - psh 4 /* real address of .Laddr */ - ldi 0,(bootloader_stack-bootloader_start)(4) /* stack address location */ - mv 19,0 /* use user defined stack */ - jrl - - bl bootloader_main - blr diff --git a/dev/Boot/src/HEL/64X000/BootCB.S b/dev/Boot/src/HEL/64X000/BootCB.S new file mode 100644 index 00000000..f286f449 --- /dev/null +++ b/dev/Boot/src/HEL/64X000/BootCB.S @@ -0,0 +1,35 @@ +/* ------------------------------------------- + + Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +.section .boot_hdr +.align 4 + +/* BootZ boot header begin for a 64x000 Kernel. */ + +boot_hdr_mag: + .ascii "CB" +boot_hdr_name: + // it has to match ten bytes. + .asciz "bootz\0\0\0" +boot_hdr_ver: + .word 0x104 +boot_hdr_proc: + .long bootloader_start + +/* BootZ boot header end */ + +.extern bootloader_main +.extern bootloader_stack + +.globl bootloader_start +bootloader_start: + psh 4 /* real address of .Laddr */ + ldi 0,(bootloader_stack-bootloader_start)(4) /* stack address location */ + mv 19,0 /* use user defined stack */ + jrl + + bl bootloader_main + blr diff --git a/dev/Boot/src/HEL/ARM64/BootCB.S b/dev/Boot/src/HEL/ARM64/BootCB.S new file mode 100644 index 00000000..2d1ff60c --- /dev/null +++ b/dev/Boot/src/HEL/ARM64/BootCB.S @@ -0,0 +1,40 @@ +/* ------------------------------------------- + + Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. + +------------------------------------------- */ + +#ifdef __NE_COREBOOT__ + +.section .boot_hdr +.align 4 + +/* BootZ boot header begin */ + +boot_hdr_mag: + .ascii "CB" +boot_hdr_name: + // it has to match ten bytes. + .asciz "bootz\0\0" +boot_hdr_ver: + .word 0x104 +boot_hdr_proc: + .long bootloader_start + +/* BootZ boot header end */ + +.extern bootloader_main +.extern bootloader_stack + +.globl bootloader_start +bootloader_start: + adr x0, bootloader_stack + ldr x1, =bootloader_start + sub x0, x0, x1 + ldr x0, [x0] + mov sp, x0 + + bl bootloader_main + ret + +#endif // __NE_COREBOOT__ \ No newline at end of file diff --git a/dev/Boot/src/HEL/ARM64/CoreBootStartup.S b/dev/Boot/src/HEL/ARM64/CoreBootStartup.S deleted file mode 100644 index a62cf434..00000000 --- a/dev/Boot/src/HEL/ARM64/CoreBootStartup.S +++ /dev/null @@ -1,40 +0,0 @@ -/* ------------------------------------------- - - Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved. - -------------------------------------------- */ - -#ifdef __NE_COREBOOT__ - -.section .boot_hdr -.align 4 - -/* BootZ boot header begin */ - -boot_hdr_mag: - .ascii "CB" -boot_hdr_name: - // it has to match ten bytes. - .asciz "zbaosldr\0\0" -boot_hdr_ver: - .word 0x104 -boot_hdr_proc: - .long bootloader_start - -/* BootZ boot header end */ - -.extern bootloader_main -.extern bootloader_stack - -.globl bootloader_start -bootloader_start: - adr x0, bootloader_stack - ldr x1, =bootloader_start - sub x0, x0, x1 - ldr x0, [x0] - mov sp, x0 - - bl bootloader_main - ret - -#endif // __NE_COREBOOT__ \ No newline at end of file diff --git a/dev/Boot/src/HEL/POWER/BootCB.S b/dev/Boot/src/HEL/POWER/BootCB.S index a13b0cb1..2b64f8c1 100644 --- a/dev/Boot/src/HEL/POWER/BootCB.S +++ b/dev/Boot/src/HEL/POWER/BootCB.S @@ -13,7 +13,7 @@ boot_hdr_mag: .ascii "CB" boot_hdr_name: // it has to match ten bytes. - .asciz "zbaosldr\0\0" + .asciz "bootz\0\0\0" boot_hdr_ver: .word 0x104 boot_hdr_proc: diff --git a/dev/Kernel/FirmwareKit/EFI/API.h b/dev/Kernel/FirmwareKit/EFI/API.h index 24d543dc..03b79019 100644 --- a/dev/Kernel/FirmwareKit/EFI/API.h +++ b/dev/Kernel/FirmwareKit/EFI/API.h @@ -16,7 +16,7 @@ #define kNeKernelSubsystem (17) #define kNeWebsiteMacro "https://vswirl.com/help" -#ifdef __ZBAOSLDR__ +#ifdef __BOOTZ__ // forward decl. class BTextWriter; @@ -24,7 +24,7 @@ class BTextWriter; #include #include -#endif // ifdef __ZBAOSLDR__ +#endif // ifdef __BOOTZ__ inline EfiSystemTable* ST = nullptr; inline EfiBootServices* BS = nullptr; @@ -116,10 +116,10 @@ inline void InitEFI(EfiSystemTable* SystemTable) noexcept ST->ConOut->EnableCursor(ST->ConOut, false); } -#ifdef __ZBAOSLDR__ +#ifdef __BOOTZ__ #include -#endif // ifdef __ZBAOSLDR__ +#endif // ifdef __BOOTZ__ #endif /* ifndef __EFI_API__ */ diff --git a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc index 49025023..9ebfbb0a 100644 --- a/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc +++ b/dev/Kernel/HALKit/AMD64/Storage/AHCI.cc @@ -273,8 +273,8 @@ static Kernel::Void drv_std_input_output(Kernel::UInt64 lba, Kernel::UInt8* buff h2d_fis->Device = kSataLBAMode; - h2d_fis->CountLow = (size_buffer) & 0xFF; - h2d_fis->CountHigh = (size_buffer >> 8) & 0xFF; + h2d_fis->CountLow = (size_buffer - 1) & 0xFF; + h2d_fis->CountHigh = ((size_buffer - 1) >> 8) & 0xFF; while ((kSATA->Ports[kSATAPortIdx].Tfd & (kAhciSRBsy | kAhciSRDrq))) { diff --git a/dev/Kernel/doc/SPECIFICATION.md b/dev/Kernel/doc/SPECIFICATION.md index 0233643a..b2da5e8c 100644 --- a/dev/Kernel/doc/SPECIFICATION.md +++ b/dev/Kernel/doc/SPECIFICATION.md @@ -52,7 +52,7 @@ =================================== -# 4: The zbaosldr +# 4: The BootZ =================================== -- cgit v1.2.3