From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 755DAC001DD for ; Thu, 13 Jul 2023 17:35:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References: Cc:To:Subject:MIME-Version:Date:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EIhnNoC3oSKOHqE+PuTd764VhfiyAnDaSRVNXMZIwOs=; b=wT8m35+3aC5RGL FoF/E+MF84jFVsEVdTFFzvHS1p7UD7ZCydo6Ks8rZjT+Xpd/CBLZ0yOcginFkMWO02KhiWHIOni52 ledzOH+LVY/XeJxWPyWRH5BF1Lkzw9btC4pi58DF3wpd96MEzZXTSTMoRAzW2dFXKQDbXEtZ7d302 eR8tIIHjYGfAgsx8clwffJIN5qpgThi2Y5Ac1AJMnE0iiZ1jB26sU3+OTyLaZ+nwwezlWXHCGpJN/ i2+JtBBz8423V6xYCCgYRc6Ky5XVbFTOZXLqSyQ/Psk+D+/cVUwhGuD5+gnvr5OLVxJ+uB/8prN8S wx30P41YASucHzaTNEsA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qK0DO-0043jX-1N; Thu, 13 Jul 2023 17:34:54 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qK0DL-0043iy-1f for linux-arm-kernel@lists.infradead.org; Thu, 13 Jul 2023 17:34:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689269689; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=q8/ResZwPvuv4tGVhWF3Aj+P0gkju6yAs+IwBrPVVMI=; b=CNjOaOZzqP/pNcL4gM2LLNCKXr0XrGalyJCdEcqj0Ixcfne2xdWxIcN7LLmtAQtPuhVF8Q PXaxrAHbuRf8sZm7vsSjw1EPVCYYe+lvCVtEX+9gdKiO4PF4TwRFmdDnymvZY6KsNlsV5Q dVdL7O8eZh+1AjdnJPffY4AesL5lmlM= Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-614-oNLnB0ztMt-MUMea6nW02w-1; Thu, 13 Jul 2023 13:34:45 -0400 X-MC-Unique: oNLnB0ztMt-MUMea6nW02w-1 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-635ed44d2afso7472956d6.2 for ; Thu, 13 Jul 2023 10:34:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689269685; x=1689874485; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:reply-to:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=q8/ResZwPvuv4tGVhWF3Aj+P0gkju6yAs+IwBrPVVMI=; b=cSidM5mdyhjS5HHRdvptKBcTRnOC27XTkMINWVT5pwdNyspbXPgGCD3tW/EMIthu4g R6ewJhF7tITkj3kQLVxk4hw1sJHU7NIAZU/q9uOxPFheUtgrM0E7V/0BwwpzAxTEM00O Y0XtL+97n35iFCJAPfApItQNFibKMPaNunaUAjKCQLlZPISyz7pnUYcdCVsXbOfdMjcF YqzKXFzLgqHrQ63TlxW7cdBhKJpOQ92ay+aY9AAJMiege7Bh3ZswTTrCHDqw27+tPViy vINW49Gs+X1sV16DbB+yM5V2MIr7ohoAV/RbdPJbrVqNMK3BhxPRqowMXDDoHJ/PUDsd TtTg== X-Gm-Message-State: ABy/qLZLGvsviVUy20LzAtdGBEiI6F7amUmNpUazX1i9QCzzTd6uI/d9 jwJEzDDT+nJNiXb/nTQigb129s5hV6d3c8z+Qg0jPkkg54gkp4bhJi3+SicfwokMqBvSq6PbKy0 TXAnAE3Z6z99Z8sh5a3q+57tR2P+zHFyQqk4= X-Received: by 2002:a05:622a:18e:b0:403:b0f5:fcbc with SMTP id s14-20020a05622a018e00b00403b0f5fcbcmr1898242qtw.36.1689269685110; Thu, 13 Jul 2023 10:34:45 -0700 (PDT) X-Google-Smtp-Source: APBJJlHgY87S1RWJK0LiAT9ThKEK/1QQ73ITZ8AoXT1ea09hJK3I7V4Wl5EMPuWRKI0BJncdjcCVkA== X-Received: by 2002:a05:622a:18e:b0:403:b0f5:fcbc with SMTP id s14-20020a05622a018e00b00403b0f5fcbcmr1898221qtw.36.1689269684742; Thu, 13 Jul 2023 10:34:44 -0700 (PDT) Received: from ?IPV6:2a01:e0a:59e:9d80:527b:9dff:feef:3874? ([2a01:e0a:59e:9d80:527b:9dff:feef:3874]) by smtp.gmail.com with ESMTPSA id d4-20020ac851c4000000b00403ad6ec2e8sm3258550qtn.26.2023.07.13.10.34.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Jul 2023 10:34:44 -0700 (PDT) Message-ID: Date: Thu, 13 Jul 2023 19:34:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: [PATCH 18/27] KVM: arm64: nv: Add trap forwarding for MDCR_EL2 To: Marc Zyngier , kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Catalin Marinas , Mark Brown , Mark Rutland , Will Deacon , Alexandru Elisei , Andre Przywara , Chase Conklin , Ganapatrao Kulkarni , Darren Hart , Miguel Luis , James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu References: <20230712145810.3864793-1-maz@kernel.org> <20230712145810.3864793-19-maz@kernel.org> From: Eric Auger In-Reply-To: <20230712145810.3864793-19-maz@kernel.org> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230713_103451_717728_8E53D267 X-CRM114-Status: GOOD ( 17.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: eric.auger@redhat.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Marc, On 7/12/23 16:58, Marc Zyngier wrote: > Describe the MDCR_EL2 register, and associate it with all the sysregs > it allows to trap. > > Signed-off-by: Marc Zyngier > --- > arch/arm64/kvm/emulate-nested.c | 262 ++++++++++++++++++++++++++++++++ > 1 file changed, 262 insertions(+) > > diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c > index 51901e85e43d..25e4842ac334 100644 > --- a/arch/arm64/kvm/emulate-nested.c > +++ b/arch/arm64/kvm/emulate-nested.c > @@ -65,6 +65,18 @@ enum coarse_grain_trap_id { > CGT_HCR_TTLBIS, > CGT_HCR_TTLBOS, > > + CGT_MDCR_TPMCR, > + CGT_MDCR_TPM, > + CGT_MDCR_TDE, > + CGT_MDCR_TDA, > + CGT_MDCR_TDOSA, > + CGT_MDCR_TDRA, > + CGT_MDCR_E2PB, > + CGT_MDCR_TPMS, > + CGT_MDCR_TTRF, > + CGT_MDCR_E2TB, > + CGT_MDCR_TDCC, > + > /* > * Anything after this point is a combination of trap controls, > * which all must be evaluated to decide what to do. > @@ -78,6 +90,11 @@ enum coarse_grain_trap_id { > CGT_HCR_TPU_TICAB, > CGT_HCR_TPU_TOCU, > CGT_HCR_NV1_ENSCXT, > + CGT_MDCR_TPM_TPMCR, > + CGT_MDCR_TDE_TDA, > + CGT_MDCR_TDE_TDOSA, > + CGT_MDCR_TDE_TDRA, > + CGT_MDCR_TDCC_TDE_TDA, > > /* > * Anything after this point requires a callback evaluating a > @@ -249,6 +266,72 @@ static const struct trap_bits coarse_trap_bits[] = { > .mask = HCR_TTLBOS, > .behaviour = BEHAVE_FORWARD_ANY, > }, > + [CGT_MDCR_TPMCR] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TPMCR, > + .mask = MDCR_EL2_TPMCR, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TPM] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TPM, > + .mask = MDCR_EL2_TPM, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TDE] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TDE, > + .mask = MDCR_EL2_TDE, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TDA] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TDA, > + .mask = MDCR_EL2_TDA, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TDOSA] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TDOSA, > + .mask = MDCR_EL2_TDOSA, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TDRA] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TDRA, > + .mask = MDCR_EL2_TDRA, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_E2PB] = { > + .index = MDCR_EL2, > + .value = 0, > + .mask = BIT(MDCR_EL2_E2PB_SHIFT), > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TPMS] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TPMS, > + .mask = MDCR_EL2_TPMS, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TTRF] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TTRF, > + .mask = MDCR_EL2_TTRF, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_E2TB] = { > + .index = MDCR_EL2, > + .value = 0, > + .mask = BIT(MDCR_EL2_E2TB_SHIFT), > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > + [CGT_MDCR_TDCC] = { > + .index = MDCR_EL2, > + .value = MDCR_EL2_TDCC, > + .mask = MDCR_EL2_TDCC, > + .behaviour = BEHAVE_FORWARD_ANY, > + }, > }; > > #define MCB(id, ...) \ > @@ -266,6 +349,11 @@ static const enum coarse_grain_trap_id *coarse_control_combo[] = { > MCB(CGT_HCR_TPU_TICAB, CGT_HCR_TPU, CGT_HCR_TICAB), > MCB(CGT_HCR_TPU_TOCU, CGT_HCR_TPU, CGT_HCR_TOCU), > MCB(CGT_HCR_NV1_ENSCXT, CGT_HCR_NV1, CGT_HCR_ENSCXT), > + MCB(CGT_MDCR_TPM_TPMCR, CGT_MDCR_TPM, CGT_MDCR_TPMCR), > + MCB(CGT_MDCR_TDE_TDA, CGT_MDCR_TDE, CGT_MDCR_TDA), > + MCB(CGT_MDCR_TDE_TDOSA, CGT_MDCR_TDE, CGT_MDCR_TDOSA), > + MCB(CGT_MDCR_TDE_TDRA, CGT_MDCR_TDE, CGT_MDCR_TDRA), > + MCB(CGT_MDCR_TDCC_TDE_TDA, CGT_MDCR_TDCC, CGT_MDCR_TDE_TDA), > }; > > typedef enum trap_behaviour (*complex_condition_check)(struct kvm_vcpu *); > @@ -593,6 +681,180 @@ static const struct encoding_to_trap_config encoding_to_cgt[] __initdata = { > SR_TRAP(SYS_ERXPFGCTL_EL1, CGT_HCR_FIEN), > SR_TRAP(SYS_ERXPFGCDN_EL1, CGT_HCR_FIEN), > SR_TRAP(SYS_SCXTNUM_EL0, CGT_HCR_ENSCXT), > + SR_TRAP(SYS_PMCR_EL0, CGT_MDCR_TPM_TPMCR), * > + SR_TRAP(SYS_PMCNTENSET_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMCNTENCLR_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMOVSSET_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMOVSCLR_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMCEID0_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMCEID1_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMXEVTYPER_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMSWINC_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMSELR_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMXEVCNTR_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMCCNTR_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMUSERENR_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMINTENSET_EL1, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMINTENCLR_EL1, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMMIR_EL1, CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMEVCNTRn_EL0(0), CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMEVCNTRn_EL0(1), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(2), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(3), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(4), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(5), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(6), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(7), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(8), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(9), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(10), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(11), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(12), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(13), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(14), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(15), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(16), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(17), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(18), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(19), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(20), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(21), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(22), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(23), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(24), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(25), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(26), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(27), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(28), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(29), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVCNTRn_EL0(30), CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMEVTYPERn_EL0(0), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(1), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(2), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(3), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(4), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(5), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(6), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(7), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(8), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(9), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(10), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(11), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(12), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(13), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(14), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(15), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(16), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(17), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(18), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(19), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(20), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(21), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(22), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(23), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(24), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(25), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(26), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(27), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(28), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(29), CGT_MDCR_TPM), > + SR_TRAP(SYS_PMEVTYPERn_EL0(30), CGT_MDCR_TPM),* > + SR_TRAP(SYS_PMCCFILTR_EL0, CGT_MDCR_TPM),* > + SR_TRAP(SYS_MDCCSR_EL0, CGT_MDCR_TDCC_TDE_TDA),* > + SR_TRAP(SYS_MDCCINT_EL1, CGT_MDCR_TDCC_TDE_TDA),* > + SR_TRAP(SYS_OSDTRRX_EL1, CGT_MDCR_TDCC_TDE_TDA),* > + SR_TRAP(SYS_OSDTRTX_EL1, CGT_MDCR_TDCC_TDE_TDA),* Please also double check DBGDTR_EL0, DBGDTRRX/TX_EL0. I understand from the spec they may end up in CGT_MDCR_TDCC_TDE_TDA too > + SR_TRAP(SYS_MDSCR_EL1, CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_OSECCR_EL1, CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGBVRn_EL1(0), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGBVRn_EL1(1), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(2), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(3), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(4), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(5), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(6), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(7), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(8), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(9), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(10), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(11), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(12), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(13), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(14), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBVRn_EL1(15), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGBCRn_EL1(0), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGBCRn_EL1(1), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(2), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(3), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(4), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(5), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(6), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(7), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(8), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(9), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(10), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(11), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(12), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(13), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(14), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGBCRn_EL1(15), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGWVRn_EL1(0), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGWVRn_EL1(1), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGWVRn_EL1(2), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(3), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(4), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(5), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(6), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(7), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(8), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(9), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(10), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(11), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(12), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(13), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWVRn_EL1(14), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGWVRn_EL1(15), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGWCRn_EL1(0), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGWCRn_EL1(1), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(2), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(3), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(4), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(5), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(6), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(7), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(8), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(9), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(10), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(11), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(12), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(13), CGT_MDCR_TDE_TDA), > + SR_TRAP(SYS_DBGWCRn_EL1(14), CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGCLAIMSET_EL1, CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGCLAIMCLR_EL1, CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_DBGAUTHSTATUS_EL1, CGT_MDCR_TDE_TDA),* > + SR_TRAP(SYS_OSLAR_EL1, CGT_MDCR_TDE_TDOSA),* > + SR_TRAP(SYS_OSLSR_EL1, CGT_MDCR_TDE_TDOSA),* > + SR_TRAP(SYS_OSDLR_EL1, CGT_MDCR_TDE_TDOSA),* > + SR_TRAP(SYS_DBGPRCR_EL1, CGT_MDCR_TDE_TDOSA),* > + SR_TRAP(SYS_MDRAR_EL1, CGT_MDCR_TDE_TDRA),* > + SR_TRAP(SYS_PMBLIMITR_EL1, CGT_MDCR_E2PB),* > + SR_TRAP(SYS_PMBPTR_EL1, CGT_MDCR_E2PB),* > + SR_TRAP(SYS_PMBSR_EL1, CGT_MDCR_E2PB),* > + SR_TRAP(SYS_PMSCR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_PMSEVFR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_PMSFCR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_PMSICR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_PMSIDR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_PMSIRR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_PMSLATFR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_PMSNEVFR_EL1, CGT_MDCR_TPMS),* > + SR_TRAP(SYS_TRFCR_EL1, CGT_MDCR_TTRF),* > + SR_TRAP(SYS_TRBBASER_EL1, CGT_MDCR_E2TB),* > + SR_TRAP(SYS_TRBLIMITR_EL1, CGT_MDCR_E2TB),* > + SR_TRAP(SYS_TRBMAR_EL1, CGT_MDCR_E2TB),* > + SR_TRAP(SYS_TRBPTR_EL1, CGT_MDCR_E2TB),* > + SR_TRAP(SYS_TRBSR_EL1, CGT_MDCR_E2TB),* > + SR_TRAP(SYS_TRBTRG_EL1, CGT_MDCR_E2TB),* > }; > > static DEFINE_XARRAY(sr_forward_xa); Besides Reviewed-by: Eric Auger Eric _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel