blob: b182b0b588f934972ce80cfbbf9f1447f751d364 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
arm64: dts: qcom: purwa: Microsoft Surface Pro 12in: point iris at the OEM video firmware
The generic qcom/vpu/vpu30_p1_s7.mbn shipped by linux-firmware is signed with
the Qualcomm SecTools test key chain ("SECTOOLS SECP384R1 CURVE TEST ROOT" /
"General Use Test Key (for testing only)"), which the TrustZone on a retail
Surface Pro 12in refuses:
qcom-iris aa00000.video-codec: error -22 initializing firmware qcom/vpu/vpu30_p1_s7.mbn
qcom-iris aa00000.video-codec: firmware download failed
qcom-iris aa00000.video-codec: core init failed
The -22 comes straight out of qcom_scm_pas_init_image() in
__qcom_mdt_pas_init(), i.e. the image metadata is rejected before anything is
loaded.
The Windows driver package for this machine carries the same firmware signed
with the production chain ("QMC Attestation Root CA 6"), in two builds:
qcvss8380.mbn and qcvss8380_pa.mbn. The _pa one is what loads here. It has an
identical 7 MiB load span, so it fits the existing video_mem reservation
unchanged. Point the iris node at it, the same way the board already does for
the aDSP, cDSP and GPU firmware.
--- a/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts
+++ b/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts
@@ -1098,6 +1098,7 @@
};
&iris {
+ firmware-name = "qcom/x1p42100/Microsoft/Surface12/qcvss8380_pa.mbn";
status = "okay";
};
|