This is based on mainline, without any extra ARMv9-A dependencies which are still under development. This is good enough to pass all of the tests within
https://github.com/Huawei/Huawei_CCA_QEMU Changes for v3: * Incorporate fix for m-profile arm_cpu_get_phys_page_attrs_debug, since it has conflicts with the rest of the patch set. * Revert accidental change in S1_ptw_translate remapping ARMFault_GPCFOnOutput to ARMFault_GPCFOnWalk. * Remove __attribute__((nonnull)) early. * Rename get_phys_addr_{inner,outer} -> get_phys_addr_{nogpc,gpc}. Changes for v2: * Drop "Fix pmsav8 stage2 secure parameter". * Incorporate review feedback. * Mark last two patches as "NOTFORMERGE". r~ Richard Henderson (25): target/arm: Handle m-profile in arm_is_secure target/arm: Stub arm_hcr_el2_eff for m-profile target/arm: Diagnose incorrect usage of arm_is_secure subroutines target/arm: Rewrite check_s2_mmu_setup target/arm: Add isar_feature_aa64_rme target/arm: Update SCR and HCR for RME target/arm: SCR_EL3.NS may be RES1 target/arm: Add RME cpregs target/arm: Introduce ARMSecuritySpace include/exec/memattrs: Add two bits of space to MemTxAttrs target/arm: Adjust the order of Phys and Stage2 ARMMMUIdx target/arm: Introduce ARMMMUIdx_Phys_{Realm,Root} target/arm: Remove __attribute__((nonnull)) from ptw.c target/arm: Pipe ARMSecuritySpace through ptw.c target/arm: NSTable is RES0 for the RME EL3 regime target/arm: Handle Block and Page bits for security space target/arm: Handle no-execute for Realm and Root regimes target/arm: Use get_phys_addr_with_struct in S1_ptw_translate target/arm: Move s1_is_el0 into S1Translate target/arm: Use get_phys_addr_with_struct for stage2 target/arm: Add GPC syndrome target/arm: Implement GPC exceptions target/arm: Implement the granule protection check target/arm: Enable RME for -cpu max hw/arm/virt: Add some memory for Realm Management Monitor include/exec/memattrs.h | 9 +- include/hw/arm/virt.h | 2 + target/arm/cpu-param.h | 2 +- target/arm/cpu.h | 149 ++++++-- target/arm/internals.h | 27 ++ target/arm/syndrome.h | 10 + hw/arm/virt.c | 43 +++ target/arm/cpu.c | 4 + target/arm/cpu64.c | 37 ++ target/arm/helper.c | 164 ++++++++- target/arm/ptw.c | 753 ++++++++++++++++++++++++++++++---------- target/arm/tlb_helper.c | 96 ++++- 12 files changed, 1073 insertions(+), 223 deletions(-) -- 2.34.1