summaryrefslogtreecommitdiff
path: root/arch/x86/machine/cga.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2014-05-08 08:36:17 +0200
committerRichard Braun <rbraun@sceen.net>2014-05-08 08:36:17 +0200
commita6d06aa4c07cc6291bc22600768f89f7bfd3e26b (patch)
treed90021fe4f7cb235000e358ef9c998ab536a3816 /arch/x86/machine/cga.c
parent0c12b10a1ef73a60d46c45f8e2edf8538ba51d96 (diff)
x86/pmap: per-CPU page tables
Although currently not very useful since all pmap operations are global, this change enables the precise targeting of processors when maintaining the consistency of physical maps. It is essential to a scalable virtual memory system where non-overlapping mapping operations can be processed concurrently. It also temporarily removes some functionalities such as the ability to manipulate non-kernel pmaps and lazy TLB invalidation. These will be added again in the future.
Diffstat (limited to 'arch/x86/machine/cga.c')
-rw-r--r--arch/x86/machine/cga.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/machine/cga.c b/arch/x86/machine/cga.c
index 72fec7f9..eadddd83 100644
--- a/arch/x86/machine/cga.c
+++ b/arch/x86/machine/cga.c
@@ -108,8 +108,9 @@ cga_setup(void)
unsigned long va;
va = pmap_bootalloc(1);
- pmap_enter(kernel_pmap, va, CGA_MEMORY, VM_PROT_READ | VM_PROT_WRITE);
- pmap_update(kernel_pmap, va, va + PAGE_SIZE);
+ pmap_enter(kernel_pmap, va, CGA_MEMORY, VM_PROT_READ | VM_PROT_WRITE,
+ PMAP_PEF_GLOBAL);
+ pmap_update(kernel_pmap);
cga_memory = (uint8_t *)va;
/*