* [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1
@ 2023-02-14 17:19 Jean-Philippe Brucker
2023-02-14 17:19 ` [PATCH v2 1/2] hw/arm/smmu-common: Support 64-bit addresses Jean-Philippe Brucker
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Jean-Philippe Brucker @ 2023-02-14 17:19 UTC (permalink / raw)
To: eric.auger
Cc: peter.maydell, richard.henderson, qemu-devel, qemu-arm,
ola.hugosson, Jean-Philippe Brucker
Two small changes to support TTB1. Since [v1] I removed the unused
SMMU_MAX_VA_BITS and added tags, thanks!
[v1] https://lore.kernel.org/qemu-devel/20230210163731.970130-1-jean-philippe@linaro.org/
Jean-Philippe Brucker (2):
hw/arm/smmu-common: Support 64-bit addresses
hw/arm/smmu-common: Fix TTB1 handling
include/hw/arm/smmu-common.h | 2 --
hw/arm/smmu-common.c | 4 ++--
2 files changed, 2 insertions(+), 4 deletions(-)
--
2.39.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] hw/arm/smmu-common: Support 64-bit addresses
2023-02-14 17:19 [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1 Jean-Philippe Brucker
@ 2023-02-14 17:19 ` Jean-Philippe Brucker
2023-02-14 18:37 ` Eric Auger
2023-02-14 17:19 ` [PATCH v2 2/2] hw/arm/smmu-common: Fix TTB1 handling Jean-Philippe Brucker
2023-02-16 13:53 ` [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1 Peter Maydell
2 siblings, 1 reply; 5+ messages in thread
From: Jean-Philippe Brucker @ 2023-02-14 17:19 UTC (permalink / raw)
To: eric.auger
Cc: peter.maydell, richard.henderson, qemu-devel, qemu-arm,
ola.hugosson, Jean-Philippe Brucker
Addresses targeting the second translation table (TTB1) in the SMMU have
all upper bits set. Ensure the IOMMU region covers all 64 bits.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
include/hw/arm/smmu-common.h | 2 --
hw/arm/smmu-common.c | 2 +-
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/include/hw/arm/smmu-common.h b/include/hw/arm/smmu-common.h
index c5683af07d..9fcff26357 100644
--- a/include/hw/arm/smmu-common.h
+++ b/include/hw/arm/smmu-common.h
@@ -27,8 +27,6 @@
#define SMMU_PCI_DEVFN_MAX 256
#define SMMU_PCI_DEVFN(sid) (sid & 0xFF)
-#define SMMU_MAX_VA_BITS 48
-
/*
* Page table walk error types
*/
diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c
index 733c964778..2b8c67b9a1 100644
--- a/hw/arm/smmu-common.c
+++ b/hw/arm/smmu-common.c
@@ -439,7 +439,7 @@ static AddressSpace *smmu_find_add_as(PCIBus *bus, void *opaque, int devfn)
memory_region_init_iommu(&sdev->iommu, sizeof(sdev->iommu),
s->mrtypename,
- OBJECT(s), name, 1ULL << SMMU_MAX_VA_BITS);
+ OBJECT(s), name, UINT64_MAX);
address_space_init(&sdev->as,
MEMORY_REGION(&sdev->iommu), name);
trace_smmu_add_mr(name);
--
2.39.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] hw/arm/smmu-common: Fix TTB1 handling
2023-02-14 17:19 [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1 Jean-Philippe Brucker
2023-02-14 17:19 ` [PATCH v2 1/2] hw/arm/smmu-common: Support 64-bit addresses Jean-Philippe Brucker
@ 2023-02-14 17:19 ` Jean-Philippe Brucker
2023-02-16 13:53 ` [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1 Peter Maydell
2 siblings, 0 replies; 5+ messages in thread
From: Jean-Philippe Brucker @ 2023-02-14 17:19 UTC (permalink / raw)
To: eric.auger
Cc: peter.maydell, richard.henderson, qemu-devel, qemu-arm,
ola.hugosson, Jean-Philippe Brucker
Addresses targeting the second translation table (TTB1) in the SMMU have
all upper bits set (except for the top byte when TBI is enabled). Fix
the TTB1 check.
Reported-by: Ola Hugosson <ola.hugosson@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
---
hw/arm/smmu-common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c
index 2b8c67b9a1..0a5a60ca1e 100644
--- a/hw/arm/smmu-common.c
+++ b/hw/arm/smmu-common.c
@@ -249,7 +249,7 @@ SMMUTransTableInfo *select_tt(SMMUTransCfg *cfg, dma_addr_t iova)
/* there is a ttbr0 region and we are in it (high bits all zero) */
return &cfg->tt[0];
} else if (cfg->tt[1].tsz &&
- !extract64(iova, 64 - cfg->tt[1].tsz, cfg->tt[1].tsz - tbi_byte)) {
+ sextract64(iova, 64 - cfg->tt[1].tsz, cfg->tt[1].tsz - tbi_byte) == -1) {
/* there is a ttbr1 region and we are in it (high bits all one) */
return &cfg->tt[1];
} else if (!cfg->tt[0].tsz) {
--
2.39.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] hw/arm/smmu-common: Support 64-bit addresses
2023-02-14 17:19 ` [PATCH v2 1/2] hw/arm/smmu-common: Support 64-bit addresses Jean-Philippe Brucker
@ 2023-02-14 18:37 ` Eric Auger
0 siblings, 0 replies; 5+ messages in thread
From: Eric Auger @ 2023-02-14 18:37 UTC (permalink / raw)
To: Jean-Philippe Brucker
Cc: peter.maydell, richard.henderson, qemu-devel, qemu-arm,
ola.hugosson
Hi Jean,
On 2/14/23 18:19, Jean-Philippe Brucker wrote:
> Addresses targeting the second translation table (TTB1) in the SMMU have
> all upper bits set. Ensure the IOMMU region covers all 64 bits.
>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Thanks
Eric
> ---
> include/hw/arm/smmu-common.h | 2 --
> hw/arm/smmu-common.c | 2 +-
> 2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/include/hw/arm/smmu-common.h b/include/hw/arm/smmu-common.h
> index c5683af07d..9fcff26357 100644
> --- a/include/hw/arm/smmu-common.h
> +++ b/include/hw/arm/smmu-common.h
> @@ -27,8 +27,6 @@
> #define SMMU_PCI_DEVFN_MAX 256
> #define SMMU_PCI_DEVFN(sid) (sid & 0xFF)
>
> -#define SMMU_MAX_VA_BITS 48
> -
> /*
> * Page table walk error types
> */
> diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c
> index 733c964778..2b8c67b9a1 100644
> --- a/hw/arm/smmu-common.c
> +++ b/hw/arm/smmu-common.c
> @@ -439,7 +439,7 @@ static AddressSpace *smmu_find_add_as(PCIBus *bus, void *opaque, int devfn)
>
> memory_region_init_iommu(&sdev->iommu, sizeof(sdev->iommu),
> s->mrtypename,
> - OBJECT(s), name, 1ULL << SMMU_MAX_VA_BITS);
> + OBJECT(s), name, UINT64_MAX);
> address_space_init(&sdev->as,
> MEMORY_REGION(&sdev->iommu), name);
> trace_smmu_add_mr(name);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1
2023-02-14 17:19 [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1 Jean-Philippe Brucker
2023-02-14 17:19 ` [PATCH v2 1/2] hw/arm/smmu-common: Support 64-bit addresses Jean-Philippe Brucker
2023-02-14 17:19 ` [PATCH v2 2/2] hw/arm/smmu-common: Fix TTB1 handling Jean-Philippe Brucker
@ 2023-02-16 13:53 ` Peter Maydell
2 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2023-02-16 13:53 UTC (permalink / raw)
To: Jean-Philippe Brucker
Cc: eric.auger, richard.henderson, qemu-devel, qemu-arm, ola.hugosson
On Tue, 14 Feb 2023 at 17:21, Jean-Philippe Brucker
<jean-philippe@linaro.org> wrote:
>
> Two small changes to support TTB1. Since [v1] I removed the unused
> SMMU_MAX_VA_BITS and added tags, thanks!
>
> [v1] https://lore.kernel.org/qemu-devel/20230210163731.970130-1-jean-philippe@linaro.org/
>
> Jean-Philippe Brucker (2):
> hw/arm/smmu-common: Support 64-bit addresses
> hw/arm/smmu-common: Fix TTB1 handling
Applied to target-arm.next, thanks.
-- PMM
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-02-16 13:53 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-14 17:19 [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1 Jean-Philippe Brucker
2023-02-14 17:19 ` [PATCH v2 1/2] hw/arm/smmu-common: Support 64-bit addresses Jean-Philippe Brucker
2023-02-14 18:37 ` Eric Auger
2023-02-14 17:19 ` [PATCH v2 2/2] hw/arm/smmu-common: Fix TTB1 handling Jean-Philippe Brucker
2023-02-16 13:53 ` [PATCH v2 0/2] hw/arm/smmu: Fixes for TTB1 Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).