From: Steven Price <steven.price@arm.com>
To: kvm@vger.kernel.org, kvmarm@lists.linux.dev
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>,
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>,
Gavin Shan <gshan@redhat.com>,
Shanker Donthineni <sdonthineni@nvidia.com>,
Alper Gun <alpergun@google.com>,
"Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
Steven Price <steven.price@arm.com>
Subject: [PATCH v7 05/11] arm64: rsi: Map unprotected MMIO as decrypted
Date: Thu, 17 Oct 2024 14:14:28 +0100 [thread overview]
Message-ID: <20241017131434.40935-6-steven.price@arm.com> (raw)
In-Reply-To: <20241017131434.40935-1-steven.price@arm.com>
From: Suzuki K Poulose <suzuki.poulose@arm.com>
Instead of marking every MMIO as shared, check if the given region is
"Protected" and apply the permissions accordingly.
Reviewed-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
---
New patch for v5
---
arch/arm64/kernel/rsi.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/kernel/rsi.c b/arch/arm64/kernel/rsi.c
index 7e7934c4fca0..3e0c83e2296f 100644
--- a/arch/arm64/kernel/rsi.c
+++ b/arch/arm64/kernel/rsi.c
@@ -6,6 +6,8 @@
#include <linux/jump_label.h>
#include <linux/memblock.h>
#include <linux/psci.h>
+
+#include <asm/io.h>
#include <asm/rsi.h>
static struct realm_config config;
@@ -93,6 +95,16 @@ bool __arm64_is_protected_mmio(phys_addr_t base, size_t size)
}
EXPORT_SYMBOL(__arm64_is_protected_mmio);
+static int realm_ioremap_hook(phys_addr_t phys, size_t size, pgprot_t *prot)
+{
+ if (__arm64_is_protected_mmio(phys, size))
+ *prot = pgprot_encrypted(*prot);
+ else
+ *prot = pgprot_decrypted(*prot);
+
+ return 0;
+}
+
void __init arm64_rsi_init(void)
{
if (arm_smccc_1_1_get_conduit() != SMCCC_CONDUIT_SMC)
@@ -103,6 +115,9 @@ void __init arm64_rsi_init(void)
return;
prot_ns_shared = BIT(config.ipa_bits - 1);
+ if (arm64_ioremap_prot_hook_register(realm_ioremap_hook))
+ return;
+
arm64_rsi_setup_memory();
static_branch_enable(&rsi_present);
--
2.34.1
next prev parent reply other threads:[~2024-10-17 13:15 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-17 13:14 [PATCH v7 00/11] arm64: Support for running as a guest in Arm CCA Steven Price
2024-10-17 13:14 ` [PATCH v7 01/11] arm64: rsi: Add RSI definitions Steven Price
2024-10-17 13:14 ` [PATCH v7 02/11] arm64: Detect if in a realm and set RIPAS RAM Steven Price
2024-10-17 13:14 ` [PATCH v7 03/11] arm64: realm: Query IPA size from the RMM Steven Price
2024-10-17 13:14 ` [PATCH v7 04/11] arm64: rsi: Add support for checking whether an MMIO is protected Steven Price
2024-10-17 13:14 ` Steven Price [this message]
2024-10-17 13:14 ` [PATCH v7 06/11] efi: arm64: Map Device with Prot Shared Steven Price
2024-10-17 13:14 ` [PATCH v7 07/11] arm64: Enforce bounce buffers for realm DMA Steven Price
2024-10-17 13:14 ` [PATCH v7 08/11] arm64: mm: Avoid TLBI when marking pages as valid Steven Price
2024-10-17 13:14 ` [PATCH v7 09/11] arm64: Enable memory encrypt for Realms Steven Price
2025-02-19 14:30 ` Steven Price
2025-02-26 19:03 ` Catalin Marinas
2025-02-27 0:23 ` Will Deacon
2025-02-27 10:45 ` Steven Price
2025-02-27 10:55 ` Catalin Marinas
2025-02-27 17:22 ` Will Deacon
2025-02-27 21:21 ` Catalin Marinas
2024-10-17 13:14 ` [PATCH v7 10/11] virt: arm-cca-guest: TSM_REPORT support for realms Steven Price
2024-10-22 11:06 ` Catalin Marinas
2024-10-23 3:33 ` Gavin Shan
2024-10-23 3:29 ` Gavin Shan
2024-12-04 21:16 ` Dan Williams
2024-12-05 11:51 ` Catalin Marinas
2024-10-17 13:14 ` [PATCH v7 11/11] arm64: Document Arm Confidential Compute Steven Price
2024-10-23 10:02 ` [PATCH v7 00/11] arm64: Support for running as a guest in Arm CCA Catalin Marinas
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=20241017131434.40935-6-steven.price@arm.com \
--to=steven.price@arm.com \
--cc=alexandru.elisei@arm.com \
--cc=alpergun@google.com \
--cc=aneesh.kumar@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=christoffer.dall@arm.com \
--cc=gankulkarni@os.amperecomputing.com \
--cc=gshan@redhat.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=sdonthineni@nvidia.com \
--cc=suzuki.poulose@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®