summaryrefslogtreecommitdiffhomepage
path: root/dev/boot/modules
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
commit83d870e58457a1d335a1d9b9966a6a1887cc297b (patch)
tree72888f88c7728c82f3f6df1f4f70591de15eab36 /dev/boot/modules
parentab37adbacf0f33845804c788b39680cd754752a8 (diff)
feat! breaking changes on kernel sources.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/boot/modules')
-rw-r--r--dev/boot/modules/.keep0
-rw-r--r--dev/boot/modules/BootNet/.hgkeep0
-rw-r--r--dev/boot/modules/BootNet/BootNet.cc121
-rw-r--r--dev/boot/modules/BootNet/BootNet.h12
-rw-r--r--dev/boot/modules/BootNet/BootNetStartup.S24
-rw-r--r--dev/boot/modules/BootNet/amd64.json23
-rw-r--r--dev/boot/modules/SysChk/.hgkeep0
-rw-r--r--dev/boot/modules/SysChk/SysChk.cc41
-rw-r--r--dev/boot/modules/SysChk/SysChkStartup.S24
-rw-r--r--dev/boot/modules/SysChk/amd64-ahci-epm.json42
-rw-r--r--dev/boot/modules/SysChk/amd64-ahci-gpt.json40
-rw-r--r--dev/boot/modules/SysChk/amd64-pio-epm.json41
-rw-r--r--dev/boot/modules/SysChk/amd64-pio-gpt.json41
-rw-r--r--dev/boot/modules/SysChk/arm64.json26
14 files changed, 0 insertions, 435 deletions
diff --git a/dev/boot/modules/.keep b/dev/boot/modules/.keep
deleted file mode 100644
index e69de29b..00000000
--- a/dev/boot/modules/.keep
+++ /dev/null
diff --git a/dev/boot/modules/BootNet/.hgkeep b/dev/boot/modules/BootNet/.hgkeep
deleted file mode 100644
index e69de29b..00000000
--- a/dev/boot/modules/BootNet/.hgkeep
+++ /dev/null
diff --git a/dev/boot/modules/BootNet/BootNet.cc b/dev/boot/modules/BootNet/BootNet.cc
deleted file mode 100644
index 20d1a6c9..00000000
--- a/dev/boot/modules/BootNet/BootNet.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * ========================================================
- *
- * BootNet
- * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
- *
- * ========================================================
- */
-
-#include <BootKit/BootKit.h>
-#include <BootKit/BootThread.h>
-#include <FirmwareKit/EFI/API.h>
-#include <modules/BootNet/BootNet.h>
-
-STATIC EFI_GUID kEfiSimpleProtoGUID = EFI_SIMPLE_NETWORK_PROTOCOL_GUID;
-STATIC EFI_SIMPLE_NETWORK_PROTOCOL* kEfiProtocol = nullptr;
-
-STATIC Void bootnet_read_ip_packet(BOOTNET_INTERNET_HEADER inet,
- BOOTNET_INTERNET_HEADER** inet_out);
-
-EXTERN_C Int32 BootNetModuleMain(Kernel::HEL::BootInfoHeader* handover) {
- fw_init_efi((EfiSystemTable*) handover->f_FirmwareCustomTables[Kernel::HEL::kHandoverTableST]);
-
- Boot::BootTextWriter writer;
-
- writer.Write("BootNet: Init BootNet...\r");
-
- if (BS->LocateProtocol(&kEfiSimpleProtoGUID, nullptr, (VoidPtr*) &kEfiProtocol) != kEfiOk) {
- writer.Write("BootNet: Not supported by firmware.\r");
- return kEfiFail;
- }
-
- BOOTNET_INTERNET_HEADER inet{};
- BOOTNET_INTERNET_HEADER* inet_out = nullptr;
-
- SetMem(&inet, 0, sizeof(BOOTNET_INTERNET_HEADER));
-
- writer.Write("BootNet: Downloading kernel...\r");
-
- bootnet_read_ip_packet(inet, &inet_out);
-
- if (inet_out->Length < 1) {
- writer.Write("BootNet: No executable attached to the packet, aborting.\r");
- return kEfiFail;
- }
-
- if (inet_out->Version != kBootNetVersion) {
- writer.Write("BootNet: The version clashes, not good.\r");
- return kEfiFail;
- }
-
- if (!inet_out->ImpliesProgram) {
- Boot::BootThread thread(inet_out->Data);
-
- if (thread.IsValid()) {
- writer.Write("BootNet: Running NeKernel...\r");
- return thread.Start(handover, YES);
- }
-
- return kEfiFail;
- } else {
- constexpr auto kROMSize = 0x200;
-
- if (inet_out->Length > kROMSize) {
- writer.Write("BootNet: Not within 512K, won't flash EEPROM.\r");
- return kEfiFail;
- }
-
- writer.Write("BootNet: Programming the flash...\r");
-
- /// TODO: Program new firmware to EEPROM (if crc and size matches)
-
- const ATTRIBUTE(unused) UIntPtr kEEPROMStartAddress = 0;
- const ATTRIBUTE(unused) UInt16 kEEPROMSize = inet_out->Length;
-
- return kEfiFail;
- }
-
- return kEfiFail;
-}
-
-STATIC Void bootnet_read_ip_packet(BOOTNET_INTERNET_HEADER inet,
- BOOTNET_INTERNET_HEADER** inet_out) {
- NE_UNUSED(inet);
-
- kEfiProtocol->Start(kEfiProtocol);
-
- UInt32 size_inet = sizeof(inet);
-
- /// Connect to the local BootNet server.
-
- /// And receive the handshake packet.
- if (kEfiProtocol->Receive(kEfiProtocol, &size_inet, (UInt32*) &inet.Length, (VoidPtr) &inet,
- nullptr, nullptr, nullptr) == kEfiOk) {
- BOOTNET_INTERNET_HEADER* out = nullptr;
-
- BS->AllocatePool(EfiLoaderData, sizeof(BOOTNET_INTERNET_HEADER) + inet.Length, (VoidPtr*) &out);
-
- if (out == nullptr) {
- kEfiProtocol->Stop(kEfiProtocol);
- kEfiProtocol->Shutdown(kEfiProtocol);
- return;
- }
-
- SetMem(out, 0, sizeof(BOOTNET_INTERNET_HEADER));
- SetMem(out->Data, 0, inet.Length);
-
- size_inet = sizeof(BOOTNET_INTERNET_HEADER);
-
- auto full_size = size_inet + inet.Length;
-
- /// Ask for it again since we know the full_size variable now.
- kEfiProtocol->Receive(kEfiProtocol, &size_inet, (UInt32*) &full_size, (VoidPtr) out, nullptr,
- nullptr, nullptr);
-
- *inet_out = out;
- }
-
- kEfiProtocol->Stop(kEfiProtocol);
- kEfiProtocol->Shutdown(kEfiProtocol);
-} \ No newline at end of file
diff --git a/dev/boot/modules/BootNet/BootNet.h b/dev/boot/modules/BootNet/BootNet.h
deleted file mode 100644
index 9fe1a186..00000000
--- a/dev/boot/modules/BootNet/BootNet.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * ========================================================
- *
- * BootNet
- * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
- *
- * ========================================================
- */
-
-#pragma once
-
-#include <FirmwareKit/NeBoot/BootNet.h>
diff --git a/dev/boot/modules/BootNet/BootNetStartup.S b/dev/boot/modules/BootNet/BootNetStartup.S
deleted file mode 100644
index a5832ee6..00000000
--- a/dev/boot/modules/BootNet/BootNetStartup.S
+++ /dev/null
@@ -1,24 +0,0 @@
-;; /*
-;; * ========================================================
-;; *
-;; * 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/dev/boot/modules/BootNet/amd64.json b/dev/boot/modules/BootNet/amd64.json
deleted file mode 100644
index 3d58cbc1..00000000
--- a/dev/boot/modules/BootNet/amd64.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compiler_path": "x86_64-w64-mingw32-g++",
- "compiler_std": "c++20",
- "headers_path": ["../", "../../", "../../../kernel", "../../../", "./"],
- "sources_path": ["*.cc", "*.S", "../../src/HEL/AMD64/*.cc", "../../src/HEL/AMD64/*.S", "../../src/*.cc"],
- "output_name": "net.efi",
- "compiler_flags": [
- "-nostdlib",
- "-std=c++20",
- "-fno-rtti",
- "-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x10000000,-e,BootNetModuleMain"
- ],
- "cpp_macros": [
- "__NEOSKRNL__",
- "__BOOTZ__",
- "__BOOTZ_STANDALONE__",
- "__NE_AMD64__",
- "kBootNetVersionHighest=0x0100",
- "kBootNetVersionLowest=0x0100",
- "kBootNetEFIVersion=0x0100"
- ]
-}
diff --git a/dev/boot/modules/SysChk/.hgkeep b/dev/boot/modules/SysChk/.hgkeep
deleted file mode 100644
index e69de29b..00000000
--- a/dev/boot/modules/SysChk/.hgkeep
+++ /dev/null
diff --git a/dev/boot/modules/SysChk/SysChk.cc b/dev/boot/modules/SysChk/SysChk.cc
deleted file mode 100644
index 0706d457..00000000
--- a/dev/boot/modules/SysChk/SysChk.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * ========================================================
- *
- * SysChk
- * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
- *
- * ========================================================
- */
-
-#include <BootKit/BootKit.h>
-#include <BootKit/BootThread.h>
-#include <BootKit/HW/SATA.h>
-#include <FirmwareKit/EFI.h>
-#include <FirmwareKit/EFI/API.h>
-#include <FirmwareKit/Handover.h>
-#include <KernelKit/MSDOS.h>
-#include <KernelKit/PE.h>
-#include <KernelKit/PEF.h>
-#include <NeKit/Macros.h>
-#include <NeKit/Ref.h>
-#include <modules/CoreGfx/CoreGfx.h>
-#include <modules/CoreGfx/TextGfx.h>
-
-// Makes the compiler shut up.
-#ifndef kMachineModel
-#define kMachineModel "OS"
-#endif // !kMachineModel
-
-EXTERN_C Int32 SysChkModuleMain(Kernel::HEL::BootInfoHeader* handover) {
- fw_init_efi((EfiSystemTable*) handover->f_FirmwareCustomTables[Kernel::HEL::kHandoverTableST]);
-
-#if defined(__ATA_PIO__)
- Boot::BDiskFormatFactory<BootDeviceATA> partition_factory;
-#elif defined(__AHCI__)
- Boot::BDiskFormatFactory<BootDeviceSATA> partition_factory;
-#endif
-
- if (partition_factory.IsPartitionValid()) return kEfiOk;
-
- return partition_factory.Format(kMachineModel);
-}
diff --git a/dev/boot/modules/SysChk/SysChkStartup.S b/dev/boot/modules/SysChk/SysChkStartup.S
deleted file mode 100644
index a5832ee6..00000000
--- a/dev/boot/modules/SysChk/SysChkStartup.S
+++ /dev/null
@@ -1,24 +0,0 @@
-;; /*
-;; * ========================================================
-;; *
-;; * 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/dev/boot/modules/SysChk/amd64-ahci-epm.json b/dev/boot/modules/SysChk/amd64-ahci-epm.json
deleted file mode 100644
index 8ce9bfd8..00000000
--- a/dev/boot/modules/SysChk/amd64-ahci-epm.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "compiler_path": "x86_64-w64-mingw32-g++",
- "compiler_std": "c++20",
- "headers_path": ["../", "../../", "../../../kernel", "../../../", "./"],
- "sources_path": [
- "*.cc",
- "*.S",
- "../../src/HEL/AMD64/BootSATA.cc",
- "../../src/HEL/AMD64/BootPlatform.cc",
- "../../src/HEL/AMD64/BootAPI.S",
- "../../src/BootTextWriter.cc",
- "../../src/BootSupport.cc",
- "../../src/New+Delete.cc",
- "../../../kernel/HALKit/AMD64/PCI/*.cc",
- "../../../kernel/HALKit/AMD64/Storage/*.cc",
- "../../../kernel/src/Storage/*.cc",
- "../../../kernel/src/Network/*.cc",
- "../../../kernel/HALKit/AMD64/*.cc",
- "../../../kernel/HALKit/AMD64/*.s",
- "../../../kernel/src/*.cc"
- ],
- "output_name": "chk.efi",
- "compiler_flags": [
- "-nostdlib",
- "-std=c++20",
- "-fno-rtti",
- "-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain"
- ],
- "cpp_macros": [
- "__NEOSKRNL__",
- "__NE_AMD64__",
- "__AHCI__",
- "__SYSCHK__",
- "BOOTZ_EPM_SUPPORT",
- "__NE_VEPM__",
- "__NE_MODULAR_KERNEL_COMPONENTS__",
- "kChkVersionHighest=0x0100",
- "kChkVersionLowest=0x0100",
- "kChkVersion=0x0100"
- ]
-}
diff --git a/dev/boot/modules/SysChk/amd64-ahci-gpt.json b/dev/boot/modules/SysChk/amd64-ahci-gpt.json
deleted file mode 100644
index 80bb433e..00000000
--- a/dev/boot/modules/SysChk/amd64-ahci-gpt.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "compiler_path": "x86_64-w64-mingw32-g++",
- "compiler_std": "c++20",
- "headers_path": ["../", "../../", "../../../kernel", "../../../", "./"],
- "sources_path": [
- "*.cc",
- "*.S",
- "../../src/HEL/AMD64/BootSATA.cc",
- "../../src/HEL/AMD64/BootPlatform.cc",
- "../../src/HEL/AMD64/BootAPI.S",
- "../../src/BootTextWriter.cc",
- "../../src/BootSupport.cc",
- "../../src/New+Delete.cc",
- "../../../kernel/HALKit/AMD64/PCI/*.cc",
- "../../../kernel/HALKit/AMD64/Storage/*.cc",
- "../../../kernel/src/Storage/*.cc",
- "../../../kernel/HALKit/AMD64/*.cc",
- "../../../kernel/HALKit/AMD64/*.s",
- "../../../kernel/src/*.cc"
- ],
- "output_name": "chk.efi",
- "compiler_flags": [
- "-nostdlib",
- "-std=c++20",
- "-fno-rtti",
- "-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain"
- ],
- "cpp_macros": [
- "__NEOSKRNL__",
- "__NE_AMD64__",
- "__AHCI__",
- "__SYSCHK__",
- "BOOTZ_GPT_SUPPORT",
- "__NE_MODULAR_KERNEL_COMPONENTS__",
- "kChkVersionHighest=0x0100",
- "kChkVersionLowest=0x0100",
- "kChkVersion=0x0100"
- ]
-}
diff --git a/dev/boot/modules/SysChk/amd64-pio-epm.json b/dev/boot/modules/SysChk/amd64-pio-epm.json
deleted file mode 100644
index b1b95d8d..00000000
--- a/dev/boot/modules/SysChk/amd64-pio-epm.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "compiler_path": "x86_64-w64-mingw32-g++",
- "compiler_std": "c++20",
- "headers_path": [
- "../",
- "../../",
- "../../../kernel",
- "../../../",
- "./"
- ],
- "sources_path": [
- "*.cc",
- "*.S",
- "../../src/HEL/AMD64/BootATA.cc",
- "../../src/HEL/AMD64/BootPlatform.cc",
- "../../src/HEL/AMD64/BootAPI.S",
- "../../src/BootTextWriter.cc",
- "../../src/BootSupport.cc",
- "../../src/New+Delete.cc"
- ],
- "output_name": "chk.efi",
- "compiler_flags": [
- "-nostdlib",
- "-std=c++20",
- "-fno-rtti",
- "-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain"
- ],
- "cpp_macros": [
- "__NEOSKRNL__",
- "__BOOTZ__",
- "__BOOTZ_STANDALONE__",
- "__NE_AMD64__",
- "__ATA_PIO__",
- "BOOTZ_EPM_SUPPORT",
- "__NE_VEPM__",
- "kChkVersionHighest=0x0100",
- "kChkVersionLowest=0x0100",
- "kChkVersion=0x0100"
- ]
-} \ No newline at end of file
diff --git a/dev/boot/modules/SysChk/amd64-pio-gpt.json b/dev/boot/modules/SysChk/amd64-pio-gpt.json
deleted file mode 100644
index b1a4d38b..00000000
--- a/dev/boot/modules/SysChk/amd64-pio-gpt.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "compiler_path": "x86_64-w64-mingw32-g++",
- "compiler_std": "c++20",
- "headers_path": [
- "../",
- "../../",
- "../../../kernel",
- "../../../",
- "./"
- ],
- "sources_path": [
- "*.cc",
- "*.S",
- "../../src/HEL/AMD64/BootATA.cc",
- "../../src/HEL/AMD64/BootPlatform.cc",
- "../../src/HEL/AMD64/BootAPI.S",
- "../../src/BootTextWriter.cc",
- "../../src/BootSupport.cc",
- "../../src/New+Delete.cc"
- ],
- "output_name": "chk.efi",
- "compiler_flags": [
- "-nostdlib",
- "-std=c++20",
- "-fno-rtti",
- "-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain"
- ],
- "cpp_macros": [
- "__NEOSKRNL__",
- "__BOOTZ__",
- "__BOOTZ_STANDALONE__",
- "__NE_AMD64__",
- "__ATA_PIO__",
- "__NE_VEPM__",
- "BOOTZ_GPT_SUPPORT",
- "kChkVersionHighest=0x0100",
- "kChkVersionLowest=0x0100",
- "kChkVersion=0x0100"
- ]
-} \ No newline at end of file
diff --git a/dev/boot/modules/SysChk/arm64.json b/dev/boot/modules/SysChk/arm64.json
deleted file mode 100644
index ad5fde6e..00000000
--- a/dev/boot/modules/SysChk/arm64.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "compiler_path": "clang++",
- "compiler_std": "c++20",
- "headers_path": ["../", "../../", "../../../kernel", "../../../", "./"],
- "sources_path": ["*.cc", "*.S", "../../src/HEL/ARM64/*.cc", "../../src/HEL/ARM64/*.S", "../../src/*.cc"],
- "output_name": "chk.efi",
- "compiler_flags": [
- "-ffreestanding",
- "-nostdlib",
- "-std=c++20",
- "-fno-rtti",
- "-fno-exceptions",
- "-fuse-ld=lld",
- "-Wl,-subsystem:efi_application,-entry:BootloaderMain",
- "-target aarch64-unknown-windows"
- ],
- "cpp_macros": [
- "__NEOSKRNL__",
- "__BOOTZ__",
- "__BOOTZ_STANDALONE__",
- "__NE_ARM64__",
- "kChkVersionHighest=0x0100",
- "kChkVersionLowest=0x0100",
- "kChkVersion=0x0100"
- ]
-}