]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/bcm64/mmu.c
bcm64: use exclusive monitor on nrdy to wake up idlehands()
[plan9front.git] / sys / src / 9 / bcm64 / mmu.c
index f57e798cb726a70b6b9d3bce2d769e15a8453715..112b99a808b7ab2852b91e6822c7355a8211235e 100644 (file)
@@ -124,18 +124,19 @@ kunmap(KMap*)
 uintptr
 mmukmap(uintptr va, uintptr pa, usize size)
 {
-       uintptr a, pe, off;
+       uintptr a, pe, off, attr;
 
        if(va == 0)
                return 0;
 
-       assert((va % PGLSZ(1)) == 0);
+       attr = va & PTEMA(7);
+       va &= -PGLSZ(1);
        off = pa % PGLSZ(1);
        a = va + off;
        pe = (pa + size + (PGLSZ(1)-1)) & -PGLSZ(1);
        while(pa < pe){
                ((uintptr*)L1)[PTL1X(va, 1)] = pa | PTEVALID | PTEBLOCK | PTEWRITE | PTEAF
-                       | PTEKERNEL | PTESH(SHARE_OUTER) | PTEDEVICE;
+                       | PTEKERNEL | PTESH(SHARE_OUTER) | attr;
                pa += PGLSZ(1);
                va += PGLSZ(1);
        }