Fix set access rights when exploding block to finer granule table

If set_access_rights is called with a range which is mapped as a larger
block, Xlat explodes this into a new table with finer granule. The patch
fixes the address calculation for this case.
The patch also fixes setting the first block descriptor after creating
the new table.

Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: Ibdef2bec191f073380bbe8e77b3f5844a470c257
1 file changed
tree: cd356393874d4448d93fe0ff65d2e12f9768957b
  1. src/
  2. .gitignore
  3. Cargo.lock
  4. Cargo.toml
  5. dco.txt
  6. LICENSE-Apache-2.0
  7. LICENSE-MIT
  8. README.md
README.md

AArch64 Virtual Memory Translation Table Handler Library

Features

  • Allocate and map data initialized range
  • Allocate and map zero initialized range
  • Map physical address range
  • Unmap virtual address range
  • Query phyisical address of virtual address
  • Set memory access rights

Translation regimes

  • EL1&0 stage 1 Upper/Lower VA ranges
  • EL2&0 stage 1 Upper/Lower VA ranges (VHE)
  • EL2 stage 1
  • EL3 stage 1

Translation granules

  • 4k
  • 16k
  • 64k

Copyright 2024-2025 Arm Limited and/or its affiliates open-source-office@arm.com