Minor fixes

This commit is contained in:
River 2025-02-20 08:34:42 -05:00
parent c1bedccd19
commit a429d20e18
Signed by: shibedrill
GPG Key ID: 5FE0CB25945EFAA2
3 changed files with 20 additions and 4 deletions

View File

@ -15,8 +15,8 @@ Licensed under the GNU Public License v3. See [LICENSE](LICENSE) for details.
## Navigating
- [boot.rs](src/boot.rs): Handles bootloader handoff. Gila uses Limine. Other bootloaders are NOT supported.
- [display.rs](src/display.rs): Handles text-mode display via the VGA buffer.
- [arch/](src/arch/): Architecture specific features like the display, serial, and interrupts. Each architecture is a subfolder, containing a file or module for each feature.
- [boot.rs](src/boot.rs): Handles bootloader-managed data structures. Gila uses Limine. Other bootloaders are NOT supported.
- [lib.rs](src/lib.rs): Glue to make all files accessible from [main.rs](src/main.rs).
- [log.rs](src/log.rs): Logging structures and singletons for logging to serial or the display.
- [main.rs](src/main.rs): The entry point that gets called by the bootloader.
@ -49,6 +49,19 @@ supplying [shell.nix](shell.nix) as an argument.
TODO: The dockerfile is kinda broken and display forwarding does not work.
## Kernel Parameters
Kernel parameters are passed as part of the `cmdline` through [limine.conf](limine.conf). The parameters are passed as a space-delimited list of keys and values. Keys begin with a hyphen (`-`), and keys are separated from their values with equals signs (`=`). Keys can have a set of multiple values, separated by a comma (`,`). Gila does not currently support parameter values with spaces. That would require an *actual* parser.
List of current extant kernel parameters:
- `-loglevel`: Can be a number or string corresponding to a log level. Only one value supported.
- `-logdev`: A sequence of one or more values representing devices to log to. Current options are `display` and `serial`.
The default `cmdline` is:
`-loglevel=INFO -logdev=display,serial`
## Credits
The linker script stuff is from [limine-rust-template](https://github.com/jasondyoungberg/limine-rust-template),

View File

@ -2,4 +2,5 @@ timeout: 5
/Gila
protocol: limine
kernel_path: boot():/gila
kernel_path: boot():/gila
cmdline: -loglevel=INFO -logdev=display,serial

View File

@ -43,6 +43,7 @@ unsafe extern "C" fn main() -> ! {
if log_device_list.contains(&"serial") {
// Append serial console to log subs
}
log(LogLevel::INFO, "Configured kernel logging devices.")
}
{
@ -65,7 +66,8 @@ unsafe extern "C" fn main() -> ! {
}
}
log(LogLevel::INFO, "Booting Gila...");
log(LogLevel::INFO, "Log devices configured. Booting `gila`.");
log(LogLevel::INFO, "Trans Rights!");
let _smp_response = SMP_REQUEST.get_response();