summaryrefslogtreecommitdiffstats
path: root/rsdos/src
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-02 15:34:45 +0200
committersalmonik <salmonik@tuta.io>2026-08-02 15:34:45 +0200
commitc6827451bce4cd3774a9e066a4a1bf51bb83592e (patch)
treef43105d688e78efbcd2f9241330bead61739af2f /rsdos/src
parentv0.5.5: crash reports go to a dedicated CRASHLOG USB stick (diff)
downloadrs-dos-c6827451bce4cd3774a9e066a4a1bf51bb83592e.tar.gz
rs-dos-c6827451bce4cd3774a9e066a4a1bf51bb83592e.zip
v0.5.5: on-screen boot markers for disk/fs stage
Real hardware has no serial console, and the ahci/fat/fs boot diagnostics were serial-only — a silent fs failure left the user with no way to see where boot stopped. Add boot_marker lines for the AHCI disk count, FAT volume count, and the VFS tree + fs self-test result.
Diffstat (limited to '')
-rw-r--r--rsdos/src/main.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/rsdos/src/main.rs b/rsdos/src/main.rs
index 4521a42..4fe89c9 100644
--- a/rsdos/src/main.rs
+++ b/rsdos/src/main.rs
@@ -298,15 +298,30 @@ pub unsafe extern "efiapi" fn efi_main(image_handle: Handle, system_table: *mut
298 if !rsnix::ahci::init() { 298 if !rsnix::ahci::init() {
299 rsnix::serial_println!("ahci: no disk attached"); 299 rsnix::serial_println!("ahci: no disk attached");
300 } 300 }
301 rsnix::gop::boot_marker(&alloc::format!(
302 "rsnix: ahci {} disk(s)",
303 rsnix::ahci::disk_count()
304 ));
301 rsnix::fat::init(); // prints one line per mounted volume 305 rsnix::fat::init(); // prints one line per mounted volume
306 rsnix::gop::boot_marker(&alloc::format!(
307 "rsnix: fat {} volume(s) mounted",
308 rsnix::fat::volume_count()
309 ));
302 310
303 let (dirs, files) = rsnix::fs::init(); 311 let (dirs, files) = rsnix::fs::init();
304 rsnix::serial_println!("fs: vfs ready — {} dirs, {} files", dirs, files); 312 rsnix::serial_println!("fs: vfs ready — {} dirs, {} files", dirs, files);
305 if rsnix::fs::self_test() { 313 let fstest = rsnix::fs::self_test();
314 if fstest {
306 rsnix::serial_println!("fs: self-test OK (create/read/write/remove)"); 315 rsnix::serial_println!("fs: self-test OK (create/read/write/remove)");
307 } else { 316 } else {
308 rsnix::serial_println!("fs: self-test FAILED"); 317 rsnix::serial_println!("fs: self-test FAILED");
309 } 318 }
319 rsnix::gop::boot_marker(&alloc::format!(
320 "rsnix: fs ok {} dirs/{} files self-test {}",
321 dirs,
322 files,
323 if fstest { "ok" } else { "FAILED" }
324 ));
310 325
311 rsnix::serial_println!("boot: entering shell"); 326 rsnix::serial_println!("boot: entering shell");
312 rsnix::gop::boot_marker("rsnix: boot done — shell"); 327 rsnix::gop::boot_marker("rsnix: boot done — shell");