mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
ANDROID: KVM: arm64: Trap debug break and watch from guest
Debug and trace are not currently supported for protected guests, so trap accesses to the related registers and emulate them as RAZ/WI. Signed-off-by: Fuad Tabba <tabba@google.com> Signed-off-by: Will Deacon <willdeacon@google.com> Bug: 233587962 Change-Id: I910be963754c7d98e4f1270d05427e65d4c1b253
This commit is contained in:
@@ -108,7 +108,7 @@ static void pvm_init_traps_aa64dfr0(struct kvm_vcpu *vcpu)
|
||||
|
||||
/* Trap Debug */
|
||||
if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_EL1_DebugVer), feature_ids))
|
||||
mdcr_set |= MDCR_EL2_TDRA | MDCR_EL2_TDA | MDCR_EL2_TDE;
|
||||
mdcr_set |= MDCR_EL2_TDRA | MDCR_EL2_TDA;
|
||||
|
||||
/* Trap OS Double Lock */
|
||||
if (!FIELD_GET(ARM64_FEATURE_MASK(ID_AA64DFR0_EL1_DoubleLock), feature_ids))
|
||||
|
||||
@@ -351,6 +351,17 @@ static const struct sys_reg_desc pvm_sys_reg_descs[] = {
|
||||
/* Cache maintenance by set/way operations are restricted. */
|
||||
|
||||
/* Debug and Trace Registers are restricted. */
|
||||
RAZ_WI(SYS_DBGBVRn_EL1(0)),
|
||||
RAZ_WI(SYS_DBGBCRn_EL1(0)),
|
||||
RAZ_WI(SYS_DBGWVRn_EL1(0)),
|
||||
RAZ_WI(SYS_DBGWCRn_EL1(0)),
|
||||
RAZ_WI(SYS_MDSCR_EL1),
|
||||
RAZ_WI(SYS_OSLAR_EL1),
|
||||
RAZ_WI(SYS_OSLSR_EL1),
|
||||
RAZ_WI(SYS_OSDLR_EL1),
|
||||
|
||||
/* Group 1 ID registers */
|
||||
RAZ_WI(SYS_REVIDR_EL1),
|
||||
|
||||
/* AArch64 mappings of the AArch32 ID registers */
|
||||
/* CRm=1 */
|
||||
|
||||
Reference in New Issue
Block a user