strat9_kernel/boot/mod.rs
1//! Boot subsystem
2//!
3//! Regroups all code involved in the early kernel startup:
4//! - assembly stubs (16-bit => 64-bit transition)
5//! - bootloader handoff structures (KernelArgs)
6//! - Boot-protocol entry point
7//! - Device Tree (FDT) parsing
8//! - Block device abstraction
9//! - FAT32 module loader
10//! - early serial logger
11//! - kernel panic handler
12//! - simple TOML parser for kernel configuration
13
14// Assembly stub that includes boot64.S
15pub mod assembly;
16
17/// KernelArgs structures shared between bootloader and kernel
18pub mod entry;
19
20/// Physical boot-module validation and initfs address conversion.
21pub mod modules;
22
23/// Boot-protocol entry point (DTB/PVH)
24pub mod dtb_boot;
25
26/// Device Tree (FDT) parsing
27pub mod fdt;
28
29/// Block device abstraction
30pub mod block_device;
31
32/// VirtIO block device driver
33pub mod virtio_blk;
34
35/// FAT32 module loader
36pub mod fat32_loader;
37
38/// Early serial logger (used throughout the kernel lifetime)
39pub mod logger;
40
41/// Kernel panic handler
42pub mod panic;
43
44/// Kernel symbol table for panic backtrace resolution
45pub mod symbols;
46
47/// Centralized kernel.toml configuration application
48pub mod config;
49
50/// Simple TOML parser for kernel boot configuration
51pub mod toml;
52
53/// Boot-module lookup used by shell commands. With U-Boot the Limine backend
54/// is gone; modules load from the FAT32 boot partition (Phase 4), so these
55/// are empty stubs until that lands.
56pub mod limine_shim {
57 pub fn kernel_elf_bytes() -> Option<&'static [u8]> {
58 None
59 }
60 pub fn test_exec_module() -> Option<(u64, u64)> {
61 None
62 }
63 pub fn test_exec_helper_module() -> Option<(u64, u64)> {
64 None
65 }
66 pub fn test_syscalls_module() -> Option<(u64, u64)> {
67 None
68 }
69 pub fn test_mem_module() -> Option<(u64, u64)> {
70 None
71 }
72}