Skip to content

Commit 71e667a

Browse files
committed
plat-qcom: hoya: lemans: wire up fuse PTA and QFPROM for PAS authentication
Signature authentication reads device fuses at runtime, so enabling CFG_QCOM_PAS_AUTH is not enough on its own - the fuse PTA and the qfprom driver behind it (and the CMD_DB/RPMH client its fuse-write path needs) have to come up with it. Force that whole chain from CFG_QCOM_PAS_AUTH so a stock Lemans build brings up the complete PAS authentication stack end to end. Fold the existing fuse-provisioning enable into the same block so provisioning and the new fuse-PTA consumer share one QFPROM enable and cannot drift apart. Signed-off-by: Selvam Sathappan Periakaruppan <speriaka@qti.qualcomm.com> Assisted-by: Claude:sonnet-5
1 parent 8896269 commit 71e667a

1 file changed

Lines changed: 24 additions & 12 deletions

File tree

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

Lines changed: 24 additions & 12 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

1812
ifeq ($(CFG_QCOM_PAS_PTA),y)
@@ -22,12 +16,30 @@ ifeq ($(CFG_QCOM_PAS_PTA),y)
2216
CFG_RESERVED_VASPACE_SIZE ?= (256 * 1024 * 1024)
2317
CFG_IN_TREE_EARLY_TAS += qcom_pas/cff7d191-7ca0-4784-af13-48223b9a4fbe
2418

25-
# Verify PIL firmware at AUTH_AND_RESET: re-hash the segments the REE loaded
26-
# and compare them against the per-segment hash table in the image metadata,
27-
# before releasing the peripheral from reset.
28-
#
29-
# TODO: signature authentication of that hash table (certificate chain and
30-
# fuse bindings) will be added incrementally.
19+
# Authenticate PIL firmware: at INIT_IMAGE validate the certificate chain,
20+
# signature and fuse bindings, then at AUTH_AND_RESET re-hash the loaded
21+
# segments against the authenticated per-segment hash table before releasing
22+
# the peripheral from reset.
3123
CFG_QCOM_PAS_AUTH ?= y
3224
endif
3325
CFG_QCOM_HWKM ?= y
26+
27+
# Signature authentication reads the OEM root-of-trust anchor, anti-rollback
28+
# version, device identity and other fuses via the fuse PTA; enable it (and
29+
# therefore the underlying qfprom driver) whenever PAS authentication is on.
30+
ifeq ($(CFG_QCOM_PAS_AUTH),y)
31+
$(call force,CFG_QCOM_FUSE_PTA,y)
32+
endif
33+
34+
# QFPROM backs fuse provisioning (writes) and the fuse PTA (reads) alike;
35+
# enable the driver whenever either consumer is on.
36+
ifneq ($(filter y,$(CFG_QCOM_QFPROM_FUSEPROV) $(CFG_QCOM_FUSE_PTA)),)
37+
$(call force,CFG_QCOM_QFPROM,y)
38+
endif
39+
40+
# CMD_DB/RPMH_CLIENT back the qfprom driver's fuse-write path (voltage rail
41+
# sequencing), needed whenever qfprom itself is enabled.
42+
ifeq ($(CFG_QCOM_QFPROM),y)
43+
$(call force,CFG_QCOM_CMD_DB,y)
44+
$(call force,CFG_QCOM_RPMH_CLIENT,y)
45+
endif

0 commit comments

Comments
 (0)