vm: allow pages to be mapped as no-cache

This commit is contained in:
2023-07-08 15:53:06 +01:00
parent 8ffbacb0cd
commit d96c549f17
2 changed files with 11 additions and 6 deletions

View File

@@ -71,6 +71,10 @@ static pte_t make_pte(pfn_t pfn, enum vm_prot prot, enum page_size size)
v |= PTE_RW;
}
if (prot & VM_PROT_NOCACHE) {
v |= PTE_NOCACHE;
}
if (!(prot & VM_PROT_EXEC)) {
v |= PTE_NX;
}
@@ -267,7 +271,7 @@ void pmap_bootstrap(void)
do_pmap_add(kernel_pmap,
(void *)(vbase + i),
PFN(i),
VM_PROT_READ | VM_PROT_WRITE | VM_PROT_SVR, hugepage);
VM_PROT_READ | VM_PROT_WRITE | VM_PROT_SVR | VM_PROT_NOCACHE, hugepage);
}
pmap_switch(kernel_pmap);

View File

@@ -42,11 +42,12 @@ enum vm_model {
};
enum vm_prot {
VM_PROT_READ = 0x01u,
VM_PROT_WRITE = 0x02u,
VM_PROT_EXEC = 0x04u,
VM_PROT_USER = 0x08u,
VM_PROT_SVR = 0x10u,
VM_PROT_READ = 0x01u,
VM_PROT_WRITE = 0x02u,
VM_PROT_EXEC = 0x04u,
VM_PROT_USER = 0x08u,
VM_PROT_SVR = 0x10u,
VM_PROT_NOCACHE = 0x20u,
};
enum vm_flags {