summaryrefslogtreecommitdiffstats
path: root/arch/arm64/boot/Makefile
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2015-07-10 17:24:28 +0100
committerWill Deacon <will.deacon@arm.com>2015-07-27 11:08:39 +0100
commit2f4b829c625ec36c2d80bef6395c7b74cea8aac0 (patch)
tree806da0851ab4c8fd0ebda89d57e3b6057af66cef /arch/arm64/boot/Makefile
parentb08d4640a3dca68670fc5af2fe9205b395a02388 (diff)
downloadblackbird-op-linux-2f4b829c625ec36c2d80bef6395c7b74cea8aac0.tar.gz
blackbird-op-linux-2f4b829c625ec36c2d80bef6395c7b74cea8aac0.zip
arm64: Add support for hardware updates of the access and dirty pte bits
The ARMv8.1 architecture extensions introduce support for hardware updates of the access and dirty information in page table entries. With TCR_EL1.HA enabled, when the CPU accesses an address with the PTE_AF bit cleared in the page table, instead of raising an access flag fault the CPU sets the actual page table entry bit. To ensure that kernel modifications to the page tables do not inadvertently revert a change introduced by hardware updates, the exclusive monitor (ldxr/stxr) is adopted in the pte accessors. When TCR_EL1.HD is enabled, a write access to a memory location with the DBM (Dirty Bit Management) bit set in the corresponding pte automatically clears the read-only bit (AP[2]). Such DBM bit maps onto the Linux PTE_WRITE bit and to check whether a writable (DBM set) page is dirty, the kernel tests the PTE_RDONLY bit. In order to allow read-only and dirty pages, the kernel needs to preserve the software dirty bit. The hardware dirty status is transferred to the software dirty bit in ptep_set_wrprotect() (using load/store exclusive loop) and pte_modify(). Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/boot/Makefile')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud