# Security features Qualcomm^®^ Linux^®^ incorporates several security features designed to protect devices and applications. These features are essential for defending against vulnerabilities, ensuring data integrity and confidentiality, maintaining compliance with industry standards, and supporting overall system stability. Qualcomm^®^ Trusted Execution Environment (Qualcomm TEE) further enhances these security capabilities. It provides interfaces that enable the extension of the security feature set through trusted applications. The hardware-supported TrustZone architecture integrates certain features, providing a system security configuration. These features can be further customized to meet specific requirements. Explore the following security features and videos in this section. Cryptography https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-cryptography-features Key management https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-key-management-features Secure boot https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-secure-boot-features Storage security https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-storage-security-features Storage encryption https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-storage-encryption-features SMC invoke https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-smc-invoke-features Access control https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-access-control-features Secure peripheral image loading https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-secure-peripheral-image-loading-features SELinux https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-selinux-features Secure debug https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-secure-debug-features Qualcomm TEE https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-qualcomm-tee-features Qualcomm Hypervisor https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-qualcomm-hypervisor-features Security hardening https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-security-hardening-features Qualcomm WES https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-qualcomm-wes-features Discrete trusted platform module https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-dtpm Watch a video on secure boot technology https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-watch-video-secure-boot-technology-label Watch video on Qualcomm Type-1 Hypervisor and trusted execution environment https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-watch-video-hypervisor-qtee-label ## Cryptography Cryptography is the process of securing information by converting readable data into an unreadable format using algorithms and secret keys. Qualcomm Linux supports comprehensive cryptographic capabilities, leveraging both hardware-accelerated and software-based implementations to enhance system security. The key capabilities include: - A register and bus access manager with direct memory-based access. - Interfaces to the cryptographic hardware. - The Linux kernel crypto driver (qcrypto) provides access to the hardware cryptography independent of trusted applications. - The Qualcomm TEE provides the hardware and software cryptographic application programming interfaces (APIs) to the trusted applications. Qualcomm TEE supports the following cryptographic algorithms: Table : Cryptographic algorithms | Algorithm | Hardware | Software | | --- | --- | --- | | Hash | SHA-1/SHA-256 | | | Symmetric cipher | | | | MAC | AES-CMAC | Hash-based message authentication (HMAC) | | RNG | HRNG | – | | HMAC | HMAC-SHA-1/SHA-256 | HMAC-SHA-1/SHA-224/SHA-256/SHA-384/SHA-512 | | Asymmetric cipher | – | | ### ICE The inline crypto engine (ICE) performs high-throughput cryptographic encryption of storage data. ICE supports: - AES 128/AES 256 ECB/XTS - Multiple crypto streams to meet high throughput - Multiple AES cores per crypto stream - Provision of 32 software configurable keys - Capability to enable symmetric and asymmetric operations ## Key management Key management is how cryptographic keys are safely created, stored, used, and deleted. These keys help protect sensitive data. The Qualcomm Linux Security solution supports public-key cryptography standards through the implementation of PKCS#11 APIs. This allows applications to manage and use cryptographic keys and certificates in a platform-independent and standardized manner. Qualcomm implements PKCS#11 as a global platform interface for running trusted applications within the Qualcomm TEE. A corresponding implementation is also available in the rich execution environment (REE), allowing seamless integration and interoperability between secure and non-secure application domains. ### Develop Linux user space applications for key management with PKCS#11 To perform key management operations such as key generation, storage, retrieval, and deletion, use the PKCS#11 service APIs from your user space client application on Qualcomm Linux. Your application should interact with the Cryptoki client library to access the PKCS#11 interface. The following table lists the generic APIs supported for key management functions. | `C_GenerateKey` | generates a secret key | AES - CBC, CTS, CTR, CMAC | | --- | --- | --- | | `C_GenerateKeyPair` | generates a public-key/private-key pair | RSA, ECDSA | | `C_WrapKey` | wraps (encrypts) a key | RSA, AES | | `C_UnwrapKey` | unwraps (decrypts) a key | RSA, AES | | `C_DeriveKey` | derives a key from a base key | AES-ECB, AES-CBC | The following image shows the call flow from the client application to the PKCS trusted applications for key related use cases. ![../../../../../_images/key-management-function.png](data:image/png;base64,UklGRiwfAABXRUJQVlA4TCAfAAAv/8KWEG/jqrZtVdnPH/5LAfoXoJPL0X2wEG7bSHKkPn3nnfUq/zA+o7fkyO1Zx5Fsq8rgvnprYiFxoiALd3l2z1HUtpFk/iiHwf3e7QIAgF/dPBtSWNZgIliwrMFIxEANRTsORAxhaLKkmbpmGDAFaSxJGktIYRnAATyABCiAAiiAAgiA+rt2y9mOQ/CkHUbGHd00dnoV1UXEMIj8BYOpBnLAvCNhETIRGSIRLbhbUjj8pC2QphaqQzVIvEm8jecd1qvne+plL/lLTnnQ7VmzPVhUT/nxbERC1F+0ruHSVY5YUt1u3zeWHJ97yXD7vkXrHv8vz+bx/7KonvKjXohlYplY9tI/9eLw2KEmy2Njd+n2ly2J/v//3PaNHJG+41bdyld1vZ9lGv5yue4WtRStTY+bfIkiR9lYLpLS/v/fic98ZkiCIDCr6AsMpwDvIQYR/ZdF27aVNvM0tjrEnHvhyFOhvzeE+Me//cvbGj3Spb8hiZ488sfaPMgDPedf/ua2/dNf/Og1jR7xDwZru38Rf/7q9p/9QdLucW6t+Rfx509i0vARIfzpbuP3kpaPFrbLX+32n8Wk6SO2dvtif3mbGULDD2D/8sY/3R5e0/gx2P5v7VnnO9vLX9qo80X7l9a+pvXDWhv0vnDtv2v/vQzsi8mrXP2Py+WW4PNJ+G6rb5q+uA7WQqE3NJT//nySx8OnvE9DeH64anq+BwdqodAblVWQxUWWyXfSNE6KnulNf4vzcJvGfsbVG1I+hPDf+n2QtXBPDRR6Qzv5n5MQ/kvTND6E8JzjvHeH0YRtPN0HWQv3ROiNyuo7EvnERxJ4gxgaIS7SNE6IW3ESBubXOEZKKR1GSxbh9uggDay4D+fDS3NQTOOE+C5fTOLWGLi5weXihczyUmq8sHqekmuap55dXnvOu4TweRuCo1yep2kao5SGSgv7IYQw9Ilt7qeGbyDfG05495N1h7jw1+dJaBLbaf0HrgQfUuxMwbXigqjw9j+QLHplQwhNQ5tCk7+QvFunkIZCC4dAYyDNjeISLovtDZpka1KSd0dKt57TPH/oj8zXT+qZSQhG0F8uF7l+WyexaR5uh3uDEOvBJ0eWUn9ojHQprnchRBGNPGtpGgryYhmaIW8Kzf8hXRe6cA3kZlV568VCk3UHXTkPD1tSwccWtYyX9qaEMC/K374/JeVAZgR9MjGERnF14GkIn5IJ31A0z6f5uo00DblLCMEJmwFu5c1tEy1GzzWQ0Ybw0CX/KSlgWXeQtreeNuRS6UhWtL00jRPisqtbUUiLzkuCUG8/hDAoekjmBE0In/JtSH1eTNI0JEhTnoupX9KlaYyQYStHs7klpPE8ybujCaERFwErHn4rrDSNU4mmxWyQ65mx8lSZoyvxPq8rQmxUXr7SNCSEipXELj4VK8qQtCTdIc4qaegfTwMbbzAuyn7Yvq6YO0NMRJqGVJS23zVkVYKnkuOtEALrQvgYQnxOhtRADzf7FkMw4hasvQs82mA5hRxpBnLJROE4kmPzzfd1dLCnko03uzPiUtoPeYKHvTGB5tQfRrrVDHSLsAba72BCiPv0aWDj+X7RbVWSFjRpB63IK90R4pJvwe01zH5nqZ6beG/tQR94safEjC7SNHYcrN02dxfP8/cKIa2HCpomL1maXYV1so47ukjQiTe6nG/fUORkJcy25imtZCYjWRo77HcgFfuQZuhbjuNchM7o2xAaBVHI4gcNgim39jtDFtV9knujpbtbYgifqoh5yr3oITuhfxrCQARvyCJQk2RpKO939jSnJs8wX33Z4hrIpxqbS59XpXx2SKv66a0+37tnKp2TedxpSj2/qrDLcUfDLRVNCNyivuPnQoYsKQ3CARF0MxSfhlILh0DjBzaJ/JV6poGM/qG4cOeSlJBUFXzKCf3cTXKfip87U5JS85AeDqq2gkvmR4If8nkEEzGEJmeekwq4tcWnodbCp2S+dOEOO31obm0ZpoFcjn0TSf5vJLXuaNpc+zRVWafpc8cFjNwl9ds2ydMoRLjLTjN/f7l4/fK9E4UlT+OI4ndvnjW6X0ovIdp+/NdL09D/37v+Kjv4Qv9/7/q1/17565vztf/XnfUS4HVnXfvv/3Ny9c7dQscHv7q5d0fcRR+Nb5UtO55RFWK8Opyr+w+KH5efFGYyu3cEXXT3ZpkysJUi7l8dyC+Po0/umYL8fHIUXdSO5XndWeMntmqEO4jxWLrkvWK8zR7LdHY3lWbAVo8YD+FyPF1SBNEeS1yVpStbQVwOoT0asUzfZy9l6VJFtIfwwJboXXs0UN/uWzvu35tHNDFrMkNt4b/X/b6YXLdmM5suGHMI0b6rkIiKj99eFFaROqhFtxYZ4ETbYWx5wAsWgKHej3lmhhlb3uR5tB+yTBfsDmn0kIThRnooJz3QbRQAP10pJCJjMqC4itRBLdBWEYAbJJZigawzacF0TK1uqCHPJMemsRcOMOWkBdBzWmYSdRuFRNiZgAFQZEXqoBaAqQgURg7LiJNQyssjz2gOGOEnrmhmWW5sAYEkDXl4oJfmAVdK1kCLVoEdAaOQiOzt3LgCK1gHbR+qBhRGDqcHoiUisBJyJHP5BERppjBLgZjGfiwwB3wZMchWwFqBbZEpJMKJ+XJpkRWpg1o4oD0qz5pyZFsExghxTA2AsXwKIyD+kkAyjb21vUBMYy82M4wRizLSwdgMSxUGUEmEj2IrUge1aA3QH5OUSpIBRCsgbKgOSNyIjluSNXOSgbTQ9sWgy9uQSgftC4OudBSmg4R8su1DVcaqgwtKs+zeGOEOEwdE3zFnMOUjIpLOHRVEdAqJHJHDd5DMCojVQ0RHrR26QXVKYp5SAAMw5G3ISgYzIUdEuRWwUEjkiBSmg8R88oeqhgFYEKNke+gMrVX5g8ysD4sMKwxaMoQFGbJEKGM6dGuFRI5IYTpIzIc8dPopjByiA9hqgNKU5CO24cwhMa+TYVk2HFphq4ARMNF5pURAot/Vvz1v4xvqzMQdAlwi1BOShzzTf3P4DjJ055KAPHTqKY4tj22QHTXqN0KZtgCc3z+FzAy6VCbY/S4tnExmNiqJ7M1/mmyjoQITT2iZBSaEMiN5yDP9j4fuIDn60Il/IZWxJfjQjkDcaUpi5lRY7Z3C/C4AfblYgAvPr5hJekwldvV/nmzja2G2wsTrxNAxQd0hecgz/c1BO0g1H4fZplLsd7NWYISDLlQHY2M9w9sHE8BFWyo2HWuxF0f08I4ddAjCQ9WEp+sDGBT2OwREyYLYErODMWAjHD2VDhOXCEvFrh20f+IklVUX6xncRnG/c4bAwd7Jpk9xvfGIKY8GZomwVOzaQQdiHVBd2BFCRpHZCRHJG1zPFGJyyPZO1jpxvbFErGSrRlmp2LWDDmWoNOwSdJPoWtgN4VthXLfAYsiLKwPGQ4lwfDpjeej4rWA9sCoTO3fQgdhldSHU16j4uYMILpED2QCGn1ZjadjMEGWf6ioTO3fQoVhXaWycsAPHmnarM0wprfLfBWeCPRQDDBwDhJfePnf/sv/3LqZ07S/tr5m8tOQnx+MdTcbUlvMON5OqfN7hinje+aEsDRXxvPNjW6bXHXH/aIYsqEp8tx0r4XWnNKY8mXuV8LpTUhruH8O/i3PdQXePwEemVK876FwxrjtoSAeS0tU7e45/96//d895Fuu6s946QPccoIvKVEpjfKcM4v/9r7EMYh/XnVWg+H7yJJVinENXla877sXj118rhag3vu5OmTaEc21Rma+pMYQ7Op8PW59pfMMj+gXi+t45EI+0PTwONL7VHPz5dP2KICiD36Dn9jt0gYlnet652cbj0OSh35RPp1777yUHaHS/lK7/9bL/CzXh2n+v/OXP+v+4o1fFOjfb+K+Tr/JXulPQ5xaxe/QSTJh4kQqqgN2jm+48Y84zcqfknsZ1j27a7zA8FhR3Q3rxukc/7XfzhT/PYOG6R0ftd/6K+G0qbBSue3SULtek4ipa9+ip4476rTYVN4rWPXrKncfFPsdmsbrnhbY67vTxUJL7nR8P2sTVO3f3G7/+9zjaKH73fDS+VbbseEYJxH/4TyiDeOfqcK7uP6gUcfdmqV53HCrGdcddHcgvK8jFO5bndWeNn1TC604cH1SPuJtKM2CrR4w7qVJX73tVlq4q4nXntpVk7BVTfbnu6AdVBOrbfWvH/XtTNxtqC/+97tdMXl1gPcXHGtuH02xDS0u7W0/x7tYC8PXKT6eSsHbOZuGt9WwarWTqMbM8lffZt9wFgM4EwRx4Wza1oT+FRri937RY1DIGQmRrasMkbBgInOWpZK21tYlk3DsmBdnsxatOQQZoR/oL3Ib8ZECXrPUtYBiGkWZ62QqITF7GMsvbQgaDqGP0OJUMIPARgNkI449kEUdeD8QeADNGVos8Ny8yDugMk0WXZ5FK1LPmpInoNlwKsnfd5BCF91Ng5JoTT60FSLggLHXSaDkjEC2vlyy3bjI+8ZUDidlQpscdnTIbYMm8HwIDGS6xmSSKa8MA+FMLLR0drTAqFhubWsCIBiCT3BlpblEY0QFutHackcSTo1k4uFQLeGDkfq3ZisgkWVEj8+QWzp5amfge5MlK11Lo/plg1cElCYeWHfE9ELjxbtAFceWm+hMnCkk4LCRToDA9OXEhooMJJ/dhms52WHauvAIGIji4YHnMe9RIkszEERnQ0exJRMQKjIk1wcSCYXZkOUZ4co9uc5oJM+QWQZahz/I1CIklApeW3TBz9hZzG9j5vK0poKa1tNbou+ip1sGRjQ4yLh9PHOn4xijZ3ZPlWawYVf7OTmaqbEQrPPtkM9SCJxTXLnoJlwvl61lTAR5uSdpBWO7wleIG/fbumiXNTTanKembZlIBBmtJQS7zZ/dbleJhkz9vLhElua2AUZLpWMZO5X6HUXG/g4g82aBLW5VgsCAORnIxPCMbwTN29LODLUp0sGZycvc7L0UO0TISWcbo7FYl2O9gMGOKMgIr9rVTJ/4VR5rwKBywkUi+a3H7dT0wAAshg52OO2qFPW40kYqx31nYlyy8cQUht8xb6wNcIlmRWu0AI9vvXAvQCcoLE8sOx522QuJo7SkWJccdLUCjYxfKRojzYzpGDPhUg+MPQ1rNhJwGW2mpbP+TbQDc2+cOZAWcAf1JFmTHnY55Fgtv+ZWSpXC83Uw87nQJwBlm1GZMqtYmM6M51QZ2MLmo9rkzmR6dFen/7514qc43Z90vpWt/aX/N5KUlP9HNTG0573AzqQHnHa5SY28oS0NFPO/8zbYaD9lMqvGA7VgJrzvlnilP5l4lvO6UlIb71cJHplSvO+hcMa47aDjkdWeVQvzrfx7LIH51s2yvO2uMpTCy/t//Gssg9nHdWaUXxbyWy6p83XEvyuI69OqNr5+ctD4N4fuqqK5FE0K4o/P5sPWZxjc8muTR6Xtn4TrktT08psK3moM/n65fEQSPB72hCadKF5h4puedm208Dk0eusMp7NRr/73kAI3ul9L1v172f6EmXPvvlb/8Wf8fd/RqY00ek8f5cGc97zxhotPzhseiF7p+v4MXT95zR9vvd/uKOidtr6Mn79T5x128yP1W57uzHaTR+8fdnSeh1fuGRy+SvnP1zt0yiH/7a5RAfDS+Vcdd3a8YV514s3ZzFeTiHQt63Vn1xViZLzu9KquI1517VetUxOuOrteqyXWn12pvvizDf6/7NZNr//3uWDZ9f2uBeQF9iLCxdg18rCOReniXvlJbKDOs8kYg1wJe0WA6AHMjaJEHk0kPSZg8MS68NA3Ng94YJS0Wh5rVzC1jxE8VbwyEcCsRl0l5etbUQzSK5G30lKR9Xv4zH/Nf0KELVMtk5DZCdh6kCZZNjE2jHI470hI26NLuPBCFlwZaWR2NgNFvwNwxnTBH6EGjJ9WxABD9lkoWPuZZjOwspbUcAwhIfobOUiKtTSGxJKujFpm+kwVhOV+mB5OOQhZLIYtW5ODVtMJKRSCzJnTWMn+NMgbQd8gvWM0Bz98ZgXZjUwS8QhaGZtEyC0sezqrBfKCrG2KtsaEPCeWwcZjzHFpxWpdnkWZYCmU2o1oYRZlYU57MufwuIjp9Z86tC3BGIFghgSTLQsiQzkqGXOoQpCRP6bAkwg4GYKGIiSBP45hfqK5aASOnQ8Zk6aVZtMisJPpt7ruJyHYiboktTc2krtoAvUi2i2tUyCLK62fc0RKO0zKr9nxzZt7u+46GYnfQK2SxkDakszsyuRHw6jKzsfrPhsfOWxSzkDBY7qrLrQDDNr2X1lGpqscPR2QChSwUHnYY1PFpzxBPhXo8mGG2kipmkYQW5MOOpAz3MJjtgOFEqL37HSLdlCpWUxyVslgKBTgjcxWjLuOrdt3BJT0JZvtYJswlIrq1UCyZt9YHuI0sC+l+50TnQnvY70ye3BmSlwO8RpQ5/pAiL24UMmAOGlLIohWyWJKMolUX+WSt9TN26+1eyLZ3SdPQSFrxuFMafSdM1KslAGestSpZjHFr4enHd/wOAn/cKcmIlM7CWFsA2vB7F1dTp/m/d3cxNfr/e9ev29FMXulqNT8hhrjRMFbCZ3/HDHDHrgDN7xE22sV6Nv2YOYg0K9p5BvauEM03CNpFRo8R2gDtem/TdgQA4xVPFMAfbur3jWv+QaOF0Sx6YSGnB1b7WrTPIMRSCnADf+Pozf6+wZpr/mGtgaBXuGkvLu/sa7p29DMDqyj+mXMfUpaX2iEYoADHvLZaRT+d2T2bMzOGCKxVThRQAjwQjtDXT2qb+XTJLztxnybLenExxo8OLfMYV1qbmZhzy7Ui4ytImAv0DnD9bmcwaDFPC8DzzV8bkI8ky05qoHbCg2Q6AEastg5Goxx3tJlilDOg0Sbmc8KcJZDYLx6SMoCCudCmjsflYKjgIDMyn2mWn9RAnvTKCVl4sWsyjWJkysgATCrzNckjCt8TsUjqX7ZldyX7Bov1LmcwaAE3SjIf6NdT9KTSJF9qoZC0g/PWjjN0SVx00yjMtLMymw5RrIyeaGWr6fOdRHQqRvFz/cpnMKCClYhwYh5JdlIDedIroWUeGJkvftcjhAUeqR5YsfW0BrzMYhcDsODxDet4snMWkKUzefPNSPi8G2QnNZAm7cWOMsYTARj1iagwwS/guEz2zXTogoK5mPCSIztngZwQIs+/PSgkrbSnDuj1yfeutBIKW1HX6gJIOKtwooBdLATSXDGq8uKqtue/4lop6R6AMz3PHON+hxqJmbF4YKUgw3wHmdnYg+gVRYC3UNaLm2SBTsuISqLajdqa9ULArorvU7RMqDHCbgWveBOtNHrTAdlxq4VPUclko8AAq0KIyHbVYbHDwxFBtZ098xR9wky7fQ+2AWIhGMDvJgE9Q3pSA2nSvemtWKrMC+kT4xSbnfY7qLBLwByM8hkMFG/E1Yi4JTupgTzppbi/TcytB5I+sZli3GG/c2aV2AyIK2utX2wT3DP1MxioiaTqfQvAy/Y7y5Ne0yTW2xQH8bgLnXLcaTvt+A2esuOOFNkIMJntmfoZDNQEJxxnJLwxtEKanbXypL3YDYb5IJHuOe561QrHnaqynkz2znhr90z5DAaK7MZsRZ+vTfAnNVA74UEwpCIH7mPUmuVzN6M9MdGi1SvXXdBPsxNjPUOwuuS4U2Yx/bSIMFazWHfT1SlhkOmX751eTbt1+Sjf791KSSN+76L+P+/A7+g8a3S/ZnJtmaT/3a8i3qnXxiriZr2W7lUP76Wa7SeV488lFdI35xojmXc+qRJw9VpRo85IKb01lEFMvhzKILavUWOVXkyaVApxbYUmXPvv2j9fP9H/xx1d98t/r//3O1z775W/njX6/7ij63+97P9CTdAbHk2YeKHnecbj1zX9cReN6Jw0vU7wSN8fd/eC6vS94XGu0fnHXZ9zd7T+5w4eTcKzpPX9dvsrNP/3LjZe3x139OalHC687De2FOKeu1nDXR5Ui2h/WVtVpR9r7VXNdvWgemhNvXb3QQWJX9VrD6qIj2r1fgej///fAddce3eKfVtg/rsZGXotxrRT4Kdmc7Q+Bo23jdwaaDWYlZsK8eGxA2Ze4caUna+f1D/r2bQz1lo/B8bj5UljHNCX7sMp1T/LKVbim/xsc9ysbYG1fpNNg6XG/K81EHwEsAzW9g6YGabYujyLDYPkGBYA2mBtclgKlSzUr8lI+ryUCctWqzzd6KWSQ6Tt8aPLMwWMWoNId4jtSQvA6x1zwRowuSVIuE0LEplk9WQ28IyQTCBVQdE6CZm4NsMKwkyuF3IyPNqeRERAoNCgJDTIrYnMYUsH3eGeinZjbQvM0FqbItDTWYIbrR0dXGIhG0gWrbUDaQDzCwLJd8grjRGFKhzztpEmeZkBGLm2EyoNoh3QYU6QLOwxq4lPkWjFdYCl8G4ftwxmQZw5sTJh6adjZgvWwOXDieUc4EQLgLbQMW1rWUKhiW0XyBvUA8EK2RLBHrVvvq+LL9T1IlIEfOG0pLhm4sJ/RGSNYo5kuIwWWidWq1gflBF/RmAtJrCRcVjQtjPkDQp5TTJptJhrof1usymAxUqiB6zA0RKTDSbNcSMuFyUyXOA2oXYwxAixYpbIuCLfA1mDEtMBLebaiLXeuPwfu/DAakdB3Etm4KyklgJakjyYRaQ5uBj3QN4gLoJGYq1dxSnibsKuxOWjiM5K8pznzVnQQlHRKzwsxzZIyukS+90CdeCbAGwSMFCD7AahBzqmEsVQGKyX26FB1mohhptBbABzwIeDsHw0IlgryXNG149dsK2QZ0SmzABJTtagFTDqJeMU4x7wg7WIOzCIEcZaxcHovotEq8srSjO0Vk7aoA6tXmKFWqDlMO7AoAtCaZgdJKDDylrl/Q52ACLNPVBx5KUArBWoNGik5RqTHuKncCaf2JdAZlVJ9zvvwM5J7tZy+51bYBSRfHv6SsFb6wNcYiQzA3qrQNqg5IAlXUsymugpfsZsx1zvwq6E9Nxgd2GEQlE/7sgGOvsy4pajIP/cgQqFBjnmoKUy8Kyph/vdYm7RW7sDcb7gjLU7SfzmWeMUjju1YTtUyqt4CdoI1sJYq0SpQVmepbelICUN+L0T13x71uj/7x29tkzS/+5XEe/Ua2MVcbNeS/eqh/dSzfaTyvHnkgrpm3ONkcw7n1QJuKrh192UUnprKIOYfDmUQdzU///vgGsrNOHaf9f++fqJ/j/u6Lpf/nv9v9/h2n+v/PWs0f/HHV3/62X/F2qC3vBowsQLPc8zHr+u6Y+7aETnpOl1gkf6/ri7F1Sn7w2Pc43OP+76nLuj9T938GgSniWt77fbX6H5v3ex8fruuKM3L+Vw4WW/saUQ99zNGu7yoFpE+8vaqir9WGuvararB9VDa+q1uw8qSPyqXntQRXxUq/c7GP3//w649p8e9eE022hSH7873cZiZPRv54mYNTUHIisA6DktSMzMSm4BeD1qORVivqGFlUEIw1TWmk1TToyocPPTVPq+flKHLaeI+TzDAFlu4wCTrPVzwIgMI83kWruNYQGEdHoeTqkG2zAzjJGWVwRWYkl1SdBxy2RQZK0HFlrWOIX4S7L8r5U4k6EpEAsxN5JFVGUNLdgF5hvyGgYgySSxvg3JzgGdEddg/Ogw1388t6JMFsOYxacZIsUV1wrwymyHJZE5MJJYxj1pTwog4dZUBIrozvca5g5fRxm3jGUMNTJPbuGsuoiMVq8brbWUjXmzmF8QSE7jDHNhC9YiFe/O688mTZHU5qdwnGztgbIORny2WaszABWsQJjf0IR7kkQQ1lE80Rbw4W8fT4rkm3NtfqHMrMWFJ0VGeHKPbqOMVhV52LJSR9ZZRvJymdiogCV9uHCefDUJW9plv1skqwKGgJLW0lqjhbNX3GsvEcky3pgjyRXSnc8mQb8QamSR/8PnN4psRCs8e/9GMssi9z24yAro12fmNCBNYSKF5pRFqhrHHZmObDd1qrxQU5m1freHpcS7A5BkXAH9768mVSsqx3F3624aFQZjKsthSVaedxLhFJBEluQ+sWIaWsg73zyuVndSqgBky1lLzGT7HTJEEXmyQZd2kTos5cS7AePWChiLLb1+1jCyaeBAYb8zYwP0AZ3dhQG8CjoEukQzaAsupTuNdtEzdbZxpAQjuhUV0SWushZwwLCLHlhYRUvMEGkq4l8+poLKX/iRZmHbbb3k5dRntCjWjlain+f1xfEAWqtujEC2USFmPIqljSWdw5niSunymV5hI7MtyKh+7kAopCDUm9/lcweq7IzeJ0XNNKmIinndBbWYXeW/C47Z9WxNC6AzwUr06OwOnBnsDpbstlyTbbXeFlP1ilrwufvrzj1rdL9mcm2ZpP/dryLeqdfGKuJmvZbuVQ/vpZrtJ5XjzwepkL451xjJvPNJlYDiXnVNnZFSemuoDHEzpRqrIsW1Fb6YvOqHP+v/p1z779p/OtCf6n2D/Qv7ezpfa+1f25/rfBfr/t7+kc53tuZfrP19fc/etucbf6vzBw72csOe4+1f6HrexvMNa//xtv2Zntdb+4838viH2/YPNfyvahtr/Q0a/s9v/9nPNPs/2n7gfqz9Z3fb2j/6xc9/rMnj4s9/Zq1rbrDxD+62Zg/nb0jjX/7x7zR69GcrhAU=) **Figure : Client and PKCS trusted application call flow** For more information, see the following documents: - [PKCS #11 Cryptographic Token Interface Base Specification](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html) - [PKCS #11 Cryptographic Token Interface Usage Guide](https://docs.oasis-open.org/pkcs11/pkcs11-ug/v2.40/cnd01/pkcs11-ug-v2.40-cnd01.html) ### Limitations The following functionalities aren’t supported: - Random number generator functionality - P-192 in CKM\_ECDSA - RSA PKCS key generation and signing in CKM\_RSA\_PKCS mode - EDDSA key generation and signing ## Watch a video on secure boot technology **Qualcomm Processor Security: Foundation** *Unlock the full potential of Secure Boot technology on Qualcomm devices in this comprehensive tutorial. From generating cryptographic keys to programming hardware fuses and managing secure boot status, this video covers every step in detail. Ideal for users aiming to enhance device security through authenticated boot processes. Learn how to useQualcomm tools effectively to ensure your device boots securely every time.*
Last Published: Jun 25, 2026
## Secure boot Secure boot is the boot up sequence that establishes a trusted platform for the entire software stack. See the workflow to understand the secure boot and UEFI secure boot process. ![../../../../../_images/secure-boot-uefi-workflow-updated.png](data:image/png;base64,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) **Figure : Secure boot vs UEFI secure boot** This process uses cryptographic authentication to start an immutable sequence that validates the origin of the code, ensuring the execution of authorized software. This process: > > > - Confirms the authenticity of all software images (non-Linux images) signed by Qualcomm and the users. The device carries out this process. > - Prevents any unauthorized or maliciously modified software from running on the device. The secure boot feature authenticates non-Linux images while UEFI secure boot authenticates the Linux images. ### UEFI secure boot UEFI secure boot is a feature of the unified extensible firmware interface (UEFI) specification that defines an interface between an operating system and the platform firmware. For more information, see [UEFI specification](https://uefi.org/specs/UEFI/2.10/). The features of UEFI secure boot include: - Ensuring that the code run by the device UEFI firmware is secure and trusted before the operating system begins boot up. - Defining how the UEFI authenticates images such as the Linux image, the operating system loader (uki.efi), systemd boot (bootaa64.efi), and the device tree blob (DTB) image files. - Ensuring that the images are loaded only when signed by valid and authorized users. This process also ensures the security and integrity of Qualcomm Linux systems running on UEFI-based firmware. The UEFI secure boot allows the Qualcomm Linux users to: - Verify the integrity and security of a UEFI loaded image, ensuring it’s loaded in an approved manner. - Manage the Qualcomm Linux security policy as defined by the UEFI secure boot authenticated variables, which includes: - Platform key (PK) - Key exchange keys (KEK) - Allowed database (dB) - Forbidden database (DBX) (Not supported in this release.) ## Storage security The storage security feature stores and protects sensitive data through two key components: the secure file system (SFS) and the replay protected memory block (RPMB). ### SFS The SFS is a protected storage feature that securely stores sensitive data such as cryptographic keys and biometric information. It operates within Qualcomm TEE, using encryption and isolation to prevent unauthorized access. It provides confidentiality, integrity, and anti-rollback support to the trusted applications and securely stores sensitive data. The anti-rollback protection covers the files created or stored under SFS. The SFS feature uses: - An encryption key for each trusted application to ensure the confidentiality of the files. - An HMAC key for each trusted application to verify the integrity of the files. Both the encryption and HMAC keys are derived using a device unique key, which depends on the secure boot state of the device. The SFS anti-rollback protection is enabled by default. When the devices are secure boot enabled, the SFS uses unique hardware keys for file data encryption and decryption to ensure they’re secure from each other. ### RPMB The RPMB is a secure physical partition in storage devices such as the UFS/eMMC flash. This partition stores critical data that must be protected from tampering and rollback, and is only accessible from Qualcomm TEE. To read from and write to the RPMB partition, [RPMB key provisioning](https://docs.qualcomm.com/doc/80-70030-11/topic/customize.html#section-customize-rpmb-provisioning-label) is required. This is a one-time process that can’t be overwritten or erased when completed. Every access to the RPMB is authenticated, allowing the host to store data in an authenticated and replay-protected manner. ## Storage encryption Storage encryption enhances security by supporting the transparent encryption of files and directories. The Qualcomm Linux supports storage encryption with the [ICE](https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-crypto-inline-crypto-engine-label) and a hardware-wrapped key. It provides better efficiency and enhanced key protection. The storage encryption feature allows: - Provision of standard keys ranging from 32 bytes to 64 bytes for content encryption - Encryption of filenames and file content with separate keys - Generation of 32‑byte key identifiers The Qualcomm universal flash storage (UFS) driver is added to support the `fscrypt` API. For more information about the `fscrypt` API, see [Filesystem-level encryption (fscrypt) Linux kernel documentation](https://www.kernel.org/doc/Documentation/filesystems/fscrypt.rst). For related kernel documentation, see the following files: - [Inline encryption](https://www.kernel.org/doc/Documentation/block/inline-encryption.rst) - [I/O control (IOCTL) support for storage encryption](https://www.kernel.org/doc/Documentation/userspace-api/ioctl/ioctl-number.rst) You can invoke the storage encryption functionality using the open-source [fscryptctl](https://github.com/google/fscryptctl) tool. ## SMC invoke The secure monitor call (SMC) invoke is used to expose the services and interfaces implemented in Qualcomm TEE to Linux clients. It provides identification information about the requesting processes to Qualcomm TEE. The SMC invoke is an object-oriented, capability-based framework that enables communication between Linux clients, TrustZone, and the TrustZone applications, which use mini-kernel (MINK) invoke objects. During the SMC invoke process, the following objects are involved: Table : Objects - SMC invoke | Objects | Owner execution environment | Description | | --- | --- | --- | | Remote | TrustZone | Linux obtains references to remote objects through the invoked operations. For example, an AppLoader, which is a remote object. | | Callback | Linux | Linux sends references of the required callback objects through the invoked operations to the TrustZone, which may invoke these objects as needed. | | Memory | Linux | These memory objects are useful for efficiently sharing large buffers between TrustZone and Linux. | The figure shows the SMC invoke architecture: ![../../../../../_images/smcinvoke-fig-updated.png](data:image/png;base64,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) **Figure : SMC invoke architecture** The SMC invoke has the following components: - Linux kernel: The SMC invoke driver in the kernel is responsible for transporting user space requests between the TrustZone and the Linux user space clients. It exposes the following input/output controls (IOCTL). - `SMCINVOKE_IOCTL_INVOKE_REQ` - `SMCINVOKE_IOCTL_ACCEPT_REQ` - `SMCINVOKE_IOCTL_SERVER_REQ` - `SMCINVOKE_IOCTL_ACK_LOCAL_OBJ` - Linux user space: The SMC invoke in the user space includes `libminkdescriptor.so` and the SSGTZD daemon. Table : SMC invoke modules | Module | Description | | --- | --- | | `SMCInvoke client` | This client communicates with the trusted applications in Qualcomm TEE through the SMC invoke driver. | | `TA client` | This client communicates with the TrustZone applications through the SMC invoke driver. | | `Libminkdescriptor` | | | `SMCInvoke driver` | | ## Access control Access control ensures only authorized entities can access specific resources under defined conditions, using policies, technologies, and trust models. The access control trust model ensures ongoing security by managing access control configurations among various assets, interfaces, system-on-chip (SoC) components, and images. This model helps support the integrity and confidentiality of sensitive information. - The Qualcomm access control uses an external protection unit (xPU) to control access from the secondary side for registers, fixed address, and dynamic memory regions. - The system memory management unit (SMMU) controls access from the primary side for content protection and subsystem memory sharing use cases. ### Access control domains The two levels of control are: 1. The TrustZone manages the TrustZone-domains and controls access from the secondary side using xPUs. - An xPU is a combination of many security blocks known as protection units. It allows conditional access based on a set of programmable access control registers. - If the system denies access, the xPU generates an error output signal and, if necessary, an interrupt request signal. 2. The hypervisor (EL2) manages the non‑secure domains, including the content protection zone (CPZ) that’s designed to prevent access to premium videos. - It configures access control from the primary side through the second-stage page tables through the SMMU. - It manages stage‑2 mappings to protect assets across all primary domains (Linux, display, GPU, and video). The Linux kernel manages stage‑1 mappings to protect the assets in applications that run at the user privilege level. The figure shows the access control domains. ![../../../../../_images/access-control-trust-hierarchy-security-domain-updated.png](data:image/png;base64,UklGRmQTAABXRUJQVlA4TFgTAAAvQENVEHfkuJEkRapl5v2v/06cL+cAU8/MdvWBE44jSXKUPq31fQk8wXRMwYXTd7O7TK/rSLZNa13b+H1M46X3orW1z1pMbNtWsnFJkKjOnJh/dciSAAD4zUtwf1QiBQY0JlKoRAqVLPwzL2oDJFGFJFUB9JIKqAQgALACOAA8APYo8BIAgwGvUQ2AANBnHiWAGkD1B9BGgTdH6XuJQ9+AVhKGsiYUolgaR247qZr7IVEQuu0EOPdDzAcepyEDz8uo+l63E5xP9SW4hLceEfLW4ww54/GWRCA4ed2gKs9LSHicorrj7Q9J5uV+3JG0vRfSONTWpSyJ1GUuT2N1mYsCT57GqiJT5qkyT5V5qsgSdZnL01hTFbIk0lSFNA51TSWJAv3aieEr+lgc+E6/i/f+AQU5PuwP7vqiJc8fCKgh//ypOEHM/pjdmnCZ9/LGP7njxyiyfcUf5/iaAVsiXyKVPG3kaWOdD4oslSVXTbVw+O45hXHbRo6o/sve3cvhGxET4NhO1tE2HnLihiuf1z9G4QIuvKkNtSPaSl+aW+x3njHTAXLtPiGUsVw01OX2hnHZPjeObK17Nu/65JxzMAyUQAVCLAVCCCGEMTQYs8mYE31uDifnc/506Veldjg9a/UNXfXVVxXRf4qSJIttm37llwAB6AWFE0i8h3wArW3b27aNs86UH5G0PWK918X42oPZQxWzPLPZvffeu/3RJCQGxCd8Bu1LIPFhRPTfEdtIiuQ6Jt328uHs96Wpff+L3zzItK/+4FsvifbtL/iPv/H6s4NLez1/7LPf+K7487VPvfbsQNNe/sQ3vzf5wqdezoebhq9/e+z732Q+4Dh+5ofmix/PB5325tfH/BuHHcdvvuZfP+zIk/z//htpYOHaTVnGL9aULMk0vp50Raqu1ZNIrtH++18X1MZq411kR7a7azVZmHuQlVmXu5YBd2iGPWTzrM/vrJujNQz34R0gVKu7Mo53pyMA1Or8PtoaraeJHJkAlB7oNRkGKJKVVcGNqEqymAOoVJHaSlJaxV0KfRpdaQypDJCY5QFWZc000gSS7KMWhZ7XYuUIh6wqjD66uqxKeW0bZAkrZvTByCSVVXrGuoa60qTQItA40QCTubO2LSqsxRo4yCx9yg6V+As6ETHHST0H1OjmuIP9daumNhNHmlEZkdMpwkHkm49lNRbg7vTgXt0yyRRZ7BehZECRwXnxGlLBAEca62vdwoIbpsWksErDUJFpdCiirD8lg3qHRNEq52FEbaeZ9Hdl1BjrlRqA4GO2JLbYuVNwtJx6yFh2mu7uXc/Edk1mf6XyjkKTvLiyuVfb7NAARGrJ22nk6jrOnyV3BB8KrMsqcbErxWituH3XsAPKMAJw7uYwJ+nRKrlJYBALrjRJebGbZ8BQLii0jFqvzEZNVrmc/yupewCB2dNqrT3+5CKSBOOcQsQEZ5pgzSnKZAwLWsqLanfomcRqIg48xhgOPKpNfQB6Dun/HlM3d5PrVVwgSd3ei8B+hz/lmDk33+z2tHpfmnVcDwSG+xEWdRuPkRWAms1yRivYOs7a7yFaWcGCqHcscp1Xc1AJzulCtSarsSLDID9dqkYuGOaCqpUGZodSAVGToV/QMK7mSu2esCpmoiqDWFRAPaVIbC16RKVgV6W7G2MAghrcIpv1nN/hkYkIoA7yWYmRyTIALTvY/xcgx+pufkYPQFEvfE9T9Ypup4f2gMRsFaAtu6qyKoW5FQHQXoSJC3xe0Rdcj40vGiqS3Enp7S6xt2s0qSV6LTeqdIeu0MPOncOoqtW/C/Sux8aX9Gywg+XViX7lX50YXI+NL8pBAxWXLO82qkruVu2w25o+hch+bHwRWk+a6BfsMP6U2K3T40+Qc2/zG3LG4cI9TbHz9IeOxyhMeUejD4ee55BCfQB6Evb//TeEjoEa+ncM1NTME0GNnVWnnAowo/2n/af9p/2n/ae10cmOXCF/5EoHO1nvHh6505ihSDo0JcQjLkOPCXjksFWTEhrtP+0/7T/tvxOaDo1JnTEmw2D46P8NKgxEfSV8gEUJe6kxO3jJiAkOF+4TEx8wyANigsOFhphkiJ3ZYeuKgk6v4DwKIkY3IFLCewExkcvtBBzyuGCxuL5vaorHAolB7SaHRM4EJJIS+YCETpddnEdjgeQQubt16TBgISPyAYs8JYoCFrHkOsh53g145IHD5DXn/YBH0qdBImY2Eoj5M0DMUhXbo7EFsoIgS2gXKhCDLOEff0HslqaSEkpzuG5mBZm9cVOeucLNkUTjuG2QRBNjUsJFMa6RTLPMOwsnqWaWdxZOMnXD8Z6WawmFsCRVCadluWr45xZ4HCUk1VilgsnQ3mj/jfxn1IbVsJuR5t7Fkgyru7poz0cdh8chF2FaEVZ2LQMAFNXj0JqacdAru7qwdhpR+sk7zIAhVWMZNBmi9RHTTFStyWqsZJzs0xzAkEUL09UE13ZFEJpN51Kr/jyxFbLSQIiAYYug6knwaKkMhqKacA4gw4mOfm2nKvulXebyzExCUgB6NggJ86aDDFAWAOowdTLsADTsxWpl1n9WIMl7iNZtWmcFOzLaRhF9ddmtUkJif2/GYPbkwlCRpKWSWvHujjR3sx/OdlVYJ4Wb473bXYp7jqeyT136HTKZF6m0h1TWJhxcCj04Or3c7UFMdxF2YthP1LjvsLHepBeUF8UL5SjN1Tlxrh6cq/ch9jsDsDtg/3VaKF9UXSfeu6KESprMkDebQwMYBnpREVO2kQHod7sd3e6HAVzDDq3a5Bw0UFHKqnLt5qfd9iAdveQYBoiVrE+x0CiWRgSIZBKFzgopOM+EXAbSD3uGFgXrWc1iIIPIUVIlxyDHuDS2IdeDopS/gVRoEViL09xan+dtOyAoRyGM5eLt6D0whYha1DAZ5hpsS9JE7xp/qly/aPahqqERHMMARk10wGwOFUsrQMvkWHCeCRXr6dzQe0YjftwptJOx0EBQgzW2QSOS5NIvjW3IleEgxkBDsu4qh1rcGBCBgCIBsZrJ09un7PwoVu+DSawNy/jCuGUWKmg1zhzDAD1bRBpBl5C1qgvx+8fFcSZYn6HVntGKNyPWDf18hosMMoCfBDl+0S2MbcjQxmq9OC1KjZl4A7nJ4r2bjHKawcDG6nRcvhmwF2aB+/r8RcIzu1aHJM7xhoOgkvvrVuXiOhMcV/M9Y35bAjtj//JBVcwBBPlbaKCxWO+bXG+iy4GNpWUIFM3WbfqgYH0Uq8g0um5H7wvACwUS24ljGACmQNaYjXRIJOniOhP2lIBYIZeYlRkQb5W3lZzbfmeY1OjuOszNgiLo2jUptC1jdnQfTSHGiWMYAJ5daLDUVUW7XzuDoHww2Lmzvijuc2MIFSx1sEaacrbVpWoFx/d8x+3oj6haqgDHMMBcwmrEwmr5lbfabfXeElmqEWbH1Ukk8XsdMptZaO1bShlDWdm6jYLUs54Tj47b0R9RITPAGgaQ5aghBRrEgh5lHBE4adgJjjNhb4FmBRh7t2pxN1HTe50RIUJ2jj+xPrehqC3i3rTuHbejP7IaQ4BjGAAY2FiQFcs6Z4sh5FIxx5gve/9JYhq2gNlh/MkwyCTtJg07wdGVkPblDAjDftbSPJBEVqpFEaxaIckktJqMxs7C9A96tldS9qvq8SnwbtO9UKE1KOrWoQK8Lkegm6/2DY39FUjp/cP4Hj5euqkcFBu8eKUqOWGMFaAj7BHsbF1i9szZbn8+VJrvIe1lNTlfDlQ1B0mOmWsYNZnKSiYrGvENQJPG0tUujqfRhT5lS7sJe+o5pJqJLgbrdmSH0rtmrqH0EYaVTGbYTAo/x1u87juKtIOxCtXVdSs4MdtpYABKH9g5Zq5ZA5qqsgLkQg7ojDS7C0BNbVzaqLFes1qwp9lWYpCsdtRiguEoWAECh56tqOk7QUwFF3ZbwbtE0SoAJXu4Zq4lWwoyo7+7DqKFQttZsIoLClZrKaqt0MMDdSmMOXl5VHFNZ33i8+L1WgZ75tpuq3ex/EKhto5qVQddeLTKIImJaY6Za3K35NztjnzpR8AwrPALQE2q+a9NgGdlz1yzxp+Ua/zpLkgG1xQiJqzAICU84COyBwBjkYA6DAcc6OVk/UMOIiKi0fpm5GoLj4YyEjlMpkGLmDS5blZISxkTuU6YOE3KtNGc1Da8k9NWpq5hsmiVnBFiUqa7GJFmp7aBu4SLrUT3/CWMJVrCK40YIcwuA8y//0PslqWZKiZCMcTO/TU0ANNOVlNCSWaxkrUTeZbwCLvZNeoc7T/tP+0/7T/tv9HX9g2kpD0DKm9B9bSijr5lTTXZrwOYxxmg2DSDlDQDO0/bAVVoUwvw0jpjvAwXCr32n/af9p/238FCJ/M+tfntYHir79eAIi4CCgKP937XeO87sAqt9NwpJkDmBS0xcR6GLjHZh+cBMUmBFVrpz1hGF8qg10KaCISnYMcJw8oCpKmLVfyL08LTAMRzZiIA53qw48Rh4QGwQiu+LGcCqJHtOZyVJLDjRKfNRaAKnSn/3RyoQS8CNREIO2DHiadEgO74VlFo5RfRTgCUfXoL0iyq9yAAzT1Qa3QNRYpsdpknv/1X9UYmTHzwCUc++8Xw5N0c0IJU3j3//F119zTtXXKu/t7wZFYhbYjczJHFcu/+9LO4fDtxBlJBYi6TW0K36wTUNqnYRhWtEYkckGdKT4vcW/t5qWUSGjcY5EK7lkRmTRXdIKFZLvORFZtSLUEdKUhslso4EhtVRGIlZT4R7G1YBeGwINgGqLkz2Vpeov2n/fc/7I2buZXNRHFu74gEneQ35j596r5j/PXVXz4eiWQ9nsNwbrpFptWCUBXnlgcrQY5So9t7N6ggVgKZXBXy8MJTWQWgZjOZE7RKz2qh50P5r0ej9AOi97MegLZ/n7R5XcRSAIayGEWCsQr9/G8lef8GFkQmCAwzpqc3FNoCwwEqyHMuhXsH7UxSg6hSY4Gy6jUf5wBAt2msBLoA+mDaBwRVywRyP0X6p7cy2FoGKC0LtsgP1PGXfwd/+c8bxr/H/+Ixxt8xHv/1+XxN/Of7VWiIqqhspbeqZZ0gGJnsEpav96BK7yjhNNFF+bTvOqhUenkmP6TnmIL8weHvf5jS/Merf743dmWJNjiqQos8U3MEQrcxjhI2D05pRwmLH2BD8/Re3dmrRQkncRrmODyk34gALtOaecW9GmywVHJ1ON2CMGix2voN8dAqdu6Ls8rQanxCm1vRLu2W5qUcTP+Qfjf7L6fj81f/9e8PyHVvLbBPB8bdlj3obot65qd1l9jDXoBMUBfnRo2PS/T85T0blzq7FZZEc1XUI1oAlhaAxPZJbQzVsm7TlhmPrHs1Trs8zCbaLXETnpbh8RhVsn6ARXxKrxb/WISiZPso/JJ/tvzbc7zq7/2FRvlCTp4VwaMLPB7B8QNsqZ7QxD+WGRZ4FDCF+PO/Tn4n7mTgvgdwtRzAdSrVCM6oVf94JAbYP8DMp/ULJXaLhk16AEw+XhB/Qz7/5eZ3x+fzPjz+9X6N9YbEuZOn1TahIMl6OH8EXFOIHMYQDkCTWLX/tP80aE4Mtk9BIi0kmZBiC0kaWIKygdxkndd/EurL2raNPpNboBpj9bYcW4mVgGoWlxe5SxpVFMLssqgsvWw75USluBGggrCneW4DqtBNLKwjbAgKRxWi/af9p/03mtvkRjI4y2C9+/W3g0N1Lv6foomh+uHnkvw0USMr/80l3qMfnfzsobzEr4LW3/ZOAfEfwc18eKertIdvuGe8ePfx+2DLfHtxuUZzp570jaVXFzmfTSmOVye4PJPeBS5vn+Wb7cn2Jud4cXmCG5wg3eYf4V3gihcn+NH9OIp4xE/ylQgvr7jHOf81cHkqzEdxbSVizojzG3KWcIk0Xzi3KWcep2g1o4NT53OnuHa4PJ7m45UQL27nOD8ShfOTHMF8jYvTnK4mN9mf4Jjf3Z5yYy8T6bbT4YmDYL6+OJPHdJVvp0K2Dt4jTRfJY77anrncZOvQj8ftTeaJrxfZU8xzQnS4FXU2O51L5iwepzLOGcccRbL5EridKyrn+RPnj3Bbiev58ETQqyT+AnFMPzk5yvwfzG7hp4A/EolOt9c2kezy3Tk88/bZnKH2NC1AoLUNrkXpWX40h7WI0qIIAE9Eo1O+Onn3Rn6+zPnyagFurGRzu193nrmYNrpZcnNX1Z6xXMryzNkt38bL7S1PeBeXq+YmUToi7bzAodqbSNtp4XoZ5yTb6FhIOy3gdM18oZuT2xzxo7y9ytyeODc5fZI/G09erPyu9UKOTT4A8832zA03+XZ7IzaJJ2fzEedLSxJpb89wlY+XB3XkG7i4zXkqElxNuD25eBdns1P7hU4VD8Sh4jdwr7bWC03HdPGjhYWb7QnenRPJF7pNwJUl34iUmRfAu+drx48QiW1/tNPhPc4pRNPCSj0H7+b0IGJ5WP4K/dsyP5ypkYV4SP5Jc+KjTwZn4hjom7Dafwd1rx9+vHHYce5C8+WPH3a89fWx7/vXDjle/twPTfjip48HHJ/42rdMwFc+8/rBZqNPfv07L+X51he/+Yk3Xz/AtDc+/s3Pp5dk++6Xvu4PMe2L3w9TMw==) **Figure : Access control domains** ## Secure peripheral image loading The secure peripheral image loading (PIL) of a TrustZone authenticates different images and configures the xPUs for all subsystems such as audio, camera, and video. For more information about xPU, see [Access control](https://docs.qualcomm.com/doc/80-70030-11/topic/features.html#section-access-control-features). ## SELinux SELinux is a security enhancement for Linux, providing greater control over system access. It implements mandatory access control (MAC) in the Linux kernel using the Linux security modules (LSM) framework. For more information, see [What’s SELinux?](https://www.redhat.com/en/topics/linux/what-is-selinux). The LSM framework includes the following controls: - Discretionary access control (DAC) - This is the standard form of Linux access control. The data owner has full control over the resource (such as data and files) and can update or modify the data. - Some applications (with root privilege) can override this control. Some resources, like the socket, are unchecked. - Access controls are provided with limited granularity, based on user and group identity. For example, File mode `–rwxr-xr-x-`. - MAC - A system‑wide security policy determines the Linux access controls for all processes, objects, and operations. - The policy can confine flawed and malicious applications or incautious users. It can even prevent users from escalating privileges such as root or UID 0. - MAC provides finer granularity to access controls, allowing access to many more resources other than files with more specific controls. For example, unlink, append only, or move a file. The figure shows the steps in the decision‑making chain for DAC and MAC: ![../../../../../_images/SELinux-mac-dac-updated.png](data:image/png;base64,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) **Figure : Linux security modules: DAC and MAC** SELinux supports three modes: - Enforcing mode: In this mode, the SEPolicy is enforced on the system. If the SEPolicy rules aren’t met when software is run, access is prevented. The kernel logs an attempted access violation as an access vector cache (AVC) denial message to `dmesg` and `journalctl`. - Permissive mode: In this mode, the SEPolicy isn’t enforced on the system. All denials are logged into `dmesg` and `journalctl` logs, but access of a process or software isn’t disallowed. - Disable mode (Default): In this mode, the SEPolicy isn’t enforced or logged. For information about enabling SELinux, see [Enable SELinux](https://docs.qualcomm.com/doc/80-70030-11/topic/enable-selinux.html#enable-selinux). To configure the SELinux modes, see [SELinux configuration](https://docs.qualcomm.com/doc/80-70030-11/topic/enable-selinux.html#section-ql1-bwm-m1c). ### SELinux layers The SELinux dynamic layer incorporates essential SELinux‑specific code modifications that activate and initialize the device when SELinux is enabled with a monolithic design. ![../../../../../_images/SELinux-folders-fig1.jpg](data:image/jpeg;base64,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) **Figure : SELinux layers** This layer is built on top of the meta‑SELinux layer, which is part of the Yocto upstream. It includes: - The recipe‑kernel, which contains the recipe to enable the required kernel configuration flags for SELinux. - The recipe‑security includes: - Policies for booting the device to the shell - Policies for Qualcomm services and test applications - Policies of upstream services in the form of patches - A recipe to manage compilation of Qualcomm policies ### SEPolicy SEPolicy is a directory that contains the core SELinux policy configuration. The upstream SEPolicy is defined in `sepolicy`, which is downloaded during the build and amended with Qualcomm SEPolicy at: `layers/meta-qcom-hwe/dynamic-layers/selinux/recipes-security/sepolicy/`. The upstream directory structure is adhered to, with `apps/kernel/system/services` added to the respective directory. The figure shows the high-level directory structure that’s merged and compiled to generate `policy.33`, which is the SEPolicy binary used or loaded during boot. ![../../../../../_images/sepolicy-figure-updated.png](data:image/png;base64,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) **Figure : SEPolicy high-level directory** For more information, see [Customize memory and SEPolicy](https://docs.qualcomm.com/doc/80-70030-11/topic/customize.html#customize). ## Secure debug Secure debug enables controlled re-enablement of debugging on secure devices. It supports configuring debug policies, managing device lifecycle states, and enabling specific debug capabilities such as JTAG access, crash dump collection, and subsystem-level logging. Secure debug provides controlled and policy-based access to debugging capabilities on secure platforms, ensuring that debug operations are enabled only for authorized devices, subsystems, and use cases. For more information, see [Debug Qualcomm TEE and secure devices](https://docs.qualcomm.com/doc/80-70030-11/topic/debug.html#debug). ### Device types Qualcomm Linux supports the following device types: - Non‑secure device > > > - Secure boot isn’t enabled. > - Debug is enabled for OEM‑controlled subsystems. - Secure device > > > - Image authentication fuses are blown to enable secure boot. > - Debug is disabled by setting all debug‑disable fuses. Note For fuse configuration details, see [SecTools V2: Fuse Blower User Guide (80-NM248-9)](https://docs.qualcomm.com/bundle/80-NM248-9/resource/80-NM248-9_REV_AB_Sectools_V2__Fuse_Blower_User_Guide.pdf). ### Debug use cases OEM debug enablement supports the following use cases: - JTAG > > > - Enables JTAG (invasive) debug on OEM‑controlled SoC subsystems. > - Qualcomm‑controlled subsystems (for example, trust manager engine (TME), always‑on processor (AOP), CPU control processor (CPUCP), modem vector, and others) are restricted and can’t be enabled for invasive debug by OEMs. - Crash dumps > > > - Enables RAM dump collection on OEM devices for crash analysis. > - Supported dump types include: > > > > > > > > > - Secure full dump: `SEC_FULL_DUMP` > > - Non‑secure full dump: `NS_FULL_DUMP` > > - Minidump: `MINI_DUMP` - Logs > > > - Enables logging for secure subsystems, such as TrustZone. ### Debug policy framework Qualcomm Linux supports debug policy framework to provide flexible and controlled debugging on secure devices. #### Key components - Lifecycle state (LCS) fuse > > > - A 2‑bit fuse set by OEMs. > - Allows bypassing serial‑number binding requirements for JTAG and crash dumps during development stages. - Debug entitlement certificate (DEC) > > > - A Qualcomm‑signed binary that defines the permitted debug capabilities on a device. - Debug policy > > > - Created by OEMs using SecTools. > - Specifies the intended debug capabilities, subject to the constraints defined by the selected DEC. ### LCS fuse settings The following table describes the LCS fuse settings and Qualcomm recommendations. Table: Fuse changes and recommendations | **Change** | **Description** | | --- | --- | | `LCS Fuse = OEM_DEV (0x01)` | JTAG/secure crash dump can be enabled on secure devices without serial number binding restrictions if the lifecycle state fuse is set to `OEM_DEV`.


**Qualcomm Recommendation:** Set the LCS fuse to `OEM_DEV` at an early stage of development until completion of PVT/MP milestones to allow ease of debug for non-secure and secure devices. | | `LCS Fuse = OEM_PROD (0x00 or 0x1X)` | JTAG/secure crash dump can be enabled on secure devices with serial number binding restrictions if the lifecycle state fuse is set to `OEM_PROD`.


**Qualcomm Recommendation:** Set the LCS fuse to `OEM_PROD` after achieving PVT/MP milestones. | Note The LCS fuse doesn’t affect functional behavior (for example, key rotation). It’s used by Qualcomm hardware and software only to control debug capabilities. ### DEC DEC is a Qualcomm‑signed binary that defines the permitted debug capabilities on a device. Qualcomm provides multiple DEC files as part of the software release at: /common/sectoolsv2/decs Copy to clipboard Each DEC enables different levels of debug capability based on the device LCS. The available DECs are: - `Dec‑FullDebug‑DevelopmentDeviceConstrained.bin`: > > > - Enables JTAG and crash dumps without serial‑number binding when `LCS = OEM_DEV`. - `Dec‑FullDebug‑SerialNumberConstrained.bin`: > > > - Enables JTAG and crash dumps with serial‑number binding. - `Dec‑LimitedDebug‑Unconstrained.bin`: > > > - Enables all crash dump types without serial‑number binding when `LCS = OEM_DEV`. > - Enables secure dumps with serial‑number binding and non‑secure dumps without binding when `LCS = OEM_PROD`. ### Debug policy A Debug policy image, also known as APPS debug policy (APDP), provides a mechanism to enable debugging on customer devices. The APDP defines required debug capabilities and specifies the debug for a particular subsystem only if the used DEC allows the debug capability. For example, an APDP can define JTAG capabilities for the QSEE subsystem only if it’s combined with a DEC that enables JTAG capabilities for Qualcomm TEE. You can generate an `APDP.mbn` file using the tme-secure-debug command provided by SecTools v2, with a DEC file and debug policy command-line options as inputs. SecTools v2 is released by Qualcomm using the metabuild at `/common/sectoolsv2`. - `xbl_sc` loads the APDP image and TME authenticates it. - Flash the APDP image into the following partition: ``. The following figure shows the structure of the debug policy ELF image. **Figure : Structure of the debug policy ELF image** #### Debug Policy data The debug policy defines the following: - Intended debug capabilities authorized by DEC. - Intended debug vector (for example, enable invasive debug for Qualcomm TEE subsystem). - Intended crash dump features (for example, full dump, non-secure dump, or minidump). - OEM test root for signature verification for OEM test-signed images. - Constraints in the debug policy image (for example, serial number). To log and debug security issues, see [Debug Qualcomm TEE and secure devices](https://docs.qualcomm.com/doc/80-70030-11/topic/debug.html#debug). ## Watch a video on Qualcomm Type-1 Hypervisor and trusted execution environment **Qualcomm Processor Security: TEE and Chipset Services** *Learn how to use Qualcomm:sup:`®` Type-1 Hypervisor and Trusted Execution Environment in this comprehensive tutorial. Dive deep into platform virtualization, secure communication, and the extensive security features offered by Qualcomm. Learn how to develop secure applications using Qualcomm tools and APIs, and understand the critical security use cases and compliance standards that Qualcomm supports. Perfect for users aiming to enhance device security and functionality.*
Last Published: Jun 25, 2026
## Qualcomm TEE Qualcomm TEE is the software that operates within the Arm TrustZone environment on the Qualcomm device. The TrustZone is a hardware-based security architecture enabled through a Secure mode of the Arm processor. It establishes two execution environments with system-wide hardware-enforced isolation. For more information, see [What’s TrustZone?](https://developer.arm.com/documentation/102418/0101/What-is-TrustZone-). Qualcomm offers a 64‑bit Arm 8.x processor system with hardware virtualization to run TrustZone. In the TrustZone architecture, there are two security states: - Secure - Non‑secure At the EL0, EL1, and EL2 [exception levels](https://developer.arm.com/documentation/102412/0103/Privilege-and-Exception-levels/Exception-levels), the processor can be in either the secure state or the non‑secure state while EL3 is always in the secure state. The operating system runs in non‑secure EL1. The transition from Non‑secure to Secure mode is facilitated through a Secure Monitor mode. Qualcomm TEE provides the following features: - Operation from hardware-protected memory - Support for power-collapse of security blocks such as the crypto engine, PRNG, inline crypto engine, and external protection units (xPU) - Support for a secure peripheral image loader (PIL) - Support for subsystem restart - Provision of content protection - Support for running trusted applications - Support for fuse management ### Trusted applications Trusted applications (TA) offer services within a secure environment for Linux clients that aren’t secure. Qualcomm TEE extends the following services to trusted applications: - Support for trusted applications to operate in the secure world at EL0 - Sand-boxing environment for trusted applications - Position-independent loading of trusted applications - Message passing between different trusted applications Trusted applications operate from the memory that’s protected by the hardware. However, the applications that require more memory can use double data rate (DDR) memory for loading and running. By default, an application is set to run from hardware-protected memory. ## Qualcomm Hypervisor Qualcomm^®^ Hypervisor provides a modern virtualization framework that allows multiple operating systems to run independently and concurrently, delivering high performance. Qualcomm Type-1 Hypervisor facilitates the hosting of multiple trusted execution environments for secure use cases. The figure shows the Qualcomm Hypervisor software architecture, components, and virtual machines. It also includes an example of one guest virtual machine using the Linux kernel. ![../../../../../_images/qualcomm-hypervisor-architecture-updated.png](data:image/png;base64,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) **Figure : Hypervisor architecture** Qualcomm Type-1 Hypervisor, also known as a native Hypervisor, does the following: - Provides enhanced security compared to Type 2 (hosted) Hypervisors - Supports multi-core, real-time operations that are independent of Linux - Operates distinctly, independently, and with higher privileges than Linux - Has a minimal impact on the performance The architecture of the Type-1 Hypervisor includes Qualcomm Hypervisor access control, which supports: - Multiple operating systems - Smaller attack surface The figure shows a Type-1 Hypervisor. ![../../../../../_images/type1-hypervisor-updated.png](data:image/png;base64,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) **Figure : Type-1 Hypervisor** ### Virtualization Virtual machines and CPUs provide flexibility and abstraction. The Qualcomm Hypervisor provides the following virtualization features: > > > Table : Qualcomm Hypervisor virtualization features > > > | **Feature** | **Description** | > | --- | --- | > | Memory management | | > | Interrupt virtualization | It virtualizes and maps interrupts to the correct and independent virtual machines | > | Scheduling | The virtualization CPU (VCPU) scheduler prevents virtual machine starvation during failure | > | Interprocess communication (IPC) | This includes shared memory, message passing (IPC) APIs, and virtual interrupts | > | Power management | It supports multiple virtual machines and adopts the lowest common denominator power state | ### Qualcomm Hypervisor BSP Qualcomm Hypervisor supports the following features within the board support package (BSP): - PIL - Access to SoC AC policy - System MMU driver - Pathway support for SMC TrustZone communication The figure shows all the features of a Qualcomm Hypervisor and the BSP, which collectively provide a complete hypervisor solution: ![../../../../../_images/qualcomm-hypervsior-bsp-updated.png](data:image/png;base64,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) **Figure : Qualcomm Hypervisor and BSP** ### Resource manager The exception level 1 (EL1) resource manager performs the following functions: - Creates and manages virtual machines - Handles and assigns the virtual machine admission control policy - Manages the I/O pass-through, which includes: - I/O space mapping and isolation - Interrupt routing configuration For more information, see [Qualcomm Linux Kernel Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-3/virtualization.html). ## Security hardening Security hardening is a process that minimizes the risk of system attacks by making it more challenging for attackers to exploit the system vulnerabilities. Kernel security hardening aligns with upstream kernel guidelines. Key kernel flags like KASLR, hardened user copy, stack protector, and permissions (RWX) are enabled. ### User space hardening The [security_flags.inc](https://git.yoctoproject.org/poky/tree/meta/conf/distro/include/security_flags.inc) file, a part of the [Yocto Project](https://www.thegoodpenguin.co.uk/blog/yocto-security-hardening-security-flags/) is used to enable security compiler and linker flags for a build. To extend this feature to the Qualcomm modules, add the following command to `qcom-security_flags.inc` (file path: [qcom-security_flags.inc](https://github.com/quic-yocto/meta-qcom-distro/blob/kirkstone/conf/distro/include/qcom-security_flags.inc)): require conf/distro/include/security_flags.inc Copy to clipboard Adding these flags may result in warnings or errors that can disrupt a build. However, Yocto provides a way to disable certain compiler flags for problematic packages. Modern compilers such as GCC and Clang offer a wide range of compiler flags that can make it more difficult for an attacker to exploit certain types of vulnerabilities. The following are the example flags with GCC: - The `Wformat` flag adds compile-time checks to detect issues related to the format of string arguments in common library functions such as `printf`, `scanf`, and `strftime`. - The `D_FORTIFY_SOURCE` flag adds compile and runtime checks to detect buffer overflows in memory and string functions. - The `Fstack-protector` flag adds runtime checks to detect buffer overflows and stack smashing. - The `Fpie` flag enables position-independent code, which allows for loading the binary at randomized locations, thus making certain types of attacks (like return-oriented programming) more difficult. - The `Wl,-z,relro,-z,now` flag makes it harder to abuse a binary global offset table. If there are warnings and errors, customizing these flags for some modules can break a build. The binaries in a file system can be verified if the compiler exploit mitigation features are applied using the Checksec tool. For information about making images more secure, see [The Yocto Project Documentation](https://docs.yoctoproject.org/dev/dev-manual/securing-images.html). ## Qualcomm wireless edge services Qualcomm^®^ wireless edge services (Qualcomm WES) is a suite of trusted services, rooted in hardware, which securely connects and manages devices. It provides the following services: - Feature licensing enables device features identified by a feature ID and an alias feature name. These features are enabled by installing the corresponding feature licenses or certificates. - Device attestation provides cryptographically signed and encrypted data items that describe the security state of the device and its software. These data items are useful for risk engines and other similar applications. - Secure provisioning enables the generation and use of cryptographic keys that are secured using unique device keys. These keys are used to: - Securely provision data to the device post-sale and over-the-air (OTA). - Sign data on the device. To install or upgrade QCS5430 SoftSKU feature packs, see [Install or upgrade SoftSKU feature packs](https://docs.qualcomm.com/doc/80-70030-11/topic/upgrade-qualcomm-wes-feature-pack.html#upgrade-qualcomm-wes-feature-pack). To develop applications that offer hardware-based attestation, zero-touch device provisioning, and chipset feature management, see [Qualcomm Linux Wireless Edge Services Guide](https://docs.qualcomm.com/bundle/resource/topics/80-70030-11B/overview.html). This feature is available to licensed users with authorized access. Note Qualcomm WES isn’t supported for Qualcomm Dragonwing™ IQ-615 1.7 release. ## Discrete trusted platform module A discrete trusted platform module (dTPM) is a dedicated hardware module that provides robust security features such as secure key storage, cryptographic operations, measured boot, and platform attestation. Qualcomm Linux supports dTPM integration, particularly for industrial and security-focused applications that require enhanced hardware-based protection. The dTPM key features are: - TPM 2.0 compliance: Full support for TPM 2.0 standard. - Measured boot: Platform integrity verification from UEFI onwards. - Secure storage: Hardware-backed protection for cryptographic keys and sensitive assets. - Open-source stack: Integration with TPM2 software stack (TSS, tpm2-tools, tpm2-abrmd, tpm2-tss-engine, tpm2-pkcs11). - Linux kernel support: Upstream drivers for TPM 2.0 (SPI interface). The following use cases are supported: - Secure boot and measured boot - Key management for cryptographic operations - Platform attestation for industrial IoT - Integration with OpenSSL and PKCS#11 using TPM2 engines ### Qualcomm Linux chipsets supporting dTPM The dTPM support is enabled and verified for Qualcomm Linux custom software distributions on QCS5430/QCS6490 and IQ-9075/IQ-9100. It includes the following integration and capabilities: - Hardware interface: dTPM is connected using SPI (typically SPI11), with reset controlled by GPIO. - Device tree support: Only device tree changes are required for hardware detection; no kernel driver modifications are needed. - Software stack: Yocto-based Linux distributions include the full TPM2 software stack (for example, tpm2-tss and tpm2-tools). - Virtualization support: Multi-VM (KVM) configurations are supported, with dTPM resource manager passthrough for guest VMs. - Platform specificity: dTPM isn’t enabled by default on all Qualcomm SoCs; it’s intended for platforms requiring industrial-grade security and measured boot. - Availability: The TPM2 software stack is included in QC Linux Yocto layers for supported platforms. #### Software stack - Yocto layers: TPM user-space stack (for example, tpm2-tss, tpm2-tools) is enabled through dedicated recipes. - Kernel driver: Uses upstream TPM drivers; minimal changes are needed for hardware bring-up. See [Bootlin Source Drivers](https://elixir.bootlin.com/linux/v6.10.4/source/drivers/char/tpm). - User space interaction: Applications interact with the TPM through the libtss stack. See [Linux TPM2 & TSS2 Software](https://github.com/tpm2-software). #### Hardware integration - SPI interface: The TPM is connected through SPI lines (for example, SPI11), with reset controlled by a dedicated GPIO. - Device tree configuration: TPM support is enabled by adding a TPM node to the device tree, allowing the open-source TPM driver to probe the hardware. - GPIO control: The PMIC node is updated to manage TPM reset functionality. #### External dependencies - TPM2 software stack: Includes components such as tpm2-tss, tpm2-tools, and cryptographic engines for user-space interaction. See [tpm2-tools git.X](https://layers.openembedded.org/layerindex/recipe/87697/) and [tpm2-software/tpm2-tools](https://github.com/tpm2-software/tpm2-tools). - UEFI firmware support: Requires firmware implementing EFI\_TCG2\_PROTOCOL for measured boot and platform attestation. - Linux kernel integration: Relies upon upstream TPM drivers located in `build-qcom-wayland/workspace//drivers/char/tpm`. #### Software enablement To set up the Qualcomm Linux custom software distribution for QCS5430/QCS6490 and IQ-9075/IQ-9100, see the [Qualcomm Linux 1.7 Release Notes](https://docs.qualcomm.com/doc/80-70030-300). #### Kernel - TPM driver support: Uses upstream Linux kernel TPM drivers; no more changes are required for standard dTPM hardware bring-up. - Device tree configuration: Device tree updates are enough to enable hardware detection. #### Yocto/User space Enable the TPM2 software stack through Yocto recipes, including: - `tpm2-tss` – TPM2 Software Stack (TSS) library - `tpm2-tools` – Command-line tools for TPM2 - `tpm2-abrmd` – TPM2 access broker and resource manager daemon - `tpm2-tss-engine` – OpenSSL engine for TPM2 - `tpm2-pkcs11` – PKCS#11 interface for TPM2 #### Installation example The following figure shows an example for installation. > > > ![../../../../../_images/dtpm-installation-example.jpg](data:image/jpeg;base64,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) #### Validation - Use tpm2-tools for functional validation, including tests for random number generation (RNG), key management, and measured boot. - Unit tests are available within the tpm2-tss and tpm2-tools packages to verify TPM2 functionality. #### Verify the TPM2 functionality - Test example **Prerequisites** - Download the TPM2 tools package from the official upstream source before beginning the setup. > > > - See [tpm2-tools git.X](https://layers.openembedded.org/layerindex/recipe/87697/). > - See [tpm2-software/tpm2-tools](https://github.com/tpm2-software/tpm2-tools). - Enable the secure shell (SSH) in permissive mode to securely access your host device. > > > - See [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-254/how_to.html#use-ssh). 1. Connect to the device console using SSH. 2. Enable Write access. mount -o rw,remount /usr Copy to clipboard 3. Copy the TPM2 tools package from another terminal on the host computer. scp /path/to/tpm2-tools_5.4-r0_armv8-2a.ipk root@:/data/ Copy to clipboard 4. Install the TPM2 tools. opkg install --force-reinstall --force-depends /data/tpm2-tools_5.4-r0_armv8-2a.ipk Copy to clipboard 5. Verify the TPM2 functionality. > > > 1. Generate random data. > > > tpm2_getrandom --hex -T device:/dev/tpmrm0 16 > Copy to clipboard > 2. Create a primary key. > > > tpm2_createprimary -C o -c primary.ctx > Copy to clipboard > 3. Create the RSA key pair. > > > tpm2_create -G rsa -u key.pub -r key.pri -C primary.ctx > Copy to clipboard > 4. Load the key. > > > tpm2_load -C primary.ctx -u key.pub -r key.pri -n key.name -c key.ctx > Copy to clipboard > 5. Encrypt the file. > > > echo "wangdg love eating fruit" > secre.data > tpm2_rsaencrypt -c key.ctx -o jiami_file.enc secre.data > cat jiami_file.enc > Copy to clipboard > > > See the encrypted data. > 6. Decrypt the file > > > tpm2_rsadecrypt -c key.ctx -o jiemi.dec jiami_file.enc > cat jiemi.dec > Copy to clipboard > > > See the original message. > 7. Hash the file > > > tpm2_hash -C e -g sha1 -o hash.bin -t ticket.bin secre.data --hex > cat hash.bin > Copy to clipboard ## Next steps - To learn about TrustZone and security framework, see [Security architecture](https://docs.qualcomm.com/doc/80-70030-11/topic/architecture.html#architecture). - To learn about security tools and how to integrate them into your workflows, see [Security tools](https://docs.qualcomm.com/doc/80-70030-11/topic/tools.html#tools). Last Published: Jun 25, 2026 [Previous Topic Security architecture](https://docs.qualcomm.com/bundle/publicresource/80-70030-11/topics/architecture.md) [Next Topic Security tools](https://docs.qualcomm.com/bundle/publicresource/80-70030-11/topics/tools.md)