Clean up RISC-V-specific boot code

This commit is contained in:
Zejun Zhao 2025-03-25 23:23:33 +08:00 committed by Tate, Hongliang Tian
parent d39ab61d68
commit b097060c5e
2 changed files with 25 additions and 17 deletions

View File

@ -42,10 +42,12 @@ fn parse_initramfs() -> Option<&'static [u8]> {
} }
fn parse_acpi_arg() -> BootloaderAcpiArg { fn parse_acpi_arg() -> BootloaderAcpiArg {
// TDDO: Add ACPI support for RISC-V, maybe.
BootloaderAcpiArg::NotProvided BootloaderAcpiArg::NotProvided
} }
fn parse_framebuffer_info() -> Option<BootloaderFramebufferArg> { fn parse_framebuffer_info() -> Option<BootloaderFramebufferArg> {
// TODO: Parse framebuffer info from device tree.
None None
} }
@ -54,11 +56,13 @@ fn parse_memory_regions() -> MemoryRegionArray {
for region in DEVICE_TREE.get().unwrap().memory().regions() { for region in DEVICE_TREE.get().unwrap().memory().regions() {
if region.size.unwrap_or(0) > 0 { if region.size.unwrap_or(0) > 0 {
regions.push(MemoryRegion::new( regions
region.starting_address as usize, .push(MemoryRegion::new(
region.size.unwrap(), region.starting_address as usize,
MemoryRegionType::Usable, region.size.unwrap(),
)); MemoryRegionType::Usable,
))
.unwrap();
} }
} }
@ -66,26 +70,30 @@ fn parse_memory_regions() -> MemoryRegionArray {
for child in node.children() { for child in node.children() {
if let Some(reg_iter) = child.reg() { if let Some(reg_iter) = child.reg() {
for region in reg_iter { for region in reg_iter {
regions.push(MemoryRegion::new( regions
region.starting_address as usize, .push(MemoryRegion::new(
region.size.unwrap(), region.starting_address as usize,
MemoryRegionType::Reserved, region.size.unwrap(),
)); MemoryRegionType::Reserved,
))
.unwrap();
} }
} }
} }
} }
// Add the kernel region. // Add the kernel region.
regions.push(MemoryRegion::kernel()); regions.push(MemoryRegion::kernel()).unwrap();
// Add the initramfs region. // Add the initramfs region.
if let Some((start, end)) = parse_initramfs_range() { if let Some((start, end)) = parse_initramfs_range() {
regions.push(MemoryRegion::new( regions
start, .push(MemoryRegion::new(
end - start, start,
MemoryRegionType::Module, end - start,
)); MemoryRegionType::Module,
))
.unwrap();
} }
regions.into_non_overlapping() regions.into_non_overlapping()

View File

@ -13,7 +13,7 @@ cpu_local_cell! {
} }
/// Initialize interrupt handling on RISC-V. /// Initialize interrupt handling on RISC-V.
pub unsafe fn init(on_bsp: bool) { pub unsafe fn init(_on_bsp: bool) {
self::trap::init(); self::trap::init();
} }