Skip to content

PENDING: misc: fastrpc: map ADSP remote heap into remoteproc IOMMU domain#732

Open
quic-anane wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
quic-anane:KVM_remote_heap
Open

PENDING: misc: fastrpc: map ADSP remote heap into remoteproc IOMMU domain#732
quic-anane wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
quic-anane:KVM_remote_heap

Conversation

@quic-anane

@quic-anane quic-anane commented Jun 17, 2026

Copy link
Copy Markdown

When the remoteproc has an IOMMU (kernel running at EL2 without a separate hypervisor), memory carveouts must be explicitly mapped into the remoteproc's IOMMU domain so the DSP can access them. Without this mapping the DSP triggers an SMMU translation fault when accessing the remote heap carveout used for audio PD static process creation.

Add has_iommu to fastrpc_channel_ctx, set from the "iommus" property of the remoteproc DT node. When set, map the ADSP remote heap carveout into the remoteproc's IOMMU domain using an identity mapping (IOVA == PA) via iommu_map(), and skip qcom_scm_assign_mem() which is only needed when a separate hypervisor manages inter-VM memory access control.

Introduce fastrpc_remote_heap_map() and fastrpc_remote_heap_unmap() helpers to encapsulate the IOMMU domain lookup and map/unmap.

CRs-Fixed: 4564170
qli-2.0 GA Critical Fix

…main

When the remoteproc has an IOMMU (kernel running at EL2 without a
separate hypervisor), memory carveouts must be explicitly mapped into
the remoteproc's IOMMU domain so the DSP can access them.  Without
this mapping the DSP triggers an SMMU translation fault when accessing
the remote heap carveout used for audio PD static process creation.

Add has_iommu to fastrpc_channel_ctx, set from the "iommus" property
of the remoteproc DT node.  When set, map the ADSP remote heap
carveout into the remoteproc's IOMMU domain using an identity mapping
(IOVA == PA) via iommu_map(), and skip qcom_scm_assign_mem() which is
only needed when a separate hypervisor manages inter-VM memory access
control.

Introduce fastrpc_remote_heap_map() and fastrpc_remote_heap_unmap()
helpers to encapsulate the IOMMU domain lookup and map/unmap.

Signed-off-by: Anandu Krishnan E <anandu.e@oss.qualcomm.com>
@quic-anane quic-anane requested review from a team, aiquny, idlethread and ndechesne June 17, 2026 15:55
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No Change Task Found

No associated change tasks found for CR 4564170 on any of the following entities:

Entities:

  • kernel.qli.2.0

CR: 4564170

Please ensure the CR has a change task associated with at least one of the entities for this branch.

@sgaud-quic

Copy link
Copy Markdown
Contributor

@quic-anane please provide exception approval for PENDING change.

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