diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2021-11-26 20:51:45 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2021-11-26 20:51:45 +0000 |
commit | 20ea113790c22e5fc8dd0051baa359e4fa083425 (patch) | |
tree | a64dbfef9f4e41db253a1d8f240bf6b060639b27 /sys/src/9/bcm64 | |
parent | add3a0a4da2f46f69a87782699e77c794a8b2cb9 (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.h | 4 | ||||
-rw-r--r-- | sys/src/9/bcm64/mmu.c | 4 |
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) { } |