Configure PMP at boot
This commit is contained in:
parent
6de0381d61
commit
9655f71758
|
@ -181,6 +181,18 @@ w_mtvec(uint64 x)
|
||||||
asm volatile("csrw mtvec, %0" : : "r" (x));
|
asm volatile("csrw mtvec, %0" : : "r" (x));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
w_pmpcfg0(uint64 x)
|
||||||
|
{
|
||||||
|
asm volatile("csrw pmpcfg0, %0" : : "r" (x));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
w_pmpaddr0(uint64 x)
|
||||||
|
{
|
||||||
|
asm volatile("csrw pmpaddr0, %0" : : "r" (x));
|
||||||
|
}
|
||||||
|
|
||||||
// use riscv's sv39 page table scheme.
|
// use riscv's sv39 page table scheme.
|
||||||
#define SATP_SV39 (8L << 60)
|
#define SATP_SV39 (8L << 60)
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,11 @@ start()
|
||||||
w_mideleg(0xffff);
|
w_mideleg(0xffff);
|
||||||
w_sie(r_sie() | SIE_SEIE | SIE_STIE | SIE_SSIE);
|
w_sie(r_sie() | SIE_SEIE | SIE_STIE | SIE_SSIE);
|
||||||
|
|
||||||
|
// configure Physical Memory Protection to give supervisor mode
|
||||||
|
// access to all of physical memory.
|
||||||
|
w_pmpaddr0(0x3fffffffffffffull);
|
||||||
|
w_pmpcfg0(0xf);
|
||||||
|
|
||||||
// ask for clock interrupts.
|
// ask for clock interrupts.
|
||||||
timerinit();
|
timerinit();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue