Decode · Qualcomm

qcom_scm convention smc arm 64: what the kernel means

[    0.074209] qcom_scm: convention: smc arm 64

The kernel line qcom_scm: convention: smc arm 64 is emitted by Linux's qcom_scm driver on Qualcomm platforms and confirms three things:

  1. The kernel is on ARM64 (arm 64: vs the older legacy or arm 32 conventions used on 32-bit Qualcomm chipsets).
  2. The SMC calling convention v1.0+ is in use: the standard ARM instruction sequence for a Secure Monitor Call from non-secure world to the EL3 monitor.
  3. The Qualcomm-specific SCM (Secure Channel Manager) subset is available: a set of function IDs Qualcomm reserves inside the SMC ID space for TrustZone services like secure storage, PIL (Peripheral Image Loader), fuse reads, secure-clock reads, TPM emulation, and QSEE communication.

The kernel discovers this convention automatically at boot by probing the SMC ID space; the fact that the line appears means QSEE (or whatever EL3 monitor is present) responded to the discovery ping. On IPQ networking parts you'll additionally see psci: PSCIv1.0 detected in firmware: PSCI is served through the same SMC channel.

If qcom_scm doesn't come up on a Qualcomm-family board, the kernel loses access to every Qualcomm-specific TrustZone service. Most vendor drivers on IPQ / Snapdragon depend on this indirectly (WLAN firmware loading via PIL, secure-storage-backed provisioning, etc.), so a missing qcom_scm line is usually a fatal misconfiguration rather than a benign log noise item.

References

Full walkthrough: /blog/qualcomm-sbl-secure-boot

Source log: /samples/bootintel-4.txt

More decoders: /decode · /faq

Have a boot log with something you can't decode? Paste it into the free fingerprinter. It identifies bootloader / kernel / SoC / autoboot exposure client-side, nothing uploaded.