| Age | Commit message (Collapse) | Author |
|
Collapse the EFI namespace into Boot to unify BootZ's interface for firmware
handling. This simplifies calls to functions like Stop(), ThrowError(),
and ExitBootServices(), and improves consistency across boot modules.
Also rename SysChk/Module.cc to SysChk/SysChk.cc for naming consistency
with other modules.
Improve NetBoot fallback path in BootEFI:
- Ensure netboot.sys is read before ExitBootServices() to avoid allocation
issues after exiting firmware services.
- Reuse reader and thread objects if kernel boot fails.
- Update both AMD64 and ARM64 paths to follow the same logic.
Update all call sites to use Boot:: instead of EFI::.
Fixes: broken error handling and memory reads after ExitBootServices()
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
- 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>
|
|
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
refactor: rename SCIKit -> user (then libuser.dylib)
boot/modules/netboot: fixed compilation for amd64.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
|
|
ahci(generic): set err_global_get() when probing or command fails, use
HbaMemRef when refering to HbaMem*
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
obsolete script
- Removed unused `build_gcc.sh` script.
- Namespaced CPU feature flags under `NeOS` and transitioned from enum to unnamed enum for scoping.
- Renamed `drv_std_input_output` to `drv_std_input_output_ahci` for clarity.
- Improved AHCI driver documentation and added zeroing for read buffers.
- Added optional `pad` parameter to memory allocators: `mm_alloc_bitmap`, `mm_new_heap`, `PageMgr::Request`, etc.
- Updated bitmap allocator to correctly handle and align with padded sizes.
- Added `fPad` field to memory header block.
- Fixed `ATA-DMA` mode comment, corrected PRD usage and logic.
- Improved code documentation and formatting in `UserProcessScheduler`, `PageMgr`, and related components.
- Enhanced safety in process memory cleanup (e.g., `StackReserve` cleanup).
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
|
|
feat(setup_amd64): Add 'disk' build step.
fix(hal/amd64): Fix warning regarding resb being used inside a non-bss area (using no-op instead).
feat(kernelkit/lockdelegate): add new entry to lock delegate's enum
(ensure validation).
feat(meta): ran format.sh to format files according to .clang-format.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
|
|
|
|
|
|
changes have been made too, see commit details for more information.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
file type.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
public(CF.fwrk): Add btb file to CF framework.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
Removing useless parts of the project too.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
to avoid repeating myself in the code.
|
|
- Reworked AHCI command setup: fixed command slot indexing and clarified memory setup
- Updated AHCI disk initialization to use reference for ATAPI flag
- Cleaned up verbose logging in scheduler and IRQ handler for a quieter kernel log
- Updated boot image target from fat32.img to neos.img
- Renamed and moved documentation files from `doc/` to `docs/` for consistency
- Renamed `make_docs.sh` to `osx_docs.sh` to reflect platform-specific intent
- Minor formatting improvements in DiskImage struct
- Revised ReadMe: clarified mount instructions and removed outdated screenshots
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
Applied the patch to Iterator.cc.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
repository standards.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
avoid using
lambdas inside the device initialization expression.
This leads to the following:
- Better readability.
- Much more predictible code.
- And a check on *disk* which could've been invalid memory area
(NULL address here)
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
NetBoot.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
- Refactored BootKit classes:
- Renamed `BTextWriter` → `BootTextWriter`
- Renamed `BFileReader` → `BootFileReader`
- Improved consistency across `BootKit.h`, `BootThread.cc`, and related files.
- Updated NetBoot module:
- Standardized text writer usage.
- Improved error handling for missing patches and EEPROM flash.
- DiskImage framework improvements:
- Introduced `DI_DISK_IMAGE` struct.
- Added new `DIFormatDisk()` and `DIFormatNeFS()` functions.
- Improved error handling and structure alignment.
- Kernel enhancements:
- Updated PE loader structures for better readability.
- Renamed PE header fields for consistency.
- Improved SwapDisk API structure (`SwapDiskHdr` → `SWAP_DISK_HEADER`).
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
|
|
|
|
- Poll for CR in ahci_enable_and_probe.
- Init NeFS, not an AHCI device for portability.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
- Make use of BFileDescriptor to provide a single file, or a bunch of
them.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
- Replace ambiguous WordLength templates with DataKind in `ke_dma_read/write`.
- Streamline AHCI driver initialization by directly assigning port implementations.
- Rename AHCI methods for clarity (`SetPi` → `SetPortsImplemented`).
- Standardize MMIO access by replacing `hal_mmio_read/write` with unified `ke_dma_read/write`.
- Improve GIC interrupt handler on ARM64 by explicitly handling scheduler interrupts and ensuring interrupts are ended correctly.
- Add debug breakpoint in infinite loop within AP setup for improved debugging.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
HalKernelMain.cc: Use the correct term for the scheduler init function.
|
|
DRY principle on drv_std_init_ahci.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
|
|
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|
|
- Refactored `sk_acquire_ahci_device(Int32 drv_index)` to return `ErrorOr<AHCIDeviceInterface>`
for proper error handling instead of returning a raw object.
- Moved `sk_init_ahci_device(BOOL atapi)` into the `NeOS` namespace for better encapsulation.
- Reduced `HbaMem::Ports` array size from `Ports[32]` to `Ports[1]` to optimize memory usage
for single-port AHCI controllers.
- Removed manual constructor initialization (`__CTOR_LIST__`, `__DTOR_LIST__`) from HAL,
simplifying kernel startup.
- Updated `hal_real_init()` to initialize AHCI storage (`sk_init_ahci_device(NO)`) before
userland execution.
- Refactored `hal_get_phys_address(void* virtual_address)` to use `VoidPtr` for type safety.
- Fixed incorrect buffer size (`kSzIdent`) in AHCI driver initialization from `kib_cast(1)`
to `512`, ensuring correct sector identification.
- Removed redundant drive model string parsing logic.
- Refactored AHCI PRD iteration loop to use `prd_i` instead of `i`, improving readability.
- Optimized `drv_std_input_output` by simplifying wait loop logic.
Overall, this commit improves AHCI error handling, reduces redundant initialization,
optimizes memory usage, and cleans up HAL and storage code.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
|