diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-03-27 20:35:24 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-03-27 20:35:24 +0100 |
| commit | a3da0eaaf7569948f83c65ff7997c4d1fc868603 (patch) | |
| tree | 735b9feba07568c802365169761efe0bc730f16b /dev/boot/modules/NetBoot | |
| parent | e263653c2c1d1858827ac45061ecaefd9047fbb2 (diff) | |
BootZ: Introduce NetBoot module & consolidate STANDALONE macro
- Renamed __BOOTLDR_STANDALONE__ → __BOOTZ_STANDALONE__ across all modules.
- Introduced NetBoot module to support fallback booting via packets.
- Updated amd64-desktop build to bundle netboot.sys as part of system image.
- NetBoot now properly zeroes out its header and performs sanity check on PatchLength.
- Boot flow now attempts to fallback to NetBoot if neoskrnl.exe fails to start.
- Reorganized disk formatting logic for clarity and better failure recovery.
- HeFS & NeFS minimum disk size lowered (64GiB → 256MiB and 4GiB → 8MiB).
- Renamed `IndexProperty` to `Index` in FSKit::Indexer.
- Moved HintKit → hint/, updated includes and guards.
- Removed deprecated LPC.{cc,h}, replaced by ProcessCodes.h.
- Modernized SystemCalls.h typedefs: SCIObject → Ref, ThreadObject → ThreadRef, etc.
- Updated userland tools `make_app` and `open` with copyright and behavior fixes.
This prepares the BootZ infrastructure for headless/network environments.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/boot/modules/NetBoot')
| -rw-r--r-- | dev/boot/modules/NetBoot/Boot.S | 10 | ||||
| -rw-r--r-- | dev/boot/modules/NetBoot/NetBoot.cc | 8 | ||||
| -rw-r--r-- | dev/boot/modules/NetBoot/amd64.json | 4 |
3 files changed, 10 insertions, 12 deletions
diff --git a/dev/boot/modules/NetBoot/Boot.S b/dev/boot/modules/NetBoot/Boot.S index 2095b91d..8ebfb352 100644 --- a/dev/boot/modules/NetBoot/Boot.S +++ b/dev/boot/modules/NetBoot/Boot.S @@ -7,8 +7,10 @@ ;; * ======================================================== ;; */ +#ifdef __NE_AMD64__ .code64 .intel_syntax noprefix +#endif #define kTypeDriver 101 #define kArchAmd64 122 @@ -18,11 +20,3 @@ .quad kHandoverMagic .word kTypeDriver - -.text - -.extern main -.global __main - -__main: - ret diff --git a/dev/boot/modules/NetBoot/NetBoot.cc b/dev/boot/modules/NetBoot/NetBoot.cc index 1787045e..4a169d33 100644 --- a/dev/boot/modules/NetBoot/NetBoot.cc +++ b/dev/boot/modules/NetBoot/NetBoot.cc @@ -15,12 +15,14 @@ EXTERN_C Int32 ModuleMain(NeOS::HEL::BootInfoHeader* handover) { NETBOOT_INTERNET_HEADER inet{}; + memset(&inet, 0, sizeof(NETBOOT_INTERNET_HEADER)); + /// TODO: Read packet from JSON file 'netboot.json' - if (inet.PatchLength < 0) + if (inet.PatchLength < 1) { Boot::BootTextWriter writer; - writer.Write("NetBootLauncher: No Patch attached to packet.\r"); + writer.Write("NetBootLauncher: No executable attached to the packet, aborting.\r"); return kEfiFail; } @@ -31,6 +33,8 @@ EXTERN_C Int32 ModuleMain(NeOS::HEL::BootInfoHeader* handover) if (thread.IsValid()) return thread.Start(handover, YES); + + return kEfiFail; } else { diff --git a/dev/boot/modules/NetBoot/amd64.json b/dev/boot/modules/NetBoot/amd64.json index db035094..db39cced 100644 --- a/dev/boot/modules/NetBoot/amd64.json +++ b/dev/boot/modules/NetBoot/amd64.json @@ -10,12 +10,12 @@ "-fPIC", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x10000000,-e,ModuleMain" + "-Wl,--subsystem=17,--image-base,0x1000000,-e,ModuleMain" ], "cpp_macros": [ "__NEOSKRNL__", "__BOOTZ__", - "__BOOTLDR_STANDALONE__", + "__BOOTZ_STANDALONE__", "__NE_AMD64__", "kNetBootVersionHighest=0x0100", "kNetBootVersionLowest=0x0100", |
