Skip to content

media: iris: Port firmware loading without TZ/PAS from venus - #607

Closed
strongtz wants to merge 1 commit into
radxa:linux-7.0.11from
strongtz:iris-el2
Closed

strongtz wants to merge 1 commit into
radxa:linux-7.0.11from
strongtz:iris-el2

Conversation

@strongtz

Copy link
Copy Markdown

Required for working iris in EL2 on sc8280xp/qcs6490

On Qualcomm compute platforms such as X1E, there is community-maintained
support for running without the Qualcomm hypervisor (QHEE/Gunyah) in EL2.
This is enabled by applying the -el2.dtso (here: x1-el2.dtso).

As shown by Mukesh, the reset and IOMMU management for remoteprocs like
Iris is implemented in the hypervisor for older targets such as X1E [1],
so this functionality is missing when running in EL2.

To avoid introducing kernel errors for this configuration when adding Iris
support for X1E, we need to add support for starting Iris without the
firmware PAS service in the TZ or hypervisor firmware. All the necessary
code for this already exists in venus/firmware.c, it was just not ported
over to iris. The "video-firmware" node is even documented in the
dt-bindings for iris (through qcom,venus-common.yaml), but not currently
used by the driver.

Port the necessary code for this from venus/firmware.c, but remove the old
A9SS sequence and do some cleanup to fit better into the new iris driver.
For now the "non_tz" boot sequence is used when there is a "video-firmware"
subnode defined in the device tree with the IOMMU for the Iris firmware.
There is ongoing work for newer platforms to use TZ/PAS for resets and
perform just the IOMMU management in Linux. The IOMMU code in this commit
can be reused for that by setting core->use_tz set to true.

[1]: https://resources.linaro.org/en/resource/sF8jXifdb9V1mUefdbfafa

Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
@RadxaStephen

Copy link
Copy Markdown
Member

Merged.

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.

3 participants