summaryrefslogtreecommitdiff
path: root/sys/src/9/bcm64
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2021-11-26 20:51:45 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2021-11-26 20:51:45 +0000
commit20ea113790c22e5fc8dd0051baa359e4fa083425 (patch)
treea64dbfef9f4e41db253a1d8f240bf6b060639b27 /sys/src/9/bcm64
parentadd3a0a4da2f46f69a87782699e77c794a8b2cb9 (diff)
kernel: support large 64-bit pci membars, increase pc64 VMAPSIZE to 1TB
This makes vmap()/vunmap() take a vlong size argument, and change the type of Pci.mem[].size to vlong as well. Even if vmap() wont support large mappings, it is nice to get the original unruncated value for error checking. pc64 needs a bigger VMAP window, as system76 pangolin puts the framebuffer at a physical address > 512GB.
Diffstat (limited to 'sys/src/9/bcm64')
-rw-r--r--sys/src/9/bcm64/fns.h4
-rw-r--r--sys/src/9/bcm64/mmu.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/sys/src/9/bcm64/fns.h b/sys/src/9/bcm64/fns.h
index e6acd4ffe..40e136513 100644
--- a/sys/src/9/bcm64/fns.h
+++ b/sys/src/9/bcm64/fns.h
@@ -67,8 +67,8 @@ extern void kmapinval(void);
extern KMap *kmap(Page*);
extern void kunmap(KMap*);
extern uintptr mmukmap(uintptr, uintptr, usize);
-extern void* vmap(uvlong, int);
-extern void vunmap(void*, int);
+extern void* vmap(uvlong, vlong);
+extern void vunmap(void*, vlong);
extern void mmu0init(uintptr*);
extern void mmu0clear(uintptr*);
diff --git a/sys/src/9/bcm64/mmu.c b/sys/src/9/bcm64/mmu.c
index 8538369fa..e619f7f36 100644
--- a/sys/src/9/bcm64/mmu.c
+++ b/sys/src/9/bcm64/mmu.c
@@ -324,7 +324,7 @@ mmukmap(uintptr va, uintptr pa, usize size)
}
void*
-vmap(uvlong pa, int size)
+vmap(uvlong pa, vlong size)
{
static uintptr base = VMAP;
uvlong pe = pa + size;
@@ -337,7 +337,7 @@ vmap(uvlong pa, int size)
}
void
-vunmap(void *, int)
+vunmap(void *, vlong)
{
}