summaryrefslogtreecommitdiff
path: root/sys/src/9/pc64/squidboy.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-02-15 06:17:05 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2014-02-15 06:17:05 +0100
commit32604cd830a03c1237cf992b86e9b00499ca7b38 (patch)
tree5ca583bc9b65914bec42fd88216131134a84aa8c /sys/src/9/pc64/squidboy.c
parent1d64be19849086dc1152ef952b1ab32612e2e94c (diff)
pc64: move VMAP into its own PDP (for vmware)
modifying the kernel pdp (CPU0PDP) hangs vmware. so we initialize the pdp with KZERO and KZERO+1GB map in l.s and never change it. (except when removing the zero double map which seems to work). VMAP has its own pdp now allowing to map 512GB of physical address space. this simplifies the code a bit and gives nice virtual addresses.
Diffstat (limited to 'sys/src/9/pc64/squidboy.c')
-rw-r--r--sys/src/9/pc64/squidboy.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/src/9/pc64/squidboy.c b/sys/src/9/pc64/squidboy.c
index b0d9f409f..dab78ea2d 100644
--- a/sys/src/9/pc64/squidboy.c
+++ b/sys/src/9/pc64/squidboy.c
@@ -73,6 +73,7 @@ mpstartap(Apic* apic)
* PDP between processors.
*/
pml4[PTLX(KZERO, 3)] = MACHP(0)->pml4[PTLX(KZERO, 3)];
+ pml4[PTLX(VMAP, 3)] = MACHP(0)->pml4[PTLX(VMAP, 3)];
/* double map */
pml4[0] = PADDR(pdp0) | PTEWRITE|PTEVALID;