diff options
author | Richard Braun <rbraun@sceen.net> | 2014-05-08 08:36:17 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2014-05-08 08:36:17 +0200 |
commit | a6d06aa4c07cc6291bc22600768f89f7bfd3e26b (patch) | |
tree | d90021fe4f7cb235000e358ef9c998ab536a3816 /arch/x86/machine/cga.c | |
parent | 0c12b10a1ef73a60d46c45f8e2edf8538ba51d96 (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.c | 5 |
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; /* |