From: Suzuki K Poulose <suzuki.poulose@arm.com> To: Steven Price <steven.price@arm.com>, kvm@vger.kernel.org, kvmarm@lists.linux.dev Cc: Catalin Marinas <catalin.marinas@arm.com>, Marc Zyngier <maz@kernel.org>, Will Deacon <will@kernel.org>, James Morse <james.morse@arm.com>, Oliver Upton <oliver.upton@linux.dev>, Zenghui Yu <yuzenghui@huawei.com>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Joey Gouly <joey.gouly@arm.com>, Alexandru Elisei <alexandru.elisei@arm.com>, Christoffer Dall <christoffer.dall@arm.com>, Fuad Tabba <tabba@google.com>, linux-coco@lists.linux.dev, Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com> Subject: Re: [PATCH v2 05/43] arm64: RME: Add SMC definitions for calling the RMM Date: Tue, 16 Apr 2024 13:38:51 +0100 [thread overview] Message-ID: <e6ece61d-ceb6-44f3-a17c-c678b4562991@arm.com> (raw) In-Reply-To: <20240412084309.1733783-6-steven.price@arm.com> Hi Steven On 12/04/2024 09:42, Steven Price wrote: > The RMM (Realm Management Monitor) provides functionality that can be > accessed by SMC calls from the host. > > The SMC definitions are based on DEN0137[1] version 1.0-eac5 > > [1] https://developer.arm.com/documentation/den0137/1-0eac5/ > > Signed-off-by: Steven Price <steven.price@arm.com> > --- > arch/arm64/include/asm/rmi_smc.h | 250 +++++++++++++++++++++++++++++++ > 1 file changed, 250 insertions(+) > create mode 100644 arch/arm64/include/asm/rmi_smc.h > > diff --git a/arch/arm64/include/asm/rmi_smc.h b/arch/arm64/include/asm/rmi_smc.h > new file mode 100644 > index 000000000000..c205efdb18d8 > --- /dev/null > +++ b/arch/arm64/include/asm/rmi_smc.h > @@ -0,0 +1,250 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Copyright (C) 2023 ARM Ltd. > + * > + * The values and structures in this file are from the Realm Management Monitor > + * specification (DEN0137) version A-bet0: > + * https://developer.arm.com/documentation/den0137/1-0bet0/ This should now point to eac5 instead. > + */ > + > +#ifndef __ASM_RME_SMC_H > +#define __ASM_RME_SMC_H > + > +#include <linux/arm-smccc.h> > + > +#define SMC_RxI_CALL(func) \ > + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ > + ARM_SMCCC_SMC_64, \ > + ARM_SMCCC_OWNER_STANDARD, \ > + (func)) > + > +#define SMC_RMI_DATA_CREATE SMC_RxI_CALL(0x0153) > +#define SMC_RMI_DATA_CREATE_UNKNOWN SMC_RxI_CALL(0x0154) > +#define SMC_RMI_DATA_DESTROY SMC_RxI_CALL(0x0155) > +#define SMC_RMI_FEATURES SMC_RxI_CALL(0x0165) > +#define SMC_RMI_GRANULE_DELEGATE SMC_RxI_CALL(0x0151) > +#define SMC_RMI_GRANULE_UNDELEGATE SMC_RxI_CALL(0x0152) > +#define SMC_RMI_PSCI_COMPLETE SMC_RxI_CALL(0x0164) > +#define SMC_RMI_REALM_ACTIVATE SMC_RxI_CALL(0x0157) > +#define SMC_RMI_REALM_CREATE SMC_RxI_CALL(0x0158) > +#define SMC_RMI_REALM_DESTROY SMC_RxI_CALL(0x0159) > +#define SMC_RMI_REC_AUX_COUNT SMC_RxI_CALL(0x0167) > +#define SMC_RMI_REC_CREATE SMC_RxI_CALL(0x015a) > +#define SMC_RMI_REC_DESTROY SMC_RxI_CALL(0x015b) > +#define SMC_RMI_REC_ENTER SMC_RxI_CALL(0x015c) > +#define SMC_RMI_RTT_CREATE SMC_RxI_CALL(0x015d) > +#define SMC_RMI_RTT_DESTROY SMC_RxI_CALL(0x015e) > +#define SMC_RMI_RTT_FOLD SMC_RxI_CALL(0x0166) > +#define SMC_RMI_RTT_INIT_RIPAS SMC_RxI_CALL(0x0168) > +#define SMC_RMI_RTT_MAP_UNPROTECTED SMC_RxI_CALL(0x015f) > +#define SMC_RMI_RTT_READ_ENTRY SMC_RxI_CALL(0x0161) > +#define SMC_RMI_RTT_SET_RIPAS SMC_RxI_CALL(0x0169) > +#define SMC_RMI_RTT_UNMAP_UNPROTECTED SMC_RxI_CALL(0x0162) > +#define SMC_RMI_VERSION SMC_RxI_CALL(0x0150) > + > +#define RMI_ABI_MAJOR_VERSION 1 > +#define RMI_ABI_MINOR_VERSION 0 > + > +#define RMI_UNASSIGNED 0 > +#define RMI_ASSIGNED 1 > +#define RMI_TABLE 2 > + > +#define RMI_ABI_VERSION_GET_MAJOR(version) ((version) >> 16) > +#define RMI_ABI_VERSION_GET_MINOR(version) ((version) & 0xFFFF) > +#define RMI_ABI_VERSION(major, minor) (((major) << 16) | (minor)) > + > +#define RMI_RETURN_STATUS(ret) ((ret) & 0xFF) > +#define RMI_RETURN_INDEX(ret) (((ret) >> 8) & 0xFF) > + > +#define RMI_SUCCESS 0 > +#define RMI_ERROR_INPUT 1 > +#define RMI_ERROR_REALM 2 > +#define RMI_ERROR_REC 3 > +#define RMI_ERROR_RTT 4 > + > +#define RMI_EMPTY 0 > +#define RMI_RAM 1 > +#define RMI_DESTROYED 2 > + > +#define RMI_NO_MEASURE_CONTENT 0 > +#define RMI_MEASURE_CONTENT 1 > + > +#define RMI_FEATURE_REGISTER_0_S2SZ GENMASK(7, 0) > +#define RMI_FEATURE_REGISTER_0_LPA2 BIT(8) > +#define RMI_FEATURE_REGISTER_0_SVE_EN BIT(9) > +#define RMI_FEATURE_REGISTER_0_SVE_VL GENMASK(13, 10) > +#define RMI_FEATURE_REGISTER_0_NUM_BPS GENMASK(17, 14) > +#define RMI_FEATURE_REGISTER_0_NUM_WPS GENMASK(21, 18) > +#define RMI_FEATURE_REGISTER_0_PMU_EN BIT(22) > +#define RMI_FEATURE_REGISTER_0_PMU_NUM_CTRS GENMASK(27, 23) > +#define RMI_FEATURE_REGISTER_0_HASH_SHA_256 BIT(28) > +#define RMI_FEATURE_REGISTER_0_HASH_SHA_512 BIT(29) > + > +#define RMI_REALM_PARAM_FLAG_LPA2 BIT(0) > +#define RMI_REALM_PARAM_FLAG_SVE BIT(1) > +#define RMI_REALM_PARAM_FLAG_PMU BIT(2) > + > +/* > + * Note many of these fields are smaller than u64 but all fields have u64 > + * alignment, so use u64 to ensure correct alignment. > + */ > +struct realm_params { > + union { /* 0x0 */ > + struct { > + u64 flags; > + u64 s2sz; > + u64 sve_vl; > + u64 num_bps; > + u64 num_wps; > + u64 pmu_num_ctrs; > + u64 hash_algo; > + }; > + u8 padding_1[0x400]; > + }; > + union { /* 0x400 */ > + u8 rpv[64]; > + u8 padding_2[0x400]; > + }; > + union { /* 0x800 */ > + struct { > + u64 vmid; > + u64 rtt_base; > + s64 rtt_level_start; > + u64 rtt_num_start; > + }; > + u8 padding_3[0x800]; > + }; > +}; > + > +/* > + * The number of GPRs (starting from X0) that are > + * configured by the host when a REC is created. > + */ > +#define REC_CREATE_NR_GPRS 8 > + > +#define REC_PARAMS_FLAG_RUNNABLE BIT_ULL(0) > + > +#define REC_PARAMS_AUX_GRANULES 16 > + > +struct rec_params { > + union { /* 0x0 */ > + u64 flags; > + u8 padding1[0x100]; > + }; > + union { /* 0x100 */ > + u64 mpidr; > + u8 padding2[0x100]; > + }; > + union { /* 0x200 */ > + u64 pc; > + u8 padding3[0x100]; > + }; > + union { /* 0x300 */ > + u64 gprs[REC_CREATE_NR_GPRS]; > + u8 padding4[0x500]; > + }; > + union { /* 0x800 */ > + struct { > + u64 num_rec_aux; > + u64 aux[REC_PARAMS_AUX_GRANULES]; > + }; > + u8 padding5[0x800]; > + }; > +}; > + > +#define RMI_EMULATED_MMIO BIT(0) > +#define RMI_INJECT_SEA BIT(1) > +#define RMI_TRAP_WFI BIT(2) > +#define RMI_TRAP_WFE BIT(3) For completeness, we could add : #define RMI_RIPAS_RESPONSE BIT(4) Not sure if we use it later in the series. > + > +#define REC_RUN_GPRS 31 > +#define REC_GIC_NUM_LRS 16 > + > +struct rec_entry { > + union { /* 0x000 */ > + u64 flags; > + u8 padding0[0x200]; > + }; > + union { /* 0x200 */ > + u64 gprs[REC_RUN_GPRS]; > + u8 padding2[0x100]; > + }; > + union { /* 0x300 */ > + struct { > + u64 gicv3_hcr; > + u64 gicv3_lrs[REC_GIC_NUM_LRS]; > + }; > + u8 padding3[0x100]; > + }; > + u8 padding4[0x400]; > +}; > + > +struct rec_exit { > + union { /* 0x000 */ > + u8 exit_reason; > + u8 padding0[0x100]; > + }; > + union { /* 0x100 */ > + struct { > + u64 esr; > + u64 far; > + u64 hpfar; > + }; > + u8 padding1[0x100]; > + }; > + union { /* 0x200 */ > + u64 gprs[REC_RUN_GPRS]; > + u8 padding2[0x100]; > + }; > + union { /* 0x300 */ > + struct { > + u64 gicv3_hcr; > + u64 gicv3_lrs[REC_GIC_NUM_LRS]; > + u64 gicv3_misr; > + u64 gicv3_vmcr; > + }; > + u8 padding3[0x100]; > + }; > + union { /* 0x400 */ > + struct { > + u64 cntp_ctl; > + u64 cntp_cval; > + u64 cntv_ctl; > + u64 cntv_cval; > + }; > + u8 padding4[0x100]; > + }; > + union { /* 0x500 */ > + struct { > + u64 ripas_base; > + u64 ripas_top; > + u64 ripas_value; > + }; > + u8 padding5[0x100]; > + }; > + union { /* 0x600 */ > + u16 imm; > + u8 padding6[0x100]; > + }; > + union { /* 0x700 */ > + struct { > + u64 pmu_ovf_status; This is u8 as per section B4.4.10 RmiPmuOverflowStatus type. > + }; > + u8 padding7[0x100]; > + }; > +}; > + > +struct rec_run { > + struct rec_entry entry; > + struct rec_exit exit; > +}; > + > +#define RMI_EXIT_SYNC 0x00 > +#define RMI_EXIT_IRQ 0x01 > +#define RMI_EXIT_FIQ 0x02 > +#define RMI_EXIT_PSCI 0x03 > +#define RMI_EXIT_RIPAS_CHANGE 0x04 > +#define RMI_EXIT_HOST_CALL 0x05 > +#define RMI_EXIT_SERROR 0x06 Minor nit: Like the other definitions, it may be good to keep the defintions of the "exit_reason" above the field declaration. Rest looks fine to me. Suzuki > + > +#endif
WARNING: multiple messages have this Message-ID (diff)
From: Suzuki K Poulose <suzuki.poulose@arm.com> To: Steven Price <steven.price@arm.com>, kvm@vger.kernel.org, kvmarm@lists.linux.dev Cc: Catalin Marinas <catalin.marinas@arm.com>, Marc Zyngier <maz@kernel.org>, Will Deacon <will@kernel.org>, James Morse <james.morse@arm.com>, Oliver Upton <oliver.upton@linux.dev>, Zenghui Yu <yuzenghui@huawei.com>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Joey Gouly <joey.gouly@arm.com>, Alexandru Elisei <alexandru.elisei@arm.com>, Christoffer Dall <christoffer.dall@arm.com>, Fuad Tabba <tabba@google.com>, linux-coco@lists.linux.dev, Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com> Subject: Re: [PATCH v2 05/43] arm64: RME: Add SMC definitions for calling the RMM Date: Tue, 16 Apr 2024 13:38:51 +0100 [thread overview] Message-ID: <e6ece61d-ceb6-44f3-a17c-c678b4562991@arm.com> (raw) In-Reply-To: <20240412084309.1733783-6-steven.price@arm.com> Hi Steven On 12/04/2024 09:42, Steven Price wrote: > The RMM (Realm Management Monitor) provides functionality that can be > accessed by SMC calls from the host. > > The SMC definitions are based on DEN0137[1] version 1.0-eac5 > > [1] https://developer.arm.com/documentation/den0137/1-0eac5/ > > Signed-off-by: Steven Price <steven.price@arm.com> > --- > arch/arm64/include/asm/rmi_smc.h | 250 +++++++++++++++++++++++++++++++ > 1 file changed, 250 insertions(+) > create mode 100644 arch/arm64/include/asm/rmi_smc.h > > diff --git a/arch/arm64/include/asm/rmi_smc.h b/arch/arm64/include/asm/rmi_smc.h > new file mode 100644 > index 000000000000..c205efdb18d8 > --- /dev/null > +++ b/arch/arm64/include/asm/rmi_smc.h > @@ -0,0 +1,250 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Copyright (C) 2023 ARM Ltd. > + * > + * The values and structures in this file are from the Realm Management Monitor > + * specification (DEN0137) version A-bet0: > + * https://developer.arm.com/documentation/den0137/1-0bet0/ This should now point to eac5 instead. > + */ > + > +#ifndef __ASM_RME_SMC_H > +#define __ASM_RME_SMC_H > + > +#include <linux/arm-smccc.h> > + > +#define SMC_RxI_CALL(func) \ > + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ > + ARM_SMCCC_SMC_64, \ > + ARM_SMCCC_OWNER_STANDARD, \ > + (func)) > + > +#define SMC_RMI_DATA_CREATE SMC_RxI_CALL(0x0153) > +#define SMC_RMI_DATA_CREATE_UNKNOWN SMC_RxI_CALL(0x0154) > +#define SMC_RMI_DATA_DESTROY SMC_RxI_CALL(0x0155) > +#define SMC_RMI_FEATURES SMC_RxI_CALL(0x0165) > +#define SMC_RMI_GRANULE_DELEGATE SMC_RxI_CALL(0x0151) > +#define SMC_RMI_GRANULE_UNDELEGATE SMC_RxI_CALL(0x0152) > +#define SMC_RMI_PSCI_COMPLETE SMC_RxI_CALL(0x0164) > +#define SMC_RMI_REALM_ACTIVATE SMC_RxI_CALL(0x0157) > +#define SMC_RMI_REALM_CREATE SMC_RxI_CALL(0x0158) > +#define SMC_RMI_REALM_DESTROY SMC_RxI_CALL(0x0159) > +#define SMC_RMI_REC_AUX_COUNT SMC_RxI_CALL(0x0167) > +#define SMC_RMI_REC_CREATE SMC_RxI_CALL(0x015a) > +#define SMC_RMI_REC_DESTROY SMC_RxI_CALL(0x015b) > +#define SMC_RMI_REC_ENTER SMC_RxI_CALL(0x015c) > +#define SMC_RMI_RTT_CREATE SMC_RxI_CALL(0x015d) > +#define SMC_RMI_RTT_DESTROY SMC_RxI_CALL(0x015e) > +#define SMC_RMI_RTT_FOLD SMC_RxI_CALL(0x0166) > +#define SMC_RMI_RTT_INIT_RIPAS SMC_RxI_CALL(0x0168) > +#define SMC_RMI_RTT_MAP_UNPROTECTED SMC_RxI_CALL(0x015f) > +#define SMC_RMI_RTT_READ_ENTRY SMC_RxI_CALL(0x0161) > +#define SMC_RMI_RTT_SET_RIPAS SMC_RxI_CALL(0x0169) > +#define SMC_RMI_RTT_UNMAP_UNPROTECTED SMC_RxI_CALL(0x0162) > +#define SMC_RMI_VERSION SMC_RxI_CALL(0x0150) > + > +#define RMI_ABI_MAJOR_VERSION 1 > +#define RMI_ABI_MINOR_VERSION 0 > + > +#define RMI_UNASSIGNED 0 > +#define RMI_ASSIGNED 1 > +#define RMI_TABLE 2 > + > +#define RMI_ABI_VERSION_GET_MAJOR(version) ((version) >> 16) > +#define RMI_ABI_VERSION_GET_MINOR(version) ((version) & 0xFFFF) > +#define RMI_ABI_VERSION(major, minor) (((major) << 16) | (minor)) > + > +#define RMI_RETURN_STATUS(ret) ((ret) & 0xFF) > +#define RMI_RETURN_INDEX(ret) (((ret) >> 8) & 0xFF) > + > +#define RMI_SUCCESS 0 > +#define RMI_ERROR_INPUT 1 > +#define RMI_ERROR_REALM 2 > +#define RMI_ERROR_REC 3 > +#define RMI_ERROR_RTT 4 > + > +#define RMI_EMPTY 0 > +#define RMI_RAM 1 > +#define RMI_DESTROYED 2 > + > +#define RMI_NO_MEASURE_CONTENT 0 > +#define RMI_MEASURE_CONTENT 1 > + > +#define RMI_FEATURE_REGISTER_0_S2SZ GENMASK(7, 0) > +#define RMI_FEATURE_REGISTER_0_LPA2 BIT(8) > +#define RMI_FEATURE_REGISTER_0_SVE_EN BIT(9) > +#define RMI_FEATURE_REGISTER_0_SVE_VL GENMASK(13, 10) > +#define RMI_FEATURE_REGISTER_0_NUM_BPS GENMASK(17, 14) > +#define RMI_FEATURE_REGISTER_0_NUM_WPS GENMASK(21, 18) > +#define RMI_FEATURE_REGISTER_0_PMU_EN BIT(22) > +#define RMI_FEATURE_REGISTER_0_PMU_NUM_CTRS GENMASK(27, 23) > +#define RMI_FEATURE_REGISTER_0_HASH_SHA_256 BIT(28) > +#define RMI_FEATURE_REGISTER_0_HASH_SHA_512 BIT(29) > + > +#define RMI_REALM_PARAM_FLAG_LPA2 BIT(0) > +#define RMI_REALM_PARAM_FLAG_SVE BIT(1) > +#define RMI_REALM_PARAM_FLAG_PMU BIT(2) > + > +/* > + * Note many of these fields are smaller than u64 but all fields have u64 > + * alignment, so use u64 to ensure correct alignment. > + */ > +struct realm_params { > + union { /* 0x0 */ > + struct { > + u64 flags; > + u64 s2sz; > + u64 sve_vl; > + u64 num_bps; > + u64 num_wps; > + u64 pmu_num_ctrs; > + u64 hash_algo; > + }; > + u8 padding_1[0x400]; > + }; > + union { /* 0x400 */ > + u8 rpv[64]; > + u8 padding_2[0x400]; > + }; > + union { /* 0x800 */ > + struct { > + u64 vmid; > + u64 rtt_base; > + s64 rtt_level_start; > + u64 rtt_num_start; > + }; > + u8 padding_3[0x800]; > + }; > +}; > + > +/* > + * The number of GPRs (starting from X0) that are > + * configured by the host when a REC is created. > + */ > +#define REC_CREATE_NR_GPRS 8 > + > +#define REC_PARAMS_FLAG_RUNNABLE BIT_ULL(0) > + > +#define REC_PARAMS_AUX_GRANULES 16 > + > +struct rec_params { > + union { /* 0x0 */ > + u64 flags; > + u8 padding1[0x100]; > + }; > + union { /* 0x100 */ > + u64 mpidr; > + u8 padding2[0x100]; > + }; > + union { /* 0x200 */ > + u64 pc; > + u8 padding3[0x100]; > + }; > + union { /* 0x300 */ > + u64 gprs[REC_CREATE_NR_GPRS]; > + u8 padding4[0x500]; > + }; > + union { /* 0x800 */ > + struct { > + u64 num_rec_aux; > + u64 aux[REC_PARAMS_AUX_GRANULES]; > + }; > + u8 padding5[0x800]; > + }; > +}; > + > +#define RMI_EMULATED_MMIO BIT(0) > +#define RMI_INJECT_SEA BIT(1) > +#define RMI_TRAP_WFI BIT(2) > +#define RMI_TRAP_WFE BIT(3) For completeness, we could add : #define RMI_RIPAS_RESPONSE BIT(4) Not sure if we use it later in the series. > + > +#define REC_RUN_GPRS 31 > +#define REC_GIC_NUM_LRS 16 > + > +struct rec_entry { > + union { /* 0x000 */ > + u64 flags; > + u8 padding0[0x200]; > + }; > + union { /* 0x200 */ > + u64 gprs[REC_RUN_GPRS]; > + u8 padding2[0x100]; > + }; > + union { /* 0x300 */ > + struct { > + u64 gicv3_hcr; > + u64 gicv3_lrs[REC_GIC_NUM_LRS]; > + }; > + u8 padding3[0x100]; > + }; > + u8 padding4[0x400]; > +}; > + > +struct rec_exit { > + union { /* 0x000 */ > + u8 exit_reason; > + u8 padding0[0x100]; > + }; > + union { /* 0x100 */ > + struct { > + u64 esr; > + u64 far; > + u64 hpfar; > + }; > + u8 padding1[0x100]; > + }; > + union { /* 0x200 */ > + u64 gprs[REC_RUN_GPRS]; > + u8 padding2[0x100]; > + }; > + union { /* 0x300 */ > + struct { > + u64 gicv3_hcr; > + u64 gicv3_lrs[REC_GIC_NUM_LRS]; > + u64 gicv3_misr; > + u64 gicv3_vmcr; > + }; > + u8 padding3[0x100]; > + }; > + union { /* 0x400 */ > + struct { > + u64 cntp_ctl; > + u64 cntp_cval; > + u64 cntv_ctl; > + u64 cntv_cval; > + }; > + u8 padding4[0x100]; > + }; > + union { /* 0x500 */ > + struct { > + u64 ripas_base; > + u64 ripas_top; > + u64 ripas_value; > + }; > + u8 padding5[0x100]; > + }; > + union { /* 0x600 */ > + u16 imm; > + u8 padding6[0x100]; > + }; > + union { /* 0x700 */ > + struct { > + u64 pmu_ovf_status; This is u8 as per section B4.4.10 RmiPmuOverflowStatus type. > + }; > + u8 padding7[0x100]; > + }; > +}; > + > +struct rec_run { > + struct rec_entry entry; > + struct rec_exit exit; > +}; > + > +#define RMI_EXIT_SYNC 0x00 > +#define RMI_EXIT_IRQ 0x01 > +#define RMI_EXIT_FIQ 0x02 > +#define RMI_EXIT_PSCI 0x03 > +#define RMI_EXIT_RIPAS_CHANGE 0x04 > +#define RMI_EXIT_HOST_CALL 0x05 > +#define RMI_EXIT_SERROR 0x06 Minor nit: Like the other definitions, it may be good to keep the defintions of the "exit_reason" above the field declaration. Rest looks fine to me. Suzuki > + > +#endif _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-04-16 12:38 UTC|newest] Thread overview: 264+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-04-12 8:40 [v2] Support for Arm CCA VMs on Linux Steven Price 2024-04-12 8:40 ` Steven Price 2024-04-11 18:54 ` Itaru Kitayama 2024-04-11 18:54 ` Itaru Kitayama 2024-04-15 8:14 ` Steven Price 2024-04-15 8:14 ` Steven Price 2024-04-12 8:41 ` [PATCH v2 00/14] arm64: Support for running as a guest in Arm CCA Steven Price 2024-04-12 8:41 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 01/14] arm64: rsi: Add RSI definitions Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 02/14] arm64: Detect if in a realm and set RIPAS RAM Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-10 17:35 ` Catalin Marinas 2024-05-10 17:35 ` Catalin Marinas 2024-05-14 10:18 ` Suzuki K Poulose 2024-05-14 10:18 ` Suzuki K Poulose 2024-05-16 14:32 ` Catalin Marinas 2024-05-16 14:32 ` Catalin Marinas 2024-05-15 15:03 ` Steven Price 2024-05-15 15:03 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 03/14] arm64: realm: Query IPA size from the RMM Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-13 14:03 ` Catalin Marinas 2024-05-13 14:03 ` Catalin Marinas 2024-05-16 15:13 ` Steven Price 2024-05-16 15:13 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 04/14] arm64: Mark all I/O as non-secure shared Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 05/14] fixmap: Allow architecture overriding set_fixmap_io Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 06/14] arm64: Override set_fixmap_io Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-13 16:14 ` Catalin Marinas 2024-05-13 16:14 ` Catalin Marinas 2024-05-14 10:21 ` Suzuki K Poulose 2024-05-14 10:21 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 07/14] arm64: Make the PHYS_MASK_SHIFT dynamic Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-13 16:38 ` Catalin Marinas 2024-05-13 16:38 ` Catalin Marinas 2024-05-16 15:34 ` Steven Price 2024-05-16 15:34 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 08/14] arm64: Enforce bounce buffers for realm DMA Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-13 16:56 ` Catalin Marinas 2024-05-13 16:56 ` Catalin Marinas 2024-04-12 8:42 ` [PATCH v2 09/14] arm64: Enable memory encrypt for Realms Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-15 3:13 ` kernel test robot 2024-04-15 3:13 ` kernel test robot 2024-04-25 13:42 ` Suzuki K Poulose 2024-04-25 13:42 ` Suzuki K Poulose 2024-04-25 15:52 ` Steven Price 2024-04-25 15:52 ` Steven Price 2024-04-25 16:29 ` Suzuki K Poulose 2024-04-25 16:29 ` Suzuki K Poulose 2024-04-25 18:16 ` Emanuele Rocca 2024-04-25 18:16 ` Emanuele Rocca 2024-05-14 18:00 ` Catalin Marinas 2024-05-14 18:00 ` Catalin Marinas 2024-05-15 10:47 ` Suzuki K Poulose 2024-05-15 10:47 ` Suzuki K Poulose 2024-05-16 7:48 ` Catalin Marinas 2024-05-16 7:48 ` Catalin Marinas 2024-05-16 9:06 ` Suzuki K Poulose 2024-05-16 9:06 ` Suzuki K Poulose 2024-05-20 16:53 ` Catalin Marinas 2024-05-20 16:53 ` Catalin Marinas 2024-05-20 20:32 ` Michael Kelley 2024-05-20 20:32 ` Michael Kelley 2024-05-21 10:14 ` Catalin Marinas 2024-05-21 10:14 ` Catalin Marinas 2024-05-21 15:58 ` Michael Kelley 2024-05-21 15:58 ` Michael Kelley 2024-04-12 8:42 ` [PATCH v2 10/14] arm64: Force device mappings to be non-secure shared Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-15 9:01 ` Catalin Marinas 2024-05-15 9:01 ` Catalin Marinas 2024-05-15 11:00 ` Suzuki K Poulose 2024-05-15 11:00 ` Suzuki K Poulose 2024-05-17 9:34 ` Catalin Marinas 2024-05-17 9:34 ` Catalin Marinas 2024-04-12 8:42 ` [PATCH v2 11/14] efi: arm64: Map Device with Prot Shared Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 12/14] arm64: realm: Support nonsecure ITS emulation shared Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-15 11:01 ` Catalin Marinas 2024-05-15 11:01 ` Catalin Marinas 2024-05-22 15:52 ` Steven Price 2024-05-22 15:52 ` Steven Price 2024-05-22 17:05 ` Catalin Marinas 2024-05-22 17:05 ` Catalin Marinas 2024-05-23 9:57 ` Steven Price 2024-05-23 9:57 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 13/14] arm64: rsi: Interfaces to query attestation token Steven Price 2024-04-12 8:42 ` Steven Price 2024-05-15 11:10 ` Catalin Marinas 2024-05-15 11:10 ` Catalin Marinas 2024-05-22 15:52 ` Steven Price 2024-05-22 15:52 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 14/14] virt: arm-cca-guest: TSM_REPORT support for realms Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-24 13:06 ` Thomas Fossati 2024-04-24 13:06 ` Thomas Fossati 2024-04-24 13:27 ` Suzuki K Poulose 2024-04-24 13:27 ` Suzuki K Poulose 2024-04-24 13:19 ` Suzuki K Poulose 2024-04-24 13:19 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 00/43] arm64: Support for Arm CCA in KVM Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 01/43] KVM: Prepare for handling only shared mappings in mmu_notifier events Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-25 9:48 ` Fuad Tabba 2024-04-25 9:48 ` Fuad Tabba 2024-04-25 15:58 ` Steven Price 2024-04-25 15:58 ` Steven Price 2024-04-25 22:56 ` Sean Christopherson 2024-04-25 22:56 ` Sean Christopherson 2024-04-12 8:42 ` [PATCH v2 02/43] kvm: arm64: pgtable: Track the number of pages in the entry level Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 03/43] kvm: arm64: Include kvm_emulate.h in kvm/arm_psci.h Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 04/43] arm64: RME: Handle Granule Protection Faults (GPFs) Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-16 11:17 ` Suzuki K Poulose 2024-04-16 11:17 ` Suzuki K Poulose 2024-04-18 13:17 ` Steven Price 2024-04-18 13:17 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 05/43] arm64: RME: Add SMC definitions for calling the RMM Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-16 12:38 ` Suzuki K Poulose [this message] 2024-04-16 12:38 ` Suzuki K Poulose 2024-04-18 13:17 ` Steven Price 2024-04-18 13:17 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 06/43] arm64: RME: Add wrappers for RMI calls Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-16 13:14 ` Suzuki K Poulose 2024-04-16 13:14 ` Suzuki K Poulose 2024-04-19 11:18 ` Steven Price 2024-04-19 11:18 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 07/43] arm64: RME: Check for RME support at KVM init Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-16 13:30 ` Suzuki K Poulose 2024-04-16 13:30 ` Suzuki K Poulose 2024-04-22 15:39 ` Steven Price 2024-04-22 15:39 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 08/43] arm64: RME: Define the user ABI Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 09/43] arm64: RME: ioctls to create and configure realms Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-17 9:51 ` Suzuki K Poulose 2024-04-17 9:51 ` Suzuki K Poulose 2024-04-22 16:33 ` Steven Price 2024-04-22 16:33 ` Steven Price 2024-04-18 16:04 ` Suzuki K Poulose 2024-04-18 16:04 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 10/43] kvm: arm64: Expose debug HW register numbers for Realm Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 11/43] arm64: kvm: Allow passing machine type in KVM creation Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-17 10:20 ` Suzuki K Poulose 2024-04-17 10:20 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 12/43] arm64: RME: Keep a spare page delegated to the RMM Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-17 10:19 ` Suzuki K Poulose 2024-04-17 10:19 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 13/43] arm64: RME: RTT handling Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-17 13:37 ` Suzuki K Poulose 2024-04-17 13:37 ` Suzuki K Poulose 2024-04-24 10:59 ` Steven Price 2024-04-24 10:59 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 14/43] arm64: RME: Allocate/free RECs to match vCPUs Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-18 9:23 ` Suzuki K Poulose 2024-04-18 9:23 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 15/43] arm64: RME: Support for the VGIC in realms Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 16/43] KVM: arm64: Support timers in realm RECs Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-18 9:30 ` Suzuki K Poulose 2024-04-18 9:30 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 17/43] arm64: RME: Allow VMM to set RIPAS Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-19 9:34 ` Suzuki K Poulose 2024-04-19 9:34 ` Suzuki K Poulose 2024-04-19 10:20 ` Suzuki K Poulose 2024-04-19 10:20 ` Suzuki K Poulose 2024-05-01 15:47 ` Steven Price 2024-05-01 15:47 ` Steven Price 2024-05-02 10:16 ` Suzuki K Poulose 2024-05-02 10:16 ` Suzuki K Poulose 2024-04-25 9:53 ` Fuad Tabba 2024-04-25 9:53 ` Fuad Tabba 2024-05-01 14:27 ` Jean-Philippe Brucker 2024-05-01 14:27 ` Jean-Philippe Brucker 2024-05-01 14:56 ` Suzuki K Poulose 2024-05-01 14:56 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 18/43] arm64: RME: Handle realm enter/exit Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-19 13:00 ` Suzuki K Poulose 2024-04-19 13:00 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 19/43] KVM: arm64: Handle realm MMIO emulation Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 20/43] arm64: RME: Allow populating initial contents Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-19 13:17 ` Suzuki K Poulose 2024-04-19 13:17 ` Suzuki K Poulose 2024-04-12 8:42 ` [PATCH v2 21/43] arm64: RME: Runtime faulting of memory Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-25 10:43 ` Fuad Tabba 2024-04-25 10:43 ` Fuad Tabba 2024-04-12 8:42 ` [PATCH v2 22/43] KVM: arm64: Handle realm VCPU load Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 23/43] KVM: arm64: Validate register access for a Realm VM Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 24/43] KVM: arm64: Handle Realm PSCI requests Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 25/43] KVM: arm64: WARN on injected undef exceptions Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 26/43] arm64: Don't expose stolen time for realm guests Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 27/43] arm64: rme: allow userspace to inject aborts Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 28/43] arm64: rme: support RSI_HOST_CALL Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 29/43] arm64: rme: Allow checking SVE on VM instance Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 30/43] arm64: RME: Always use 4k pages for realms Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 31/43] arm64: rme: Prevent Device mappings for Realms Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 32/43] arm_pmu: Provide a mechanism for disabling the physical IRQ Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-12 8:42 ` [PATCH v2 33/43] arm64: rme: Enable PMU support with a realm guest Steven Price 2024-04-12 8:42 ` Steven Price 2024-04-13 23:44 ` kernel test robot 2024-04-13 23:44 ` kernel test robot 2024-04-18 16:06 ` Suzuki K Poulose 2024-04-18 16:06 ` Suzuki K Poulose 2024-04-12 8:43 ` [PATCH v2 34/43] kvm: rme: Hide KVM_CAP_READONLY_MEM for realm guests Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 35/43] arm64: RME: Propagate number of breakpoints and watchpoints to userspace Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 36/43] arm64: RME: Set breakpoint parameters through SET_ONE_REG Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 37/43] arm64: RME: Initialize PMCR.N with number counter supported by RMM Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 38/43] arm64: RME: Propagate max SVE vector length from RMM Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 39/43] arm64: RME: Configure max SVE vector length for a Realm Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 40/43] arm64: RME: Provide register list for unfinalized RME RECs Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 41/43] arm64: RME: Provide accurate register list Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 8:43 ` [PATCH v2 42/43] arm64: kvm: Expose support for private memory Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-25 14:44 ` Fuad Tabba 2024-04-25 14:44 ` Fuad Tabba 2024-04-12 8:43 ` [PATCH v2 43/43] KVM: arm64: Allow activating realms Steven Price 2024-04-12 8:43 ` Steven Price 2024-04-12 16:52 ` [v2] Support for Arm CCA VMs on Linux Jean-Philippe Brucker 2024-04-12 16:52 ` Jean-Philippe Brucker
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=e6ece61d-ceb6-44f3-a17c-c678b4562991@arm.com \ --to=suzuki.poulose@arm.com \ --cc=alexandru.elisei@arm.com \ --cc=catalin.marinas@arm.com \ --cc=christoffer.dall@arm.com \ --cc=gankulkarni@os.amperecomputing.com \ --cc=james.morse@arm.com \ --cc=joey.gouly@arm.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.linux.dev \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-coco@lists.linux.dev \ --cc=linux-kernel@vger.kernel.org \ --cc=maz@kernel.org \ --cc=oliver.upton@linux.dev \ --cc=steven.price@arm.com \ --cc=tabba@google.com \ --cc=will@kernel.org \ --cc=yuzenghui@huawei.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.