diff options
Diffstat (limited to 'src/boot/modules')
| -rw-r--r-- | src/boot/modules/BootNet/amd64.json | 2 | ||||
| -rw-r--r-- | src/boot/modules/BootNet/arm64.json | 2 | ||||
| -rw-r--r-- | src/boot/modules/MemoryTest/MemoryTest.cpp | 30 | ||||
| -rw-r--r-- | src/boot/modules/MemoryTest/MemoryTestStartup.S | 24 | ||||
| -rw-r--r-- | src/boot/modules/MemoryTest/README.md | 3 | ||||
| -rw-r--r-- | src/boot/modules/MemoryTest/amd64.json | 35 | ||||
| -rw-r--r-- | src/boot/modules/MemoryTest/arm64.json | 35 | ||||
| -rw-r--r-- | src/boot/modules/SysChk/amd64-ahci-epm.json | 2 | ||||
| -rw-r--r-- | src/boot/modules/SysChk/amd64-ahci-gpt.json | 2 | ||||
| -rw-r--r-- | src/boot/modules/SysChk/amd64-pio-epm.json | 2 | ||||
| -rw-r--r-- | src/boot/modules/SysChk/amd64-pio-gpt.json | 2 |
11 files changed, 133 insertions, 6 deletions
diff --git a/src/boot/modules/BootNet/amd64.json b/src/boot/modules/BootNet/amd64.json index 41ce26e1..e654b77c 100644 --- a/src/boot/modules/BootNet/amd64.json +++ b/src/boot/modules/BootNet/amd64.json @@ -21,7 +21,7 @@ "-std=c++20", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x10000000,-e,BootNetModuleMain" + "-Wl,--subsystem=17,--image-base,0x20000000,-e,BootNetModuleMain" ], "cpp_macros": [ "__BOOTZ__", diff --git a/src/boot/modules/BootNet/arm64.json b/src/boot/modules/BootNet/arm64.json index f939083e..bed477a4 100644 --- a/src/boot/modules/BootNet/arm64.json +++ b/src/boot/modules/BootNet/arm64.json @@ -21,7 +21,7 @@ "-std=c++20", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x10000000,-e,BootNetModuleMain" + "-Wl,--subsystem=17,--image-base,0x20000000,-e,BootNetModuleMain" ], "cpp_macros": [ "__BOOTZ__", diff --git a/src/boot/modules/MemoryTest/MemoryTest.cpp b/src/boot/modules/MemoryTest/MemoryTest.cpp new file mode 100644 index 00000000..49f28dcb --- /dev/null +++ b/src/boot/modules/MemoryTest/MemoryTest.cpp @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org) +// Licensed under the Apache License, Version 2.0 (see LICENSE file) +// Official repository: https://github.com/ne-foss-org/nekernel + +#include <BootKit/BootKit.h> +#include <BootKit/BootThread.h> +#include <FirmwareKit/EFI/API.h> + +EXTERN_C Int32 MemoryTestModuleMain(Kernel::HEL::BootInfoHeader* handover) { + fw_init_efi((EfiSystemTable*) handover->f_FirmwareCustomTables[Kernel::HEL::kHandoverTableST]); + + Boot::BootTextWriter writer; + writer.Write("MemoryTest: Testing Memory...\r"); + + constexpr auto kTestValue = 0x20000000L; + + Int32* mem = (Int32*) kTestValue; + if (!mem) return kEfiFail; + + auto prev = *mem; + *mem = 42; + if (*mem != 42) { + return kEfiFail; + } + + *mem = prev; + + return kEfiOk; +} diff --git a/src/boot/modules/MemoryTest/MemoryTestStartup.S b/src/boot/modules/MemoryTest/MemoryTestStartup.S new file mode 100644 index 00000000..a5832ee6 --- /dev/null +++ b/src/boot/modules/MemoryTest/MemoryTestStartup.S @@ -0,0 +1,24 @@ +;; /* +;; * ======================================================== +;; * +;; * BootZ +;; * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. +;; * +;; * ======================================================== +;; */ + +#ifdef __NE_AMD64__ +.code64 +.intel_syntax noprefix +#endif + +#define kTypeDriver 101 +#define kArchAmd64 122 +#define kHandoverMagic 0xBADCC + +.section .ldr + +.quad kHandoverMagic +.word kTypeDriver +.word 0 +.word kArchAmd64
\ No newline at end of file diff --git a/src/boot/modules/MemoryTest/README.md b/src/boot/modules/MemoryTest/README.md new file mode 100644 index 00000000..fac97400 --- /dev/null +++ b/src/boot/modules/MemoryTest/README.md @@ -0,0 +1,3 @@ +# MemoryTest: + +This module tests the memory of a x64 machine by allocating to it. diff --git a/src/boot/modules/MemoryTest/amd64.json b/src/boot/modules/MemoryTest/amd64.json new file mode 100644 index 00000000..8d1f8bd3 --- /dev/null +++ b/src/boot/modules/MemoryTest/amd64.json @@ -0,0 +1,35 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": [ + "../", + "../../", + "../../../kernel", + "../../../", + "./" + ], + "sources_path": [ + "*.cpp", + "*.S", + "../../src/HEL/AMD64/*.cpp", + "../../src/HEL/AMD64/*.S", + "../../src/*.cpp" + ], + "output_name": "memtest.efi", + "compiler_flags": [ + "-nostdlib", + "-std=c++20", + "-fno-rtti", + "-fno-exceptions", + "-Wl,--subsystem=17,--image-base,0x20000000,-e,MemoryTestModuleMain" + ], + "cpp_macros": [ + "__BOOTZ__", + "__BOOTZ_STANDALONE__", + "__NE_AMD64__", + "__nekernel_max_cores=8 ", + "kMemTestVersionHighest=0x0100", + "kMemTestVersionLowest=0x0100", + "kMemTestEFIVersion=0x0100" + ] +} diff --git a/src/boot/modules/MemoryTest/arm64.json b/src/boot/modules/MemoryTest/arm64.json new file mode 100644 index 00000000..41590bb4 --- /dev/null +++ b/src/boot/modules/MemoryTest/arm64.json @@ -0,0 +1,35 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": [ + "../", + "../../", + "../../../kernel", + "../../../", + "./" + ], + "sources_path": [ + "*.cpp", + "*.S", + "../../src/HEL/ARM64/*.cpp", + "../../src/HEL/ARM64/*.S", + "../../src/*.cpp" + ], + "output_name": "memtest.efi", + "compiler_flags": [ + "-nostdlib", + "-std=c++20", + "-fno-rtti", + "-fno-exceptions", + "-Wl,--subsystem=17,--image-base,0x20000000,-e,MemoryTestModuleMain" + ], + "cpp_macros": [ + "__BOOTZ__", + "__BOOTZ_STANDALONE__", + "__NE_ARM64__", + "__nekernel_max_cores=8 ", + "kMemTestVersionHighest=0x0100", + "kMemTestVersionLowest=0x0100", + "kMemTestEFIVersion=0x0100" + ] +} diff --git a/src/boot/modules/SysChk/amd64-ahci-epm.json b/src/boot/modules/SysChk/amd64-ahci-epm.json index 1fa10f60..99037618 100644 --- a/src/boot/modules/SysChk/amd64-ahci-epm.json +++ b/src/boot/modules/SysChk/amd64-ahci-epm.json @@ -26,7 +26,7 @@ "-std=c++20", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain" + "-Wl,--subsystem=17,--image-base,0x20000000,-e,SysChkModuleMain" ], "cpp_macros": [ "__NEOSKRNL__", diff --git a/src/boot/modules/SysChk/amd64-ahci-gpt.json b/src/boot/modules/SysChk/amd64-ahci-gpt.json index 4baf1393..d9160952 100644 --- a/src/boot/modules/SysChk/amd64-ahci-gpt.json +++ b/src/boot/modules/SysChk/amd64-ahci-gpt.json @@ -26,7 +26,7 @@ "-std=c++20", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain" + "-Wl,--subsystem=17,--image-base,0x20000000,-e,SysChkModuleMain" ], "cpp_macros": [ "__NEOSKRNL__", diff --git a/src/boot/modules/SysChk/amd64-pio-epm.json b/src/boot/modules/SysChk/amd64-pio-epm.json index 7e4b1d4e..ffcca945 100644 --- a/src/boot/modules/SysChk/amd64-pio-epm.json +++ b/src/boot/modules/SysChk/amd64-pio-epm.json @@ -31,7 +31,7 @@ "-std=c++20", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain" + "-Wl,--subsystem=17,--image-base,0x20000000,-e,SysChkModuleMain" ], "cpp_macros": [ "__NEOSKRNL__", diff --git a/src/boot/modules/SysChk/amd64-pio-gpt.json b/src/boot/modules/SysChk/amd64-pio-gpt.json index d954daed..5457f8a9 100644 --- a/src/boot/modules/SysChk/amd64-pio-gpt.json +++ b/src/boot/modules/SysChk/amd64-pio-gpt.json @@ -24,7 +24,7 @@ "-std=c++20", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain" + "-Wl,--subsystem=17,--image-base,0x20000000,-e,SysChkModuleMain" ], "cpp_macros": [ "__NEOSKRNL__", |
