As discussed in [4] posting this series after dropping IPQ5424 support
to remove dependency on Sricharan's tmel-qmp mailbox driver series v4 [1].
Imported from 20251215-ipq5018-wifi-v7-0-ec4adba941b5@outlook.com.
Imported from f20250417061245.497803-1-gokul.sriram.p@oss.qualcomm.com
I've resumed Gokul's work as the last submission dates back April 2025.
- Secure PIL is signed, firmware images which only TrustZone (TZ)
can authenticate and load. Linux kernel will send a request to TZ to
authenticate and load the PIL images.
- When secure PIL support was added to the existing wcss PIL driver
earlier in [2], Bjorn suggested not to overload the existing WCSS
rproc driver, instead post a new driver for PAS based IPQ WCSS driver.
This series adds a new secure PIL driver for the same.
- Also adds changes to scm to pass metadata size as required for IPQ5332,
reposted from [3].
[1]
https://patchwork.kernel.org/project/linux-arm-msm/cover/20250327181750.3733881-1-quic_srichara@quicinc.com/
[2]
https://patchwork.kernel.org/project/linux-arm-msm/patch/1611984013-10201-3-git-send-email-gokulsri@codeaurora.org/
[3]
https://patchwork.kernel.org/project/linux-arm-msm/patch/20240820055618.267554-6-quic_gokulsri@quicinc.com/
[4]
https://lore.kernel.org/linux-arm-msm/aUN7Aer%2FGG1d5Om9@hu-varada-blr.qualcomm.com/
Changes in v8:
- Dropped Krzysztof's 'Reviewed-by' as the bindings file has changed significantly
* IPQ5018 support added in v6
* IPQ5424 support dropped in v8
* Updated to use IPQ9574 as example
- dt-bindings-check and dtbs-check passed
- Dropped IPQ5424 support from drivers/remoteproc/qcom_q6v5_wcss_sec.c
- Updated copyrights of drivers/remoteproc/qcom_q6v5_wcss_sec.c
- Change 'qcom,smem-state-names' order to resolve dt-bindings-check error in ipq5018.dtsi
- Dropped changes to ipq5424.dtsi
- Link to v7: https://lore.kernel.org/linux-arm-msm/20251215-ipq5018-wifi-v7-0-ec4adba941b5@outlook.com/
Changes in v7:
- correctly sorted QCOM_SCM_PIL_PAS_INIT_IMAGE_V2 by command ID
- correctly sorted smp2p-wcss nodes in dtsi files
- Link to v6: https://lore.kernel.org/r/20251208-ipq5018-wifi-v6-0-d0ce2facaa5f@outlook.com
Changes in v6:
- added patch to fix IPC register offset for ipq5424
- changed phandle description for mboxes property in dt-bindings
- updated bindings to define the right clocks per SoC based on
compatible. Ran make dt_binding_check for validation of all
SoCs
- use of more descriptive match data property (use_tmelcom) and
added a condition in wcss_start to not error out if tmelcom
isn't used
- mitigated potential off-by-one
- adopted use of of_reserved_mem_region_to_resource to acquire
memory-region resource
- added driver support for ipq5018 SoC
- corrected size of reg properties as per Konrad's comments
- added patch to bring up Q6 in ipq5018 dtsi
- Link to v5: https://lore.kernel.org/r/20250417061245.497803-1-gokul.sriram.p@oss.qualcomm.com
Changes in v5:
- retained all the patches as in v3 and addressed comments in
v3.
- reverted changes to dt-bindings done in v4 and retained as in
v3 and fixed firmware format from .mdt to .mbn and retained
reviewed-by.
- dropped 2 patches in v4 that adds support for q6 dtb loading.
Will post them as a new series.
Following tests were done:
- checkpatch
- dt_binding_check and dtbs_check
- Link to v4: https://lore.kernel.org/r/20250327181750.3733881-1-quic_srichara@quicinc.com
Changes in v4:
- changed q6 firmware image format from .mdt to .mbn
- corrected arrangement of variable assignemnts as per comments
in qcom_scm.c
- added scm call to get board machid
- added support for q6 dtb loading with support for additional
reserved memory for q6 dtb in .mbn format
- updated dt-bindings to include new dts entry qcom,q6-dtb-info
and additional item in memory-region for q6 dtb region.
- removed unnecessary dependency for QCOM_Q6V5_WCSS_SEC in
Kconfig
- removed unwanted header files in qcom_q6v5_wcss_sec.c
- removed repeated dtb parsing during runtime in qcom_q6v5_wcss_sec.c
- added required check for using tmelcom, if available. Enabled
fallback to scm based authentication, if tmelcom is unavailable.
- added necessary padding for 8digt hex address in dts
- Link to v3: https://lore.kernel.org/r/20250107101320.2078139-1-quic_gokulsri@quicinc.com
Following tests were done:
- checkpatch
- kernel-doc
- dt_binding_check and dtbs_check
Changes in v3:
- fixed copyright years and markings based on Jeff's comments.
- replaced devm_ioremap_wc() with ioremap_wc() in
wcss_sec_copy_segment().
- replaced rproc_alloc() and rproc_add() with their devres
counterparts.
- added mailbox call to tmelcom for secure image authentication
as required for IPQ5424. Added ipq5424 APCS comatible required.
- added changes to scm call to pass metadata size as required for
IPQ5332.
- Link to v2: https://lore.kernel.org/r/20240829134021.1452711-1-quic_gokulsri@quicinc.com
Changes in v2:
- Removed dependency of this series to q6 clock removal series
as recommended by Krzysztof
- Link to v1: https://lore.kernel.org/r/20240820085517.435566-1-quic_gokulsri@quicinc.com
George Moussalem (1):
arm64: dts: qcom: ipq5018: add nodes to bring up q6
Manikanta Mylavarapu (4):
firmware: qcom_scm: ipq5332: add support to pass metadata size
dt-bindings: remoteproc: qcom: document hexagon based WCSS secure PIL
arm64: dts: qcom: ipq5332: add nodes to bring up q6
arm64: dts: qcom: ipq9574: add nodes to bring up q6
Vignesh Viswanathan (1):
remoteproc: qcom: add hexagon based WCSS secure PIL driver
.../remoteproc/qcom,wcss-sec-pil.yaml | 172 +++++++++
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 64 ++++
arch/arm64/boot/dts/qcom/ipq5332.dtsi | 64 +++-
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 60 +++-
drivers/firmware/qcom/qcom_scm.c | 17 +-
drivers/firmware/qcom/qcom_scm.h | 1 +
drivers/remoteproc/Kconfig | 19 +
drivers/remoteproc/Makefile | 1 +
drivers/remoteproc/qcom_q6v5_wcss_sec.c | 328 ++++++++++++++++++
include/linux/remoteproc.h | 2 +
10 files changed, 722 insertions(+), 6 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,wcss-sec-pil.yaml
create mode 100644 drivers/remoteproc/qcom_q6v5_wcss_sec.c
base-commit: ff7278c6e337027671acae5991dfaa5828ee3cce
--
2.34.1