Skip to content

Commit eaf0b53

Browse files
committed
plat-qcom: hoya: lemans: wire up fuse PTA and QFPROM for PAS authentication
Extend Lemans' target.mk so CFG_QCOM_PAS_AUTH pulls in the whole fuse access chain the signature-authentication path needs: CFG_QCOM_PAS_AUTH=y -> force CFG_QCOM_FUSE_PTA=y (fuse PTA the TA reads at runtime) -> force CFG_QCOM_QFPROM=y (driver behind the fuse PTA) -> force CFG_QCOM_CMD_DB=y (voltage-rail lookup for fuse writes) -> force CFG_QCOM_RPMH_CLIENT=y (voltage-rail sequencing) The old CFG_QCOM_QFPROM_FUSEPROV chain that also enabled QFPROM is folded into the same block so QFPROM_FUSEPROV and the new fuse-PTA consumer share one enable and there is no accidental drift between them. With this change, a stock Lemans build now brings up the entire PAS authentication stack (segment hash verification and signature authentication) end to end: PAS PTA, fuse PTA, qfprom driver, and the qcom_pas TA. Kodiak keeps the plain PTA-side flow untouched. Signed-off-by: Selvam Sathappan Periakaruppan <speriaka@qti.qualcomm.com> Assisted-by: Cline:gpt-5
1 parent 1a065f1 commit eaf0b53

1 file changed

Lines changed: 20 additions & 6 deletions

File tree

core/arch/arm/plat-qcom/hoya/lemans/target.mk

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@ ifneq ($(CFG_INSECURE),y)
77
CFG_QCOM_QFPROM_FUSEPROV ?= y
88
endif
99

10-
ifeq ($(CFG_QCOM_QFPROM_FUSEPROV),y)
11-
$(call force,CFG_QCOM_CMD_DB,y)
12-
$(call force,CFG_QCOM_RPMH_CLIENT,y)
13-
$(call force,CFG_QCOM_QFPROM,y)
14-
endif
15-
1610
CFG_QCOM_PAS_PTA ?= y
1711
ifeq ($(CFG_QCOM_PAS_PTA),y)
1812
# Each PAS subsystem maps its controller window at runtime via
@@ -32,3 +26,23 @@ CFG_IN_TREE_EARLY_TAS += qcom_pas/cff7d191-7ca0-4784-af13-48223b9a4fbe
3226
# fuse-bound bindings before releasing the peripheral from reset.
3327
CFG_QCOM_PAS_AUTH ?= y
3428
endif
29+
30+
# Signature authentication reads the OEM root-of-trust anchor, anti-rollback
31+
# version, device identity and other fuses via the fuse PTA; enable it (and
32+
# therefore the underlying qfprom driver) whenever PAS authentication is on.
33+
ifeq ($(CFG_QCOM_PAS_AUTH),y)
34+
$(call force,CFG_QCOM_FUSE_PTA,y)
35+
endif
36+
37+
# QFPROM backs fuse provisioning (writes) and the fuse PTA (reads) alike;
38+
# enable the driver whenever either consumer is on.
39+
ifneq ($(filter y,$(CFG_QCOM_QFPROM_FUSEPROV) $(CFG_QCOM_FUSE_PTA)),)
40+
$(call force,CFG_QCOM_QFPROM,y)
41+
endif
42+
43+
# CMD_DB/RPMH_CLIENT back the qfprom driver's fuse-write path (voltage rail
44+
# sequencing), needed whenever qfprom itself is enabled.
45+
ifeq ($(CFG_QCOM_QFPROM),y)
46+
$(call force,CFG_QCOM_CMD_DB,y)
47+
$(call force,CFG_QCOM_RPMH_CLIENT,y)
48+
endif

0 commit comments

Comments
 (0)