# QCC730 boot flow

Source: [https://docs.qualcomm.com/doc/80-Y8730-5/topic/qcc730_boot_flow.html](https://docs.qualcomm.com/doc/80-Y8730-5/topic/qcc730_boot_flow.html)

QCC730 boot sequence can be divided into two relatively independent stages:

	
- From PBL to SBL
- From SBL to APP

## From PBL to SBL

Source: [https://docs.qualcomm.com/doc/80-Y8730-5/topic/qcc730_boot_flow.html](https://docs.qualcomm.com/doc/80-Y8730-5/topic/qcc730_boot_flow.html)

This is the first boot stage, which loads and executes the SBL.

	
The PBL performs the following jobs after power-up:

1. Apply PBL patch if it exists
2. Initialize system resource
3. Check and handle boot reason
4. Read FDT to choose SBL image
5. Authenticate SBL image
6. Load image to RAM
7. Load PBL PATCH segment
8. Verify the hash of each image segment
9. Jump to SBL

	
Note: 		
In the above nine steps,

- Step 5 is skipped if the boot is a warm boot.
- Step 7 is skipped if this isn't an OTA new image.

	
Figure : QCC730 boot sequence: PBL to SBL				<?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 pbl_to_sbl.svg boot PBL&#62;SBL -->
<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" width="6.01604in" height="6.05975in" viewbox="0 0 433.155 436.302" xml:space="preserve" color-interpolation-filters="sRGB" class="st9"><style>.svg-1 .st1 { fill: #ffffff; stroke: #ffffff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #dee3ec; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.24 }
.svg-1 .st3 { fill: #000000; font-family: Arial; font-size: 1.08334em; letter-spacing: normal }
.svg-1 .st4 { font-size: 1em; font-family: Arial; letter-spacing: normal }
.svg-1 .st5 { marker-end: url("#1-mrkr5-44"); stroke: #4a5a75; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.75 }
.svg-1 .st6 { fill: #4a5a75; fill-opacity: 1; stroke: #4a5a75; stroke-opacity: 1; stroke-width: 0.40983606557377 }
.svg-1 .st7 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st8 { fill: #000000; font-family: Arial; font-size: 1.00001em; letter-spacing: normal }
.svg-1 .st9 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend5">		<path d="M 2 1 L 0 0 L 1.98117 -0.993387 C 1.67173 -0.364515 1.67301 0.372641 1.98465 1.00043 " style="stroke:none"></path>	</g>	<marker id="1-mrkr5-44" class="st6" refx="-4.27" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-2.44,-2.44) "></use>	</marker></defs><g>	<title></title>	<g id="shape27-1" transform="translate(0.375,-0.375)">		<title></title>		<rect x="0" y="0.750016" width="432.405" height="435.552" rx="7.2" ry="7.2" class="st1"></rect>	</g>	<g id="shape1-3" transform="translate(22.501,-364.546)">		<title></title>		<desc>PBL start</desc>		<path d="M24.47 436.3 L73.41 436.3 A24.4711 24.4711 -180 0 0 73.41 387.36 L24.47 387.36 A24.4711 24.4711 -180 1 0 24.47					 436.3 Z" class="st2"></path>		<text x="22.21" y="415.73" class="st3">PBL start</text>		</g>	<g id="shape2-6" transform="translate(22.501,-278.897)">		<title></title>		<desc>Apply PBL patch</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="18.59" y="407.93" class="st3">Apply PBL <tspan x="33.04" dy="1.2em" class="st4">patch</tspan></text>		</g>	<g id="shape3-10" transform="translate(22.501,-193.248)">		<title></title>		<desc>System init</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="17.16" y="415.73" class="st3">System init</text>		</g>	<g id="shape4-13" transform="translate(22.501,-107.599)">		<title></title>		<desc>Boot reason handle</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="13.89" y="407.93" class="st3">Boot reason <tspan x="29.42" dy="1.2em" class="st4">handle</tspan></text>		</g>	<g id="shape5-17" transform="translate(22.501,-21.9504)">		<title></title>		<desc>Read FDT, choose SBL</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="17.16" y="407.93" class="st3">Read FDT, <tspan x="13.89" dy="1.2em" class="st4">choose SBL</tspan></text>		</g>	<g id="shape6-21" transform="translate(242.741,-327.84)">		<title></title>		<desc>Cold boot?</desc>		<path d="M0 411.83 L48.94 387.36 L97.88 411.83 L48.94 436.3 L0 411.83 Z" class="st2"></path>		<text x="17.5" y="415.73" class="st3">Cold boot?</text>		</g>	<g id="shape8-24" transform="translate(242.741,-248.308)">		<title></title>		<desc>Authenticate SBL</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="12.8" y="407.93" class="st3">Authenticate <tspan x="36.66" dy="1.2em" class="st4">SBL</tspan></text>		</g>	<g id="shape9-28" transform="translate(242.741,-172.856)">		<title></title>		<desc>Load SBL to RAM</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="13.16" y="407.93" class="st3">Load SBL to <tspan x="34.5" dy="1.2em" class="st4">RAM</tspan></text>		</g>	<g id="shape10-32" transform="translate(242.741,-97.4031)">		<title></title>		<desc>Hash verification</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="33.77" y="407.93" class="st3">Hash <tspan x="17.87" dy="1.2em" class="st4">verification</tspan></text>		</g>	<g id="shape11-36" transform="translate(242.741,-21.9504)">		<title></title>		<desc>Execute SBL</desc>		<rect x="0" y="387.36" width="97.8845" height="48.9423" class="st2"></rect>		<text x="11.36" y="415.73" class="st3">Execute SBL</text>		</g>	<g id="shape12-39" transform="translate(62.4433,-364.546)">		<title></title>		<path d="M9 436.3 L9 465.54" class="st5"></path>	</g>	<g id="shape13-45" transform="translate(62.4433,-278.897)">		<title></title>		<path d="M9 436.3 L9 465.54" class="st5"></path>	</g>	<g id="shape14-50" transform="translate(62.4433,-193.248)">		<title></title>		<path d="M9 436.3 L9 465.54" class="st5"></path>	</g>	<g id="shape15-55" transform="translate(62.4433,-107.599)">		<title></title>		<path d="M9 436.3 L9 465.54" class="st5"></path>	</g>	<g id="shape16-60" transform="translate(120.386,-46.4215)">		<title></title>		<path d="M0 436.3 L13.5 436.3 L13.5 92.44 L171.3 92.44 L171.3 98.47" class="st5"></path>	</g>	<g id="shape18-65" transform="translate(282.683,-327.84)">		<title></title>		<path d="M9 436.3 L9 459.42" class="st5"></path>	</g>	<g id="shape19-70" transform="translate(282.683,-248.308)">		<title></title>		<path d="M9 436.3 L9 455.34" class="st5"></path>	</g>	<g id="shape20-75" transform="translate(282.683,-172.856)">		<title></title>		<path d="M9 436.3 L9 455.34" class="st5"></path>	</g>	<g id="shape21-80" transform="translate(282.683,-97.4031)">		<title></title>		<path d="M9 436.3 L9 455.34" class="st5"></path>	</g>	<g id="shape22-85" transform="translate(331.626,-352.311)">		<title></title>		<path d="M9 436.3 L42.65 436.3 L42.65 591.29 L16.47 591.29" class="st5"></path>	</g>	<g id="shape23-90" transform="translate(362.143,-307.788)">		<title></title>		<desc>No</desc>		<rect x="0" y="420.84" width="25.6366" height="15.4625" class="st7"></rect>		<text x="5.15" y="432.17" class="st8">No</text>		</g>	<g id="shape24-93" transform="translate(273.766,-307.788)">		<title></title>		<desc>Yes</desc>		<rect x="0" y="420.84" width="35.8348" height="15.4625" class="st7"></rect>		<text x="7.58" y="432.17" class="st8">Yes</text>		</g></g>
</svg>

## From SBL to APP

Source: [https://docs.qualcomm.com/doc/80-Y8730-5/topic/qcc730_boot_flow.html](https://docs.qualcomm.com/doc/80-Y8730-5/topic/qcc730_boot_flow.html)

Once SBL is loaded, the second boot stage starts. In this stage, SBL takes charge of the boot and performs the following jobs:

1. Read partition table/FDT from flash/RRAM to choose APP image
2. Authenticate selected APP image
3. Load RAM segments to RAM
4. Load RRAM segments to RRAM
5. Verify the hash for each segment
6. Jump to APP entry

	
Note: 		
Steps 2, 3, 4, 5 are skipped because the image is a BIN file.

	
Figure : QCC730 boot sequence: SBL to APP				<?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 sbl_to_app.svg boot SBL to APP -->
<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" width="2.7009in" height="7.11585in" viewbox="0 0 194.465 512.341" xml:space="preserve" color-interpolation-filters="sRGB" class="st7"><style>.svg-2 .st1 { fill: #f7f8fa; stroke: #ffffff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-2 .st2 { fill: #dee3ec; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.24 }
.svg-2 .st3 { fill: #000000; font-family: Arial; font-size: 1.08334em; letter-spacing: normal }
.svg-2 .st4 { font-size: 1em; font-family: Arial; letter-spacing: normal }
.svg-2 .st5 { marker-end: url("#2-mrkr5-36"); stroke: #4a5a75; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.75 }
.svg-2 .st6 { fill: #4a5a75; fill-opacity: 1; stroke: #4a5a75; stroke-opacity: 1; stroke-width: 0.40983606557377 }
.svg-2 .st7 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend5">		<path d="M 2 1 L 0 0 L 1.98117 -0.993387 C 1.67173 -0.364515 1.67301 0.372641 1.98465 1.00043 " style="stroke:none"></path>	</g>	<marker id="2-mrkr5-36" class="st6" refx="-4.27" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend5" transform="scale(-2.44,-2.44) "></use>	</marker></defs><g>	<title></title>	<g id="shape22-1" transform="translate(0.375,-0.375)">		<title></title>		<rect x="0" y="0.750014" width="193.715" height="511.591" rx="7.2" ry="7.2" class="st1"></rect>	</g>	<g id="shape1-3" transform="translate(32.4746,-453.023)">		<title></title>		<desc>SBL entry</desc>		<path d="M17.86 512.34 L111.1 512.34 A17.8551 17.8551 -180 0 0 111.1 476.63 L17.86 476.63 A17.8551 17.8551 -180 1 0 17.86					 512.34 Z" class="st2"></path>		<text x="35.93" y="498.39" class="st3">SBL entry</text>		</g>	<g id="shape2-6" transform="translate(23.137,-393.353)">		<title></title>		<desc>Flash init</desc>		<rect x="0" y="472.015" width="147.629" height="40.3266" class="st2"></rect>		<text x="47.8" y="496.08" class="st3">Flash init</text>		</g>	<g id="shape3-9" transform="translate(23.137,-331.603)">		<title></title>		<desc>Read partition table for APP image</desc>		<rect x="0" y="472.015" width="147.629" height="40.3266" class="st2"></rect>		<text x="8.05" y="488.28" class="st3">Read partition table for <tspan x="41.3" dy="1.2em" class="st4">APP image</tspan></text>		</g>	<g id="shape4-13" transform="translate(23.137,-269.853)">		<title></title>		<desc>Authenticate APP image</desc>		<rect x="0" y="472.015" width="147.629" height="40.3266" class="st2"></rect>		<text x="3.35" y="496.08" class="st3">Authenticate APP image</text>		</g>	<g id="shape10-16" transform="translate(23.137,-208.103)">		<title></title>		<desc>Load to RAM for RAM segments</desc>		<rect x="0" y="472.015" width="147.629" height="40.3266" class="st2"></rect>		<text x="10.24" y="488.28" class="st3">Load to RAM for RAM <tspan x="45.63" dy="1.2em" class="st4">segments</tspan></text>		</g>	<g id="shape11-20" transform="translate(23.137,-146.353)">		<title></title>		<desc>Load to RRAM for RRAM segments</desc>		<rect x="0" y="472.015" width="147.629" height="40.3266" class="st2"></rect>		<text x="21.79" y="488.28" class="st3">Load to RRAM for <tspan x="24.69" dy="1.2em" class="st4">RRAM segments</tspan></text>		</g>	<g id="shape12-24" transform="translate(23.137,-84.6027)">		<title></title>		<desc>Hash verification for each segment</desc>		<rect x="0" y="472.015" width="147.629" height="40.3266" class="st2"></rect>		<text x="16.37" y="488.28" class="st3">Hash verification for <tspan x="32.98" dy="1.2em" class="st4">each segment</tspan></text>		</g>	<g id="shape13-28" transform="translate(23.137,-22.8526)">		<title></title>		<desc>Jump to APP entry</desc>		<rect x="0" y="472.015" width="147.629" height="40.3266" class="st2"></rect>		<text x="19.62" y="496.08" class="st3">Jump to APP entry</text>		</g>	<g id="shape15-31" transform="translate(87.9514,-453.023)">		<title></title>		<path d="M9 512.34 L9 524.21" class="st5"></path>	</g>	<g id="shape16-37" transform="translate(87.9514,-393.353)">		<title></title>		<path d="M9 512.34 L9 526.29" class="st5"></path>	</g>	<g id="shape17-42" transform="translate(87.9514,-331.603)">		<title></title>		<path d="M9 512.34 L9 526.29" class="st5"></path>	</g>	<g id="shape18-47" transform="translate(87.9514,-269.853)">		<title></title>		<path d="M9 512.34 L9 526.29" class="st5"></path>	</g>	<g id="shape19-52" transform="translate(87.9514,-208.103)">		<title></title>		<path d="M9 512.34 L9 526.29" class="st5"></path>	</g>	<g id="shape20-57" transform="translate(87.9514,-146.353)">		<title></title>		<path d="M9 512.34 L9 526.29" class="st5"></path>	</g>	<g id="shape21-62" transform="translate(87.9514,-84.6027)">		<title></title>		<path d="M9 512.34 L9 526.29" class="st5"></path>	</g></g>
</svg>

Last Published: Apr 27, 2026

Previous Topic
 
Configuration BIN binaries Next Topic

Build and flash QCC730 images