aarch64 linux4.9
arm64 mmu的 hardware page walke 和kernel中的重要概念
swapper_pg_dir 內核空間level 0頁表物理地址
VA_BITS 39 mmu 看到的虛擬地址的長度
stage1 stage2 translation 當前系統沒有el2 所有的translation 的規則遵守stage 1 的規則,如下來自arm中文社區
ttbr0 hardware page walker時level 0頁表物理地址
ttbr1 up address page walk level 0 頁表物理地址
t0sz 0x19 ttbr0 和 ttbr1 的mem region range是0~0x0000 00ff ffff ffff 和 0xffff f100 0000 0000 ~ 0xffff ffff ffff ffff
根據虛擬地址0xffff ff80 0988 0000 level 0 頁表物理地址選ttbr1_el1 0x021e 0000 4111 7000,只有39bit有效物理地址 0x41117000 ,後面table walker 的截圖是每一級頁表根據offset查到的物理地址的整個過程
TCR_EL1 T0SZ 64-T0SZ=VA_BITS 39bit
armv8 每級頁表offset計算方式(48bit arm文檔爲例)
上面截圖的第一列GnRnE屬性的查詢的方法: