Skip to content

[PW_SID:1126629] [v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers#2272

Closed
linux-riscv-bot wants to merge 2 commits into
workflow__riscv__fixesfrom
pw1126629
Closed

[PW_SID:1126629] [v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers#2272
linux-riscv-bot wants to merge 2 commits into
workflow__riscv__fixesfrom
pw1126629

Conversation

@linux-riscv-bot

Copy link
Copy Markdown

PR for series 1126629 applied to workflow__riscv__fixes

Name: [v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1126629
Version: 3

Linux RISC-V bot and others added 2 commits July 11, 2026 01:54
The RISC-V IOMMU specification [1] permits 64-bit registers to be accessed
using two 32-bit transactions, high half first, and leaves the single-copy
atomicity of 8-byte IOMMU register accesses unspecified.

Use the generic hi_lo_readq_relaxed() and hi_lo_writeq_relaxed() helpers
for ordinary 64-bit IOMMU registers. For DDTP, poll BUSY in the low half,
then read the high half and compose the register value from the polled low
half. HPM counter reads require a rollover-aware sequence and remain
outside these accessors.

This follows the 32-bit access direction proposed by Guo Ren [2] and uses
the generic non-atomic MMIO helpers suggested by David Laight.

[1] https://docs.riscv.org/reference/iommu/
[2] https://lore.kernel.org/r/20250903144217.837448-1-guoren@kernel.org

Suggested-by: Guo Ren <guoren@kernel.org>
Suggested-by: David Laight <david.laight.linux@gmail.com>
Signed-off-by: Zhanpeng Zhang <zhangzhanpeng.jasper@bytedance.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 120.06 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1426.84 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1877.69 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 20.57 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 21.97 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 0.83 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 87.56 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
kdoc
Desc: Detects for kdoc errors
Duration: 0.75 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
module-param
Desc: Detect module_param changes
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v3] iommu/riscv: Use 32-bit MMIO accesses for 64-bit registers"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.27 seconds
Result: PASS

@linux-riscv-bot
linux-riscv-bot force-pushed the workflow__riscv__fixes branch 6 times, most recently from 8ca72ef to 60e0882 Compare July 19, 2026 17:58
@linux-riscv-bot
linux-riscv-bot force-pushed the workflow__riscv__fixes branch from 60e0882 to 36eafdd Compare July 21, 2026 01:54
@linux-riscv-bot
linux-riscv-bot deleted the pw1126629 branch July 21, 2026 01:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants