feat(adapter): higher-half kernel (linked at PHYS_OFFSET, boot trampoline, no low mappings), fix SBI ecall clobbers
This commit is contained in:
@@ -9,6 +9,7 @@ pub struct TrapFrame {
|
||||
|
||||
global_asm!(
|
||||
r#"
|
||||
.section .text
|
||||
.align 4
|
||||
.globl trap_vector
|
||||
trap_vector:
|
||||
@@ -207,7 +208,7 @@ fn switch_to_thread(
|
||||
{
|
||||
let pt_addr = kern.platform_mut().page_table_for(pid);
|
||||
if pt_addr != 0 {
|
||||
let pt = unsafe { &*(pt_addr as *const crate::mmu::PageTable) };
|
||||
let pt = crate::mmu::page_table::table_at(pt_addr);
|
||||
crate::mmu::activate(pt);
|
||||
}
|
||||
}
|
||||
@@ -239,7 +240,7 @@ fn switch_to_next(frame: &mut TrapFrame, current_tid: types::id::ThreadId) {
|
||||
{
|
||||
let pt_addr = kern.platform_mut().page_table_for(pid);
|
||||
if pt_addr != 0 {
|
||||
let pt = unsafe { &*(pt_addr as *const crate::mmu::PageTable) };
|
||||
let pt = crate::mmu::page_table::table_at(pt_addr);
|
||||
crate::mmu::activate(pt);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user