summaryrefslogtreecommitdiffhomepage
path: root/dev/boot/modules
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-10 09:45:02 +0200
committerGitHub <noreply@github.com>2025-04-10 09:45:02 +0200
commit8988b6f166d1087615b21229df651e0bcc0fa048 (patch)
treef9a526d927e9b73a588e9c7db5cd99bf1622ca23 /dev/boot/modules
parent29828ef52df7a51e22057b4557b8d9a3d5550839 (diff)
parente50f871e6852beacb53986f930ed2d5dead84838 (diff)
Merge pull request #13 from amlel-el-mahrouss/dev
dev: Last AHCI patches.
Diffstat (limited to 'dev/boot/modules')
-rw-r--r--dev/boot/modules/BootNet/amd64.json2
-rw-r--r--dev/boot/modules/SysChk/SysChk.cc18
-rw-r--r--dev/boot/modules/SysChk/amd64-ahci.json (renamed from dev/boot/modules/SysChk/amd64.json)3
-rw-r--r--dev/boot/modules/SysChk/amd64-pio.json25
4 files changed, 45 insertions, 3 deletions
diff --git a/dev/boot/modules/BootNet/amd64.json b/dev/boot/modules/BootNet/amd64.json
index 86143e6a..da4a15f0 100644
--- a/dev/boot/modules/BootNet/amd64.json
+++ b/dev/boot/modules/BootNet/amd64.json
@@ -10,7 +10,7 @@
"-fPIC",
"-fno-rtti",
"-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x1000000,-e,BootNetModuleMain"
+ "-Wl,--subsystem=17,--image-base,0x10000000,-e,BootNetModuleMain"
],
"cpp_macros": [
"__NEOSKRNL__",
diff --git a/dev/boot/modules/SysChk/SysChk.cc b/dev/boot/modules/SysChk/SysChk.cc
index f9af8517..3086cdc6 100644
--- a/dev/boot/modules/SysChk/SysChk.cc
+++ b/dev/boot/modules/SysChk/SysChk.cc
@@ -21,14 +21,30 @@
#include <BootKit/BootThread.h>
#include <modules/CoreGfx/CoreGfx.h>
+// Makes the compiler shut up.
+#ifndef kMachineModel
+#define kMachineModel "Ne"
+#endif // !kMachineModel
+
EXTERN_C Int32 SysChkModuleMain(Kernel::HEL::BootInfoHeader* handover)
{
-#ifdef __NE_AMD64__
+#ifdef __ATA_PIO__
Boot::BDiskFormatFactory<BootDeviceATA> partition_factory;
if (partition_factory.IsPartitionValid())
return kEfiOk;
+ Boot::BDiskFormatFactory<BootDeviceATA>::BFileDescriptor desc{};
+
+ desc.fFileName[0] = '/';
+ desc.fFileName[1] = 0;
+ desc.fKind = kNeFSCatalogKindDir;
+
+ partition_factory.Format(kMachineModel, &desc, 1);
+
+ if (partition_factory.IsPartitionValid())
+ return kEfiOk;
+
return kEfiFail;
#else
return kEfiOk;
diff --git a/dev/boot/modules/SysChk/amd64.json b/dev/boot/modules/SysChk/amd64-ahci.json
index 3b5bab6f..527e79f9 100644
--- a/dev/boot/modules/SysChk/amd64.json
+++ b/dev/boot/modules/SysChk/amd64-ahci.json
@@ -10,13 +10,14 @@
"-fPIC",
"-fno-rtti",
"-fno-exceptions",
- "-Wl,--subsystem=17,--image-base,0x1000000,-e,SysChkModuleMain"
+ "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain"
],
"cpp_macros": [
"__NEOSKRNL__",
"__BOOTZ__",
"__BOOTZ_STANDALONE__",
"__NE_AMD64__",
+ "__AHCI__",
"kChkVersionHighest=0x0100",
"kChkVersionLowest=0x0100",
"kChkVersion=0x0100"
diff --git a/dev/boot/modules/SysChk/amd64-pio.json b/dev/boot/modules/SysChk/amd64-pio.json
new file mode 100644
index 00000000..de3195ce
--- /dev/null
+++ b/dev/boot/modules/SysChk/amd64-pio.json
@@ -0,0 +1,25 @@
+{
+ "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": "chk.efi",
+ "compiler_flags": [
+ "-nostdlib",
+ "-std=c++20",
+ "-fPIC",
+ "-fno-rtti",
+ "-fno-exceptions",
+ "-Wl,--subsystem=17,--image-base,0x10000000,-e,SysChkModuleMain"
+ ],
+ "cpp_macros": [
+ "__NEOSKRNL__",
+ "__BOOTZ__",
+ "__BOOTZ_STANDALONE__",
+ "__NE_AMD64__",
+ "__ATA_PIO__",
+ "kChkVersionHighest=0x0100",
+ "kChkVersionLowest=0x0100",
+ "kChkVersion=0x0100"
+ ]
+}