# Qualcomm secure processing unit

Source: [https://docs.qualcomm.com/doc/80-PV086-5P/topic/qualcomm-secure-processing-unit.html](https://docs.qualcomm.com/doc/80-PV086-5P/topic/qualcomm-secure-processing-unit.html)

The SPU240 is a standalone Qualcomm Secure Processing Unit with an embedded processor core, RAM, and integrated cryptography unit. It incorporates standalone boot capability and hardware-based anti-replay technology. It meets the Common Criteria’s EAL4+ and FIPS 140-2 requirements.The SPU240 provides a secure, tamper-resistant execution environment. It is resistant to attacks such as:

- Side-channel analysis
- Fault attacks
- Invasive attacks

Following are some of the use cases that can benefit from the SPU:

**Key management use cases**: device unlocking, user data file encryption, and application usage of OS key management such as Keymaster

**Biometrics use cases**: ability to run core portions of biometric authenticators on the SPU while additional code runs on the TEE

**Connected use cases**: integration of use cases such as integrated UICC for eSIM

The specifications of SPU240 are:

- New crypto management unit (CMU)
- Independent boot chain (PBL)
- New key management unit
- CPU performance improvement
- Physical protection through multiple countermeasures
- RPM timers + watchdog
- Operating condition sensors

Figure :  1. Secure processing unit
      
      <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export secure-processing-unit.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="1.64583in" height="1.39583in" viewbox="0 0 118.5 100.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st7"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvConvertTheme"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #d99690; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st3 { fill: #000000; font-family: Arial; font-size: 0.666664em; font-weight: bold }
.svg-1 .st4 { fill: none; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st5 { fill: #000000; font-family: Arial; font-size: 0.666664em }
.svg-1 .st6 { font-size: 1em }
.svg-1 .st7 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape226-1" v:mid="226" v:groupcontext="shape" transform="translate(0.75,101.25) scale(1,-1)">		<title>Sheet.226</title>		<rect x="0" y="1.5" width="117" height="99" class="st1"></rect>	</g>	<g id="shape227-3" v:mid="227" v:groupcontext="shape" transform="translate(21.159,102) scale(1,-1)">		<title>Sheet.227</title>		<desc>Secure processor</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="39.591" cy="92.625" width="79.19" height="15.75"></v:textrect>		<rect x="0" y="84.75" width="79.182" height="15.75" class="st2"></rect>		<text x="5.8" y="-90.23" transform="scale(1,-1)" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Secure processor</text>		</g>	<g id="shape229-6" v:mid="229" v:groupcontext="shape" transform="translate(6.75,120.562) scale(1,-1)">		<title>Sheet.229</title>		<rect x="0" y="78" width="49.5" height="22.5" class="st4"></rect>	</g>	<g id="shape266-8" v:mid="266" v:groupcontext="shape" transform="translate(6.375,-9)">		<title>Sheet.266</title>		<rect x="0" y="78" width="49.5" height="22.5" class="st4"></rect>	</g>	<g id="shape267-10" v:mid="267" v:groupcontext="shape" transform="translate(60.375,-9) scale(-1,1)">		<title>Sheet.267</title>		<desc>Anti-replay island</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="30.75" cy="89.25" width="61.51" height="22.5"></v:textrect>		<rect x="0" y="78" width="61.5" height="22.5" class="st2"></rect>		<text x="-49.87" y="86.85" transform="scale(-1,1)" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Anti-replay <tspan x="-41.2" dy="1.2em" class="st6">island</tspan></text>		</g>	<g id="shape228-14" v:mid="228" v:groupcontext="shape" transform="translate(45,-61.875) scale(-1,1)">		<title>Sheet.228</title>		<desc>CMU</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="14.4375" cy="93.1875" width="28.88" height="14.625"></v:textrect>		<rect x="0" y="85.875" width="28.875" height="14.625" class="st2"></rect>		<text x="-23.55" y="95.59" transform="scale(-1,1)" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CMU</text>		</g>	<g id="shape237-17" v:mid="237" v:groupcontext="shape" transform="translate(60.375,-9)">		<title>Sheet.237</title>		<rect x="0" y="78" width="49.5" height="22.5" class="st4"></rect>	</g>	<g id="shape238-19" v:mid="238" v:groupcontext="shape" transform="translate(114.375,-9) scale(-1,1)">		<title>Sheet.238</title>		<desc>QFPROM</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="30.75" cy="89.25" width="61.51" height="22.5"></v:textrect>		<rect x="0" y="78" width="61.5" height="22.5" class="st2"></rect>		<text x="-48.3" y="91.65" transform="scale(-1,1)" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>QFPROM</text>		</g>	<g id="shape268-22" v:mid="268" v:groupcontext="shape" transform="translate(6.375,-33.75)">		<title>Sheet.268</title>		<rect x="0" y="78" width="49.5" height="22.5" class="st4"></rect>	</g>	<g id="shape269-24" v:mid="269" v:groupcontext="shape" transform="translate(54,-33.75) scale(-1,1)">		<title>Sheet.269</title>		<desc>CPU</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="23.0625" cy="89.25" width="46.13" height="22.5"></v:textrect>		<rect x="0" y="78" width="46.125" height="22.5" class="st2"></rect>		<text x="-31.51" y="91.65" transform="scale(-1,1)" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>CPU</text>		</g>	<g id="shape272-27" v:mid="272" v:groupcontext="shape" transform="translate(59.625,120.844) scale(1,-1)">		<title>Sheet.272</title>		<rect x="0" y="78" width="50.625" height="22.5" class="st4"></rect>	</g>	<g id="shape273-29" v:mid="273" v:groupcontext="shape" transform="translate(97.6875,-61.0312) scale(-1,1)">		<title>Sheet.273</title>		<desc>RAM</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="14.4375" cy="93.1875" width="28.88" height="14.625"></v:textrect>		<rect x="0" y="85.875" width="28.875" height="14.625" class="st2"></rect>		<text x="-23.33" y="95.59" transform="scale(-1,1)" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>RAM</text>		</g>	<g id="shape274-32" v:mid="274" v:groupcontext="shape" transform="translate(60,144.75) scale(1,-1)">		<title>Sheet.274</title>		<rect x="0" y="78" width="50.25" height="22.5" class="st4"></rect>	</g>	<g id="shape275-34" v:mid="275" v:groupcontext="shape" transform="translate(107.625,-37.125) scale(-1,1)">		<title>Sheet.275</title>		<desc>Security sensors</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="21.1875" cy="93.1875" width="42.38" height="14.625"></v:textrect>		<rect x="0" y="85.875" width="42.375" height="14.625" class="st2"></rect>		<text x="-35.64" y="90.79" transform="scale(-1,1)" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Security <tspan x="-35.19" dy="1.2em" class="st6">sensors</tspan></text>		</g></g>
</svg>

See the *Secure Processor Unit (SPU) – Anti-Replay Island (ARI) Overview for SM8150/SM8250/SXR2130P/SA8155/QCS8250/QCS8245 Application Note* (80-PD867-16).

**Parent Topic:** [SoC subsystems](https://docs.qualcomm.com/doc/80-PV086-5P/topic/SoC-subsystem.html)

Last Published: Jul 07, 2023

[Previous Topic
Always-on subsystem](https://docs.qualcomm.com/bundle/publicresource/80-PV086-5P/topics/always-on-subsystem.md) [Next Topic
Compute DSP with Quad HVX and HCP 1.1](https://docs.qualcomm.com/bundle/publicresource/80-PV086-5P/topics/compute-dsp-with-quad-hvx-and-hcp.md)