1\relax 2\providecommand\hyper@newdestlabel[2]{} 3\providecommand\babel@aux[2]{} 4\@nameuse{bbl@beforestart} 5\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} 6\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined 7\global\let\oldcontentsline\contentsline 8\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} 9\global\let\oldnewlabel\newlabel 10\gdef\newlabel#1#2{\newlabelxx{#1}#2} 11\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} 12\AtEndDocument{\ifx\hyper@anchor\@undefined 13\let\contentsline\oldcontentsline 14\let\newlabel\oldnewlabel 15\fi} 16\fi} 17\global\let\hyper@last\relax 18\gdef\HyperFirstAtBeginDocument#1{#1} 19\providecommand\HyField@AuxAddToFields[1]{} 20\providecommand\HyField@AuxAddToCoFields[2]{} 21\babel@aux{english}{} 22\newlabel{index::doc}{{}{1}{}{section*.2}{}} 23\@writefile{toc}{\contentsline {chapter}{\numberline {1}About}{1}{chapter.1}\protected@file@percent } 24\@writefile{lof}{\addvspace {10\p@ }} 25\@writefile{lot}{\addvspace {10\p@ }} 26\newlabel{about/index:about}{{1}{1}{About}{chapter.1}{}} 27\newlabel{about/index::doc}{{1}{1}{About}{chapter.1}{}} 28\@writefile{toc}{\contentsline {section}{\numberline {1.1}Feature Overview}{1}{section.1.1}\protected@file@percent } 29\newlabel{about/features:feature-overview}{{1.1}{1}{Feature Overview}{section.1.1}{}} 30\newlabel{about/features::doc}{{1.1}{1}{Feature Overview}{section.1.1}{}} 31\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}Current features}{1}{subsection.1.1.1}\protected@file@percent } 32\newlabel{about/features:current-features}{{1.1.1}{1}{Current features}{subsection.1.1.1}{}} 33\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.2}Still to come}{2}{subsection.1.1.2}\protected@file@percent } 34\newlabel{about/features:still-to-come}{{1.1.2}{2}{Still to come}{subsection.1.1.2}{}} 35\@writefile{toc}{\contentsline {section}{\numberline {1.2}Release Processes}{3}{section.1.2}\protected@file@percent } 36\newlabel{about/release-information:release-processes}{{1.2}{3}{Release Processes}{section.1.2}{}} 37\newlabel{about/release-information::doc}{{1.2}{3}{Release Processes}{section.1.2}{}} 38\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}Project Release Cadence}{3}{subsection.1.2.1}\protected@file@percent } 39\newlabel{about/release-information:project-release-cadence}{{1.2.1}{3}{Project Release Cadence}{subsection.1.2.1}{}} 40\@writefile{toc}{\contentsline {subsubsection}{Upcoming Releases}{3}{subsubsection*.3}\protected@file@percent } 41\newlabel{about/release-information:upcoming-releases}{{1.2.1}{3}{Upcoming Releases}{subsubsection*.3}{}} 42\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}Removal of Deprecated Interfaces}{3}{subsection.1.2.2}\protected@file@percent } 43\newlabel{about/release-information:removal-of-deprecated-interfaces}{{1.2.2}{3}{Removal of Deprecated Interfaces}{subsection.1.2.2}{}} 44\@writefile{toc}{\contentsline {section}{\numberline {1.3}Project Maintenance}{4}{section.1.3}\protected@file@percent } 45\newlabel{about/maintainers:project-maintenance}{{1.3}{4}{Project Maintenance}{section.1.3}{}} 46\newlabel{about/maintainers::doc}{{1.3}{4}{Project Maintenance}{section.1.3}{}} 47\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.1}Maintainers}{4}{subsection.1.3.1}\protected@file@percent } 48\newlabel{about/maintainers:maintainers}{{1.3.1}{4}{Maintainers}{subsection.1.3.1}{}} 49\newlabel{about/maintainers:id1}{{1.3.1}{4}{Maintainers}{subsection.1.3.1}{}} 50\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.2}Code owners}{5}{subsection.1.3.2}\protected@file@percent } 51\newlabel{about/maintainers:code-owners}{{1.3.2}{5}{Code owners}{subsection.1.3.2}{}} 52\newlabel{about/maintainers:id2}{{1.3.2}{5}{Code owners}{subsection.1.3.2}{}} 53\@writefile{toc}{\contentsline {subsubsection}{Common Code}{5}{subsubsection*.4}\protected@file@percent } 54\newlabel{about/maintainers:common-code}{{1.3.2}{5}{Common Code}{subsubsection*.4}{}} 55\@writefile{toc}{\contentsline {paragraph}{Armv7\sphinxhyphen {}A architecture port}{5}{paragraph*.5}\protected@file@percent } 56\newlabel{about/maintainers:armv7-a-architecture-port}{{1.3.2}{5}{Armv7\sphinxhyphen {}A architecture port}{paragraph*.5}{}} 57\@writefile{toc}{\contentsline {paragraph}{Build Definitions for CMake Build System}{5}{paragraph*.6}\protected@file@percent } 58\newlabel{about/maintainers:build-definitions-for-cmake-build-system}{{1.3.2}{5}{Build Definitions for CMake Build System}{paragraph*.6}{}} 59\@writefile{toc}{\contentsline {paragraph}{Software Delegated Exception Interface (SDEI)}{5}{paragraph*.7}\protected@file@percent } 60\newlabel{about/maintainers:software-delegated-exception-interface-sdei}{{1.3.2}{5}{Software Delegated Exception Interface (SDEI)}{paragraph*.7}{}} 61\@writefile{toc}{\contentsline {paragraph}{Trusted Boot}{5}{paragraph*.8}\protected@file@percent } 62\newlabel{about/maintainers:trusted-boot}{{1.3.2}{5}{Trusted Boot}{paragraph*.8}{}} 63\@writefile{toc}{\contentsline {paragraph}{Secure Partition Manager (SPM)}{6}{paragraph*.9}\protected@file@percent } 64\newlabel{about/maintainers:secure-partition-manager-spm}{{1.3.2}{6}{Secure Partition Manager (SPM)}{paragraph*.9}{}} 65\@writefile{toc}{\contentsline {paragraph}{Exception Handling Framework (EHF)}{6}{paragraph*.10}\protected@file@percent } 66\newlabel{about/maintainers:exception-handling-framework-ehf}{{1.3.2}{6}{Exception Handling Framework (EHF)}{paragraph*.10}{}} 67\@writefile{toc}{\contentsline {paragraph}{Realm Management Extension (RME)}{6}{paragraph*.11}\protected@file@percent } 68\newlabel{about/maintainers:realm-management-extension-rme}{{1.3.2}{6}{Realm Management Extension (RME)}{paragraph*.11}{}} 69\@writefile{toc}{\contentsline {subsubsection}{Drivers, Libraries and Framework Code}{6}{subsubsection*.12}\protected@file@percent } 70\newlabel{about/maintainers:drivers-libraries-and-framework-code}{{1.3.2}{6}{Drivers, Libraries and Framework Code}{subsubsection*.12}{}} 71\@writefile{toc}{\contentsline {paragraph}{Console API framework}{6}{paragraph*.13}\protected@file@percent } 72\newlabel{about/maintainers:console-api-framework}{{1.3.2}{6}{Console API framework}{paragraph*.13}{}} 73\@writefile{toc}{\contentsline {paragraph}{coreboot support libraries}{7}{paragraph*.14}\protected@file@percent } 74\newlabel{about/maintainers:coreboot-support-libraries}{{1.3.2}{7}{coreboot support libraries}{paragraph*.14}{}} 75\@writefile{toc}{\contentsline {paragraph}{eMMC/UFS drivers}{7}{paragraph*.15}\protected@file@percent } 76\newlabel{about/maintainers:emmc-ufs-drivers}{{1.3.2}{7}{eMMC/UFS drivers}{paragraph*.15}{}} 77\@writefile{toc}{\contentsline {paragraph}{JTAG DCC console driver}{7}{paragraph*.16}\protected@file@percent } 78\newlabel{about/maintainers:jtag-dcc-console-driver}{{1.3.2}{7}{JTAG DCC console driver}{paragraph*.16}{}} 79\@writefile{toc}{\contentsline {paragraph}{Power State Coordination Interface (PSCI)}{8}{paragraph*.17}\protected@file@percent } 80\newlabel{about/maintainers:power-state-coordination-interface-psci}{{1.3.2}{8}{Power State Coordination Interface (PSCI)}{paragraph*.17}{}} 81\@writefile{toc}{\contentsline {paragraph}{DebugFS}{8}{paragraph*.18}\protected@file@percent } 82\newlabel{about/maintainers:debugfs}{{1.3.2}{8}{DebugFS}{paragraph*.18}{}} 83\@writefile{toc}{\contentsline {paragraph}{Firmware Configuration Framework (FCONF)}{8}{paragraph*.19}\protected@file@percent } 84\newlabel{about/maintainers:firmware-configuration-framework-fconf}{{1.3.2}{8}{Firmware Configuration Framework (FCONF)}{paragraph*.19}{}} 85\@writefile{toc}{\contentsline {paragraph}{Performance Measurement Framework (PMF)}{8}{paragraph*.20}\protected@file@percent } 86\newlabel{about/maintainers:performance-measurement-framework-pmf}{{1.3.2}{8}{Performance Measurement Framework (PMF)}{paragraph*.20}{}} 87\@writefile{toc}{\contentsline {paragraph}{Arm CPU libraries}{9}{paragraph*.21}\protected@file@percent } 88\newlabel{about/maintainers:arm-cpu-libraries}{{1.3.2}{9}{Arm CPU libraries}{paragraph*.21}{}} 89\@writefile{toc}{\contentsline {paragraph}{Reliability Availability Serviceabilty (RAS) framework}{9}{paragraph*.22}\protected@file@percent } 90\newlabel{about/maintainers:reliability-availability-serviceabilty-ras-framework}{{1.3.2}{9}{Reliability Availability Serviceabilty (RAS) framework}{paragraph*.22}{}} 91\@writefile{toc}{\contentsline {paragraph}{Activity Monitors Unit (AMU) extensions}{9}{paragraph*.23}\protected@file@percent } 92\newlabel{about/maintainers:activity-monitors-unit-amu-extensions}{{1.3.2}{9}{Activity Monitors Unit (AMU) extensions}{paragraph*.23}{}} 93\@writefile{toc}{\contentsline {paragraph}{Memory Partitioning And Monitoring (MPAM) extensions}{9}{paragraph*.24}\protected@file@percent } 94\newlabel{about/maintainers:memory-partitioning-and-monitoring-mpam-extensions}{{1.3.2}{9}{Memory Partitioning And Monitoring (MPAM) extensions}{paragraph*.24}{}} 95\@writefile{toc}{\contentsline {paragraph}{Pointer Authentication (PAuth) and Branch Target Identification (BTI) extensions}{9}{paragraph*.25}\protected@file@percent } 96\newlabel{about/maintainers:pointer-authentication-pauth-and-branch-target-identification-bti-extensions}{{1.3.2}{9}{Pointer Authentication (PAuth) and Branch Target Identification (BTI) extensions}{paragraph*.25}{}} 97\@writefile{toc}{\contentsline {paragraph}{Statistical Profiling Extension (SPE)}{10}{paragraph*.26}\protected@file@percent } 98\newlabel{about/maintainers:statistical-profiling-extension-spe}{{1.3.2}{10}{Statistical Profiling Extension (SPE)}{paragraph*.26}{}} 99\@writefile{toc}{\contentsline {paragraph}{Scalable Vector Extension (SVE)}{10}{paragraph*.27}\protected@file@percent } 100\newlabel{about/maintainers:scalable-vector-extension-sve}{{1.3.2}{10}{Scalable Vector Extension (SVE)}{paragraph*.27}{}} 101\@writefile{toc}{\contentsline {paragraph}{Standard C library}{10}{paragraph*.28}\protected@file@percent } 102\newlabel{about/maintainers:standard-c-library}{{1.3.2}{10}{Standard C library}{paragraph*.28}{}} 103\@writefile{toc}{\contentsline {paragraph}{Library At ROM (ROMlib)}{10}{paragraph*.29}\protected@file@percent } 104\newlabel{about/maintainers:library-at-rom-romlib}{{1.3.2}{10}{Library At ROM (ROMlib)}{paragraph*.29}{}} 105\@writefile{toc}{\contentsline {paragraph}{Translation tables (\sphinxstyleliteralintitle {\sphinxupquote {xlat\_tables}}) library}{10}{paragraph*.30}\protected@file@percent } 106\newlabel{about/maintainers:translation-tables-xlat-tables-library}{{1.3.2}{10}{Translation tables (\sphinxstyleliteralintitle {\sphinxupquote {xlat\_tables}}) library}{paragraph*.30}{}} 107\@writefile{toc}{\contentsline {paragraph}{IO abstraction layer}{11}{paragraph*.31}\protected@file@percent } 108\newlabel{about/maintainers:io-abstraction-layer}{{1.3.2}{11}{IO abstraction layer}{paragraph*.31}{}} 109\@writefile{toc}{\contentsline {paragraph}{GIC driver}{11}{paragraph*.32}\protected@file@percent } 110\newlabel{about/maintainers:gic-driver}{{1.3.2}{11}{GIC driver}{paragraph*.32}{}} 111\@writefile{toc}{\contentsline {paragraph}{Libfdt wrappers}{11}{paragraph*.33}\protected@file@percent } 112\newlabel{about/maintainers:libfdt-wrappers}{{1.3.2}{11}{Libfdt wrappers}{paragraph*.33}{}} 113\@writefile{toc}{\contentsline {paragraph}{Firmware Encryption Framework}{11}{paragraph*.34}\protected@file@percent } 114\newlabel{about/maintainers:firmware-encryption-framework}{{1.3.2}{11}{Firmware Encryption Framework}{paragraph*.34}{}} 115\@writefile{toc}{\contentsline {paragraph}{Measured Boot}{12}{paragraph*.35}\protected@file@percent } 116\newlabel{about/maintainers:measured-boot}{{1.3.2}{12}{Measured Boot}{paragraph*.35}{}} 117\@writefile{toc}{\contentsline {paragraph}{System Control and Management Interface (SCMI) Server}{12}{paragraph*.36}\protected@file@percent } 118\newlabel{about/maintainers:system-control-and-management-interface-scmi-server}{{1.3.2}{12}{System Control and Management Interface (SCMI) Server}{paragraph*.36}{}} 119\@writefile{toc}{\contentsline {paragraph}{Max Power Mitigation Mechanism (MPMM)}{12}{paragraph*.37}\protected@file@percent } 120\newlabel{about/maintainers:max-power-mitigation-mechanism-mpmm}{{1.3.2}{12}{Max Power Mitigation Mechanism (MPMM)}{paragraph*.37}{}} 121\@writefile{toc}{\contentsline {paragraph}{Granule Protection Tables Library (GPT\sphinxhyphen {}RME)}{12}{paragraph*.38}\protected@file@percent } 122\newlabel{about/maintainers:granule-protection-tables-library-gpt-rme}{{1.3.2}{12}{Granule Protection Tables Library (GPT\sphinxhyphen {}RME)}{paragraph*.38}{}} 123\@writefile{toc}{\contentsline {subsubsection}{Platform Ports}{13}{subsubsection*.39}\protected@file@percent } 124\newlabel{about/maintainers:platform-ports}{{1.3.2}{13}{Platform Ports}{subsubsection*.39}{}} 125\@writefile{toc}{\contentsline {paragraph}{Allwinner ARMv8 platform port}{13}{paragraph*.40}\protected@file@percent } 126\newlabel{about/maintainers:allwinner-armv8-platform-port}{{1.3.2}{13}{Allwinner ARMv8 platform port}{paragraph*.40}{}} 127\@writefile{toc}{\contentsline {paragraph}{Amlogic Meson S905 (GXBB) platform port}{13}{paragraph*.41}\protected@file@percent } 128\newlabel{about/maintainers:amlogic-meson-s905-gxbb-platform-port}{{1.3.2}{13}{Amlogic Meson S905 (GXBB) platform port}{paragraph*.41}{}} 129\@writefile{toc}{\contentsline {paragraph}{Amlogic Meson S905x (GXL) platform port}{13}{paragraph*.42}\protected@file@percent } 130\newlabel{about/maintainers:amlogic-meson-s905x-gxl-platform-port}{{1.3.2}{13}{Amlogic Meson S905x (GXL) platform port}{paragraph*.42}{}} 131\@writefile{toc}{\contentsline {paragraph}{Amlogic Meson S905X2 (G12A) platform port}{13}{paragraph*.43}\protected@file@percent } 132\newlabel{about/maintainers:amlogic-meson-s905x2-g12a-platform-port}{{1.3.2}{13}{Amlogic Meson S905X2 (G12A) platform port}{paragraph*.43}{}} 133\@writefile{toc}{\contentsline {paragraph}{Amlogic Meson A113D (AXG) platform port}{14}{paragraph*.44}\protected@file@percent } 134\newlabel{about/maintainers:amlogic-meson-a113d-axg-platform-port}{{1.3.2}{14}{Amlogic Meson A113D (AXG) platform port}{paragraph*.44}{}} 135\@writefile{toc}{\contentsline {paragraph}{Arm FPGA platform port}{14}{paragraph*.45}\protected@file@percent } 136\newlabel{about/maintainers:arm-fpga-platform-port}{{1.3.2}{14}{Arm FPGA platform port}{paragraph*.45}{}} 137\@writefile{toc}{\contentsline {paragraph}{Arm FVP Platform port}{14}{paragraph*.46}\protected@file@percent } 138\newlabel{about/maintainers:arm-fvp-platform-port}{{1.3.2}{14}{Arm FVP Platform port}{paragraph*.46}{}} 139\@writefile{toc}{\contentsline {paragraph}{Arm Juno Platform port}{14}{paragraph*.47}\protected@file@percent } 140\newlabel{about/maintainers:arm-juno-platform-port}{{1.3.2}{14}{Arm Juno Platform port}{paragraph*.47}{}} 141\@writefile{toc}{\contentsline {paragraph}{Arm Morello and N1SDP Platform ports}{14}{paragraph*.48}\protected@file@percent } 142\newlabel{about/maintainers:arm-morello-and-n1sdp-platform-ports}{{1.3.2}{14}{Arm Morello and N1SDP Platform ports}{paragraph*.48}{}} 143\@writefile{toc}{\contentsline {paragraph}{Arm Rich IoT Platform ports}{15}{paragraph*.49}\protected@file@percent } 144\newlabel{about/maintainers:arm-rich-iot-platform-ports}{{1.3.2}{15}{Arm Rich IoT Platform ports}{paragraph*.49}{}} 145\@writefile{toc}{\contentsline {paragraph}{Arm Reference Design platform ports}{15}{paragraph*.50}\protected@file@percent } 146\newlabel{about/maintainers:arm-reference-design-platform-ports}{{1.3.2}{15}{Arm Reference Design platform ports}{paragraph*.50}{}} 147\@writefile{toc}{\contentsline {paragraph}{Arm Total Compute platform port}{15}{paragraph*.51}\protected@file@percent } 148\newlabel{about/maintainers:arm-total-compute-platform-port}{{1.3.2}{15}{Arm Total Compute platform port}{paragraph*.51}{}} 149\@writefile{toc}{\contentsline {paragraph}{HiSilicon HiKey and HiKey960 platform ports}{16}{paragraph*.52}\protected@file@percent } 150\newlabel{about/maintainers:hisilicon-hikey-and-hikey960-platform-ports}{{1.3.2}{16}{HiSilicon HiKey and HiKey960 platform ports}{paragraph*.52}{}} 151\@writefile{toc}{\contentsline {paragraph}{HiSilicon Poplar platform port}{16}{paragraph*.53}\protected@file@percent } 152\newlabel{about/maintainers:hisilicon-poplar-platform-port}{{1.3.2}{16}{HiSilicon Poplar platform port}{paragraph*.53}{}} 153\@writefile{toc}{\contentsline {paragraph}{Intel SocFPGA platform ports}{16}{paragraph*.54}\protected@file@percent } 154\newlabel{about/maintainers:intel-socfpga-platform-ports}{{1.3.2}{16}{Intel SocFPGA platform ports}{paragraph*.54}{}} 155\@writefile{toc}{\contentsline {paragraph}{MediaTek platform ports}{16}{paragraph*.55}\protected@file@percent } 156\newlabel{about/maintainers:mediatek-platform-ports}{{1.3.2}{16}{MediaTek platform ports}{paragraph*.55}{}} 157\@writefile{toc}{\contentsline {paragraph}{Marvell platform ports and SoC drivers}{16}{paragraph*.56}\protected@file@percent } 158\newlabel{about/maintainers:marvell-platform-ports-and-soc-drivers}{{1.3.2}{16}{Marvell platform ports and SoC drivers}{paragraph*.56}{}} 159\@writefile{toc}{\contentsline {paragraph}{NVidia platform ports}{17}{paragraph*.57}\protected@file@percent } 160\newlabel{about/maintainers:nvidia-platform-ports}{{1.3.2}{17}{NVidia platform ports}{paragraph*.57}{}} 161\@writefile{toc}{\contentsline {paragraph}{NXP QorIQ Layerscape platform ports}{17}{paragraph*.58}\protected@file@percent } 162\newlabel{about/maintainers:nxp-qoriq-layerscape-platform-ports}{{1.3.2}{17}{NXP QorIQ Layerscape platform ports}{paragraph*.58}{}} 163\@writefile{toc}{\contentsline {paragraph}{NXP i.MX 7 WaRP7 platform port and SoC drivers}{17}{paragraph*.59}\protected@file@percent } 164\newlabel{about/maintainers:nxp-i-mx-7-warp7-platform-port-and-soc-drivers}{{1.3.2}{17}{NXP i.MX 7 WaRP7 platform port and SoC drivers}{paragraph*.59}{}} 165\@writefile{toc}{\contentsline {paragraph}{NXP i.MX 8 platform port}{17}{paragraph*.60}\protected@file@percent } 166\newlabel{about/maintainers:nxp-i-mx-8-platform-port}{{1.3.2}{17}{NXP i.MX 8 platform port}{paragraph*.60}{}} 167\@writefile{toc}{\contentsline {paragraph}{NXP i.MX8M platform port}{18}{paragraph*.61}\protected@file@percent } 168\newlabel{about/maintainers:nxp-i-mx8m-platform-port}{{1.3.2}{18}{NXP i.MX8M platform port}{paragraph*.61}{}} 169\@writefile{toc}{\contentsline {paragraph}{NXP QorIQ Layerscape common code for platform ports}{18}{paragraph*.62}\protected@file@percent } 170\newlabel{about/maintainers:nxp-qoriq-layerscape-common-code-for-platform-ports}{{1.3.2}{18}{NXP QorIQ Layerscape common code for platform ports}{paragraph*.62}{}} 171\@writefile{toc}{\contentsline {paragraph}{NXP SoC Part LX2160A and its platform port}{18}{paragraph*.63}\protected@file@percent } 172\newlabel{about/maintainers:nxp-soc-part-lx2160a-and-its-platform-port}{{1.3.2}{18}{NXP SoC Part LX2160A and its platform port}{paragraph*.63}{}} 173\@writefile{toc}{\contentsline {paragraph}{QEMU platform port}{18}{paragraph*.64}\protected@file@percent } 174\newlabel{about/maintainers:qemu-platform-port}{{1.3.2}{18}{QEMU platform port}{paragraph*.64}{}} 175\@writefile{toc}{\contentsline {paragraph}{QTI platform port}{18}{paragraph*.65}\protected@file@percent } 176\newlabel{about/maintainers:qti-platform-port}{{1.3.2}{18}{QTI platform port}{paragraph*.65}{}} 177\@writefile{toc}{\contentsline {paragraph}{Raspberry Pi 3 platform port}{19}{paragraph*.66}\protected@file@percent } 178\newlabel{about/maintainers:raspberry-pi-3-platform-port}{{1.3.2}{19}{Raspberry Pi 3 platform port}{paragraph*.66}{}} 179\@writefile{toc}{\contentsline {paragraph}{Raspberry Pi 4 platform port}{19}{paragraph*.67}\protected@file@percent } 180\newlabel{about/maintainers:raspberry-pi-4-platform-port}{{1.3.2}{19}{Raspberry Pi 4 platform port}{paragraph*.67}{}} 181\@writefile{toc}{\contentsline {paragraph}{Renesas rcar\sphinxhyphen {}gen3 platform port}{19}{paragraph*.68}\protected@file@percent } 182\newlabel{about/maintainers:renesas-rcar-gen3-platform-port}{{1.3.2}{19}{Renesas rcar\sphinxhyphen {}gen3 platform port}{paragraph*.68}{}} 183\@writefile{toc}{\contentsline {paragraph}{Renesas RZ/G2 platform port}{20}{paragraph*.69}\protected@file@percent } 184\newlabel{about/maintainers:renesas-rz-g2-platform-port}{{1.3.2}{20}{Renesas RZ/G2 platform port}{paragraph*.69}{}} 185\@writefile{toc}{\contentsline {paragraph}{RockChip platform port}{20}{paragraph*.70}\protected@file@percent } 186\newlabel{about/maintainers:rockchip-platform-port}{{1.3.2}{20}{RockChip platform port}{paragraph*.70}{}} 187\@writefile{toc}{\contentsline {paragraph}{STM32MP1 platform port}{20}{paragraph*.71}\protected@file@percent } 188\newlabel{about/maintainers:stm32mp1-platform-port}{{1.3.2}{20}{STM32MP1 platform port}{paragraph*.71}{}} 189\@writefile{toc}{\contentsline {paragraph}{Synquacer platform port}{21}{paragraph*.72}\protected@file@percent } 190\newlabel{about/maintainers:synquacer-platform-port}{{1.3.2}{21}{Synquacer platform port}{paragraph*.72}{}} 191\@writefile{toc}{\contentsline {paragraph}{Texas Instruments platform port}{21}{paragraph*.73}\protected@file@percent } 192\newlabel{about/maintainers:texas-instruments-platform-port}{{1.3.2}{21}{Texas Instruments platform port}{paragraph*.73}{}} 193\@writefile{toc}{\contentsline {paragraph}{UniPhier platform port}{21}{paragraph*.74}\protected@file@percent } 194\newlabel{about/maintainers:uniphier-platform-port}{{1.3.2}{21}{UniPhier platform port}{paragraph*.74}{}} 195\@writefile{toc}{\contentsline {paragraph}{Xilinx platform port}{21}{paragraph*.75}\protected@file@percent } 196\newlabel{about/maintainers:xilinx-platform-port}{{1.3.2}{21}{Xilinx platform port}{paragraph*.75}{}} 197\@writefile{toc}{\contentsline {subsubsection}{Secure Payloads and Dispatchers}{21}{subsubsection*.76}\protected@file@percent } 198\newlabel{about/maintainers:secure-payloads-and-dispatchers}{{1.3.2}{21}{Secure Payloads and Dispatchers}{subsubsection*.76}{}} 199\@writefile{toc}{\contentsline {paragraph}{OP\sphinxhyphen {}TEE dispatcher}{21}{paragraph*.77}\protected@file@percent } 200\newlabel{about/maintainers:op-tee-dispatcher}{{1.3.2}{21}{OP\sphinxhyphen {}TEE dispatcher}{paragraph*.77}{}} 201\@writefile{toc}{\contentsline {paragraph}{TLK/Trusty secure payloads}{22}{paragraph*.78}\protected@file@percent } 202\newlabel{about/maintainers:tlk-trusty-secure-payloads}{{1.3.2}{22}{TLK/Trusty secure payloads}{paragraph*.78}{}} 203\@writefile{toc}{\contentsline {paragraph}{Test Secure Payload (TSP)}{22}{paragraph*.79}\protected@file@percent } 204\newlabel{about/maintainers:test-secure-payload-tsp}{{1.3.2}{22}{Test Secure Payload (TSP)}{paragraph*.79}{}} 205\@writefile{toc}{\contentsline {subsubsection}{Tools}{22}{subsubsection*.80}\protected@file@percent } 206\newlabel{about/maintainers:tools}{{1.3.2}{22}{Tools}{subsubsection*.80}{}} 207\@writefile{toc}{\contentsline {paragraph}{Fiptool}{22}{paragraph*.81}\protected@file@percent } 208\newlabel{about/maintainers:fiptool}{{1.3.2}{22}{Fiptool}{paragraph*.81}{}} 209\@writefile{toc}{\contentsline {paragraph}{Cert\_create tool}{22}{paragraph*.82}\protected@file@percent } 210\newlabel{about/maintainers:cert-create-tool}{{1.3.2}{22}{Cert\_create tool}{paragraph*.82}{}} 211\@writefile{toc}{\contentsline {paragraph}{Encrypt\_fw tool}{22}{paragraph*.83}\protected@file@percent } 212\newlabel{about/maintainers:encrypt-fw-tool}{{1.3.2}{22}{Encrypt\_fw tool}{paragraph*.83}{}} 213\@writefile{toc}{\contentsline {paragraph}{Sptool}{23}{paragraph*.84}\protected@file@percent } 214\newlabel{about/maintainers:sptool}{{1.3.2}{23}{Sptool}{paragraph*.84}{}} 215\@writefile{toc}{\contentsline {paragraph}{Build system}{23}{paragraph*.85}\protected@file@percent } 216\newlabel{about/maintainers:build-system}{{1.3.2}{23}{Build system}{paragraph*.85}{}} 217\@writefile{toc}{\contentsline {subsubsection}{Threat Model}{23}{subsubsection*.86}\protected@file@percent } 218\newlabel{about/maintainers:threat-model}{{1.3.2}{23}{Threat Model}{subsubsection*.86}{}} 219\@writefile{toc}{\contentsline {subsubsection}{Conventional Changelog Extensions}{23}{subsubsection*.87}\protected@file@percent } 220\newlabel{about/maintainers:conventional-changelog-extensions}{{1.3.2}{23}{Conventional Changelog Extensions}{subsubsection*.87}{}} 221\@writefile{toc}{\contentsline {section}{\numberline {1.4}Support \& Contact}{24}{section.1.4}\protected@file@percent } 222\newlabel{about/contact:support-contact}{{1.4}{24}{Support \& Contact}{section.1.4}{}} 223\newlabel{about/contact::doc}{{1.4}{24}{Support \& Contact}{section.1.4}{}} 224\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.1}Mailing Lists}{24}{subsection.1.4.1}\protected@file@percent } 225\newlabel{about/contact:mailing-lists}{{1.4.1}{24}{Mailing Lists}{subsection.1.4.1}{}} 226\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.2}Open Tech Forum Call}{24}{subsection.1.4.2}\protected@file@percent } 227\newlabel{about/contact:open-tech-forum-call}{{1.4.2}{24}{Open Tech Forum Call}{subsection.1.4.2}{}} 228\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.3}Issue Tracker}{24}{subsection.1.4.3}\protected@file@percent } 229\newlabel{about/contact:issue-tracker}{{1.4.3}{24}{Issue Tracker}{subsection.1.4.3}{}} 230\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.4}Arm Licensees}{24}{subsection.1.4.4}\protected@file@percent } 231\newlabel{about/contact:arm-licensees}{{1.4.4}{24}{Arm Licensees}{subsection.1.4.4}{}} 232\@writefile{toc}{\contentsline {section}{\numberline {1.5}Contributor Acknowledgements}{24}{section.1.5}\protected@file@percent } 233\newlabel{about/acknowledgements:contributor-acknowledgements}{{1.5}{24}{Contributor Acknowledgements}{section.1.5}{}} 234\newlabel{about/acknowledgements::doc}{{1.5}{24}{Contributor Acknowledgements}{section.1.5}{}} 235\@writefile{toc}{\contentsline {chapter}{\numberline {2}Getting Started}{27}{chapter.2}\protected@file@percent } 236\@writefile{lof}{\addvspace {10\p@ }} 237\@writefile{lot}{\addvspace {10\p@ }} 238\newlabel{getting_started/index:getting-started}{{2}{27}{Getting Started}{chapter.2}{}} 239\newlabel{getting_started/index::doc}{{2}{27}{Getting Started}{chapter.2}{}} 240\@writefile{toc}{\contentsline {section}{\numberline {2.1}Prerequisites}{27}{section.2.1}\protected@file@percent } 241\newlabel{getting_started/prerequisites:prerequisites}{{2.1}{27}{Prerequisites}{section.2.1}{}} 242\newlabel{getting_started/prerequisites::doc}{{2.1}{27}{Prerequisites}{section.2.1}{}} 243\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Build Host}{27}{subsection.2.1.1}\protected@file@percent } 244\newlabel{getting_started/prerequisites:build-host}{{2.1.1}{27}{Build Host}{subsection.2.1.1}{}} 245\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Toolchain}{27}{subsection.2.1.2}\protected@file@percent } 246\newlabel{getting_started/prerequisites:toolchain}{{2.1.2}{27}{Toolchain}{subsection.2.1.2}{}} 247\newlabel{getting_started/prerequisites:prerequisites-toolchain}{{2.1.2}{27}{Toolchain}{subsection.2.1.2}{}} 248\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Software and Libraries}{28}{subsection.2.1.3}\protected@file@percent } 249\newlabel{getting_started/prerequisites:software-and-libraries}{{2.1.3}{28}{Software and Libraries}{subsection.2.1.3}{}} 250\newlabel{getting_started/prerequisites:prerequisites-software-and-libraries}{{2.1.3}{28}{Software and Libraries}{subsection.2.1.3}{}} 251\@writefile{toc}{\contentsline {subsubsection}{Package Installation (Linux)}{28}{subsubsection*.88}\protected@file@percent } 252\newlabel{getting_started/prerequisites:package-installation-linux}{{2.1.3}{28}{Package Installation (Linux)}{subsubsection*.88}{}} 253\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Supporting Files}{29}{subsection.2.1.4}\protected@file@percent } 254\newlabel{getting_started/prerequisites:supporting-files}{{2.1.4}{29}{Supporting Files}{subsection.2.1.4}{}} 255\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.5}Getting the TF\sphinxhyphen {}A Source}{29}{subsection.2.1.5}\protected@file@percent } 256\newlabel{getting_started/prerequisites:getting-the-tf-a-source}{{2.1.5}{29}{Getting the TF\sphinxhyphen {}A Source}{subsection.2.1.5}{}} 257\newlabel{getting_started/prerequisites:prerequisites-get-source}{{2.1.5}{29}{Getting the TF\sphinxhyphen {}A Source}{subsection.2.1.5}{}} 258\@writefile{toc}{\contentsline {subsubsection}{Additional Steps for Contributors}{29}{subsubsection*.89}\protected@file@percent } 259\newlabel{getting_started/prerequisites:additional-steps-for-contributors}{{2.1.5}{29}{Additional Steps for Contributors}{subsubsection*.89}{}} 260\@writefile{toc}{\contentsline {section}{\numberline {2.2}Building Documentation}{29}{section.2.2}\protected@file@percent } 261\newlabel{getting_started/docs-build:building-documentation}{{2.2}{29}{Building Documentation}{section.2.2}{}} 262\newlabel{getting_started/docs-build::doc}{{2.2}{29}{Building Documentation}{section.2.2}{}} 263\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Prerequisites}{30}{subsection.2.2.1}\protected@file@percent } 264\newlabel{getting_started/docs-build:prerequisites}{{2.2.1}{30}{Prerequisites}{subsection.2.2.1}{}} 265\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Building rendered documentation}{30}{subsection.2.2.2}\protected@file@percent } 266\newlabel{getting_started/docs-build:building-rendered-documentation}{{2.2.2}{30}{Building rendered documentation}{subsection.2.2.2}{}} 267\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}Building rendered documentation from a container}{31}{subsection.2.2.3}\protected@file@percent } 268\newlabel{getting_started/docs-build:building-rendered-documentation-from-a-container}{{2.2.3}{31}{Building rendered documentation from a container}{subsection.2.2.3}{}} 269\@writefile{toc}{\contentsline {section}{\numberline {2.3}Building Supporting Tools}{31}{section.2.3}\protected@file@percent } 270\newlabel{getting_started/tools-build:building-supporting-tools}{{2.3}{31}{Building Supporting Tools}{section.2.3}{}} 271\newlabel{getting_started/tools-build::doc}{{2.3}{31}{Building Supporting Tools}{section.2.3}{}} 272\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Building and using the FIP tool}{31}{subsection.2.3.1}\protected@file@percent } 273\newlabel{getting_started/tools-build:building-and-using-the-fip-tool}{{2.3.1}{31}{Building and using the FIP tool}{subsection.2.3.1}{}} 274\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Building the Certificate Generation Tool}{32}{subsection.2.3.2}\protected@file@percent } 275\newlabel{getting_started/tools-build:building-the-certificate-generation-tool}{{2.3.2}{32}{Building the Certificate Generation Tool}{subsection.2.3.2}{}} 276\newlabel{getting_started/tools-build:tools-build-cert-create}{{2.3.2}{32}{Building the Certificate Generation Tool}{subsection.2.3.2}{}} 277\@writefile{toc}{\contentsline {subsubsection}{Building the Firmware Encryption Tool}{33}{subsubsection*.90}\protected@file@percent } 278\newlabel{getting_started/tools-build:building-the-firmware-encryption-tool}{{2.3.2}{33}{Building the Firmware Encryption Tool}{subsubsection*.90}{}} 279\newlabel{getting_started/tools-build:tools-build-enctool}{{2.3.2}{33}{Building the Firmware Encryption Tool}{subsubsection*.90}{}} 280\@writefile{toc}{\contentsline {section}{\numberline {2.4}Performing an Initial Build}{33}{section.2.4}\protected@file@percent } 281\newlabel{getting_started/initial-build:performing-an-initial-build}{{2.4}{33}{Performing an Initial Build}{section.2.4}{}} 282\newlabel{getting_started/initial-build::doc}{{2.4}{33}{Performing an Initial Build}{section.2.4}{}} 283\@writefile{toc}{\contentsline {section}{\numberline {2.5}Build Options}{35}{section.2.5}\protected@file@percent } 284\newlabel{getting_started/build-options:build-options}{{2.5}{35}{Build Options}{section.2.5}{}} 285\newlabel{getting_started/build-options::doc}{{2.5}{35}{Build Options}{section.2.5}{}} 286\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.1}Common build options}{35}{subsection.2.5.1}\protected@file@percent } 287\newlabel{getting_started/build-options:common-build-options}{{2.5.1}{35}{Common build options}{subsection.2.5.1}{}} 288\newlabel{getting_started/build-options:build-options-common}{{2.5.1}{35}{Common build options}{subsection.2.5.1}{}} 289\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.2}GICv3 driver options}{45}{subsection.2.5.2}\protected@file@percent } 290\newlabel{getting_started/build-options:gicv3-driver-options}{{2.5.2}{45}{GICv3 driver options}{subsection.2.5.2}{}} 291\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.3}Debugging options}{46}{subsection.2.5.3}\protected@file@percent } 292\newlabel{getting_started/build-options:debugging-options}{{2.5.3}{46}{Debugging options}{subsection.2.5.3}{}} 293\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.4}Firmware update options}{46}{subsection.2.5.4}\protected@file@percent } 294\newlabel{getting_started/build-options:firmware-update-options}{{2.5.4}{46}{Firmware update options}{subsection.2.5.4}{}} 295\@writefile{toc}{\contentsline {section}{\numberline {2.6}Image Terminology}{47}{section.2.6}\protected@file@percent } 296\newlabel{getting_started/image-terminology:image-terminology}{{2.6}{47}{Image Terminology}{section.2.6}{}} 297\newlabel{getting_started/image-terminology::doc}{{2.6}{47}{Image Terminology}{section.2.6}{}} 298\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.1}General Notes}{47}{subsection.2.6.1}\protected@file@percent } 299\newlabel{getting_started/image-terminology:general-notes}{{2.6.1}{47}{General Notes}{subsection.2.6.1}{}} 300\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.2}Trusted Firmware Images}{47}{subsection.2.6.2}\protected@file@percent } 301\newlabel{getting_started/image-terminology:trusted-firmware-images}{{2.6.2}{47}{Trusted Firmware Images}{subsection.2.6.2}{}} 302\@writefile{toc}{\contentsline {subsubsection}{AP Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL1}}}{47}{subsubsection*.91}\protected@file@percent } 303\newlabel{getting_started/image-terminology:ap-boot-rom-ap-bl1}{{2.6.2}{47}{AP Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL1}}}{subsubsection*.91}{}} 304\@writefile{toc}{\contentsline {subsubsection}{AP RAM Firmware: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL2}}}{48}{subsubsection*.92}\protected@file@percent } 305\newlabel{getting_started/image-terminology:ap-ram-firmware-ap-bl2}{{2.6.2}{48}{AP RAM Firmware: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL2}}}{subsubsection*.92}{}} 306\@writefile{toc}{\contentsline {subsubsection}{EL3 Runtime Firmware: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL31}}}{48}{subsubsection*.93}\protected@file@percent } 307\newlabel{getting_started/image-terminology:el3-runtime-firmware-ap-bl31}{{2.6.2}{48}{EL3 Runtime Firmware: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL31}}}{subsubsection*.93}{}} 308\@writefile{toc}{\contentsline {subsubsection}{Secure\sphinxhyphen {}EL1 Payload (SP): \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL32}}}{48}{subsubsection*.94}\protected@file@percent } 309\newlabel{getting_started/image-terminology:secure-el1-payload-sp-ap-bl32}{{2.6.2}{48}{Secure\sphinxhyphen {}EL1 Payload (SP): \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL32}}}{subsubsection*.94}{}} 310\@writefile{toc}{\contentsline {subsubsection}{AP Normal World Firmware: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL33}}}{48}{subsubsection*.95}\protected@file@percent } 311\newlabel{getting_started/image-terminology:ap-normal-world-firmware-ap-bl33}{{2.6.2}{48}{AP Normal World Firmware: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL33}}}{subsubsection*.95}{}} 312\@writefile{toc}{\contentsline {subsubsection}{Other AP 3rd level images: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL3\_XXX}}}{48}{subsubsection*.96}\protected@file@percent } 313\newlabel{getting_started/image-terminology:other-ap-3rd-level-images-ap-bl3-xxx}{{2.6.2}{48}{Other AP 3rd level images: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL3\_XXX}}}{subsubsection*.96}{}} 314\@writefile{toc}{\contentsline {subsubsection}{Realm Monitor Management Firmware: \sphinxstyleliteralintitle {\sphinxupquote {RMM}}}{48}{subsubsection*.97}\protected@file@percent } 315\newlabel{getting_started/image-terminology:realm-monitor-management-firmware-rmm}{{2.6.2}{48}{Realm Monitor Management Firmware: \sphinxstyleliteralintitle {\sphinxupquote {RMM}}}{subsubsection*.97}{}} 316\@writefile{toc}{\contentsline {subsubsection}{SCP Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {SCP\_BL1}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL0}})}{48}{subsubsection*.98}\protected@file@percent } 317\newlabel{getting_started/image-terminology:scp-boot-rom-scp-bl1-previously-bl0}{{2.6.2}{48}{SCP Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {SCP\_BL1}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL0}})}{subsubsection*.98}{}} 318\@writefile{toc}{\contentsline {subsubsection}{SCP RAM Firmware: \sphinxstyleliteralintitle {\sphinxupquote {SCP\_BL2}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL3\sphinxhyphen {}0}})}{49}{subsubsection*.99}\protected@file@percent } 319\newlabel{getting_started/image-terminology:scp-ram-firmware-scp-bl2-previously-bl3-0}{{2.6.2}{49}{SCP RAM Firmware: \sphinxstyleliteralintitle {\sphinxupquote {SCP\_BL2}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL3\sphinxhyphen {}0}})}{subsubsection*.99}{}} 320\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.3}Firmware Update (FWU) Images}{49}{subsection.2.6.3}\protected@file@percent } 321\newlabel{getting_started/image-terminology:firmware-update-fwu-images}{{2.6.3}{49}{Firmware Update (FWU) Images}{subsection.2.6.3}{}} 322\@writefile{toc}{\contentsline {subsubsection}{AP Firmware Update Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {AP\_NS\_BL1U}}}{49}{subsubsection*.100}\protected@file@percent } 323\newlabel{getting_started/image-terminology:ap-firmware-update-boot-rom-ap-ns-bl1u}{{2.6.3}{49}{AP Firmware Update Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {AP\_NS\_BL1U}}}{subsubsection*.100}{}} 324\@writefile{toc}{\contentsline {subsubsection}{AP Firmware Update Config: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL2U}}}{49}{subsubsection*.101}\protected@file@percent } 325\newlabel{getting_started/image-terminology:ap-firmware-update-config-ap-bl2u}{{2.6.3}{49}{AP Firmware Update Config: \sphinxstyleliteralintitle {\sphinxupquote {AP\_BL2U}}}{subsubsection*.101}{}} 326\@writefile{toc}{\contentsline {subsubsection}{SCP Firmware Update Config: \sphinxstyleliteralintitle {\sphinxupquote {SCP\_BL2U}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL2\sphinxhyphen {}U0}})}{49}{subsubsection*.102}\protected@file@percent } 327\newlabel{getting_started/image-terminology:scp-firmware-update-config-scp-bl2u-previously-bl2-u0}{{2.6.3}{49}{SCP Firmware Update Config: \sphinxstyleliteralintitle {\sphinxupquote {SCP\_BL2U}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL2\sphinxhyphen {}U0}})}{subsubsection*.102}{}} 328\@writefile{toc}{\contentsline {subsubsection}{AP Firmware Updater: \sphinxstyleliteralintitle {\sphinxupquote {AP\_NS\_BL2U}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL3\sphinxhyphen {}U}})}{49}{subsubsection*.103}\protected@file@percent } 329\newlabel{getting_started/image-terminology:ap-firmware-updater-ap-ns-bl2u-previously-bl3-u}{{2.6.3}{49}{AP Firmware Updater: \sphinxstyleliteralintitle {\sphinxupquote {AP\_NS\_BL2U}} (previously \sphinxstyleliteralintitle {\sphinxupquote {BL3\sphinxhyphen {}U}})}{subsubsection*.103}{}} 330\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.4}Other Processor Firmware Images}{49}{subsection.2.6.4}\protected@file@percent } 331\newlabel{getting_started/image-terminology:other-processor-firmware-images}{{2.6.4}{49}{Other Processor Firmware Images}{subsection.2.6.4}{}} 332\@writefile{toc}{\contentsline {subsubsection}{MCP Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {MCP\_BL1}}}{50}{subsubsection*.104}\protected@file@percent } 333\newlabel{getting_started/image-terminology:mcp-boot-rom-mcp-bl1}{{2.6.4}{50}{MCP Boot ROM: \sphinxstyleliteralintitle {\sphinxupquote {MCP\_BL1}}}{subsubsection*.104}{}} 334\@writefile{toc}{\contentsline {subsubsection}{MCP RAM Firmware: \sphinxstyleliteralintitle {\sphinxupquote {MCP\_BL2}}}{50}{subsubsection*.105}\protected@file@percent } 335\newlabel{getting_started/image-terminology:mcp-ram-firmware-mcp-bl2}{{2.6.4}{50}{MCP RAM Firmware: \sphinxstyleliteralintitle {\sphinxupquote {MCP\_BL2}}}{subsubsection*.105}{}} 336\@writefile{toc}{\contentsline {section}{\numberline {2.7}Porting Guide}{50}{section.2.7}\protected@file@percent } 337\newlabel{getting_started/porting-guide:porting-guide}{{2.7}{50}{Porting Guide}{section.2.7}{}} 338\newlabel{getting_started/porting-guide::doc}{{2.7}{50}{Porting Guide}{section.2.7}{}} 339\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.1}Introduction}{50}{subsection.2.7.1}\protected@file@percent } 340\newlabel{getting_started/porting-guide:introduction}{{2.7.1}{50}{Introduction}{subsection.2.7.1}{}} 341\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.2}Common modifications}{50}{subsection.2.7.2}\protected@file@percent } 342\newlabel{getting_started/porting-guide:common-modifications}{{2.7.2}{50}{Common modifications}{subsection.2.7.2}{}} 343\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.3}Common mandatory modifications}{50}{subsection.2.7.3}\protected@file@percent } 344\newlabel{getting_started/porting-guide:common-mandatory-modifications}{{2.7.3}{50}{Common mandatory modifications}{subsection.2.7.3}{}} 345\@writefile{toc}{\contentsline {subsubsection}{File : platform\_def.h {[}mandatory{]}}{51}{subsubsection*.106}\protected@file@percent } 346\newlabel{getting_started/porting-guide:file-platform-def-h-mandatory}{{2.7.3}{51}{File : platform\_def.h {[}mandatory{]}}{subsubsection*.106}{}} 347\@writefile{toc}{\contentsline {subsubsection}{File : plat\_macros.S {[}mandatory{]}}{57}{subsubsection*.107}\protected@file@percent } 348\newlabel{getting_started/porting-guide:file-plat-macros-s-mandatory}{{2.7.3}{57}{File : plat\_macros.S {[}mandatory{]}}{subsubsection*.107}{}} 349\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.4}Handling Reset}{57}{subsection.2.7.4}\protected@file@percent } 350\newlabel{getting_started/porting-guide:handling-reset}{{2.7.4}{57}{Handling Reset}{subsection.2.7.4}{}} 351\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_my\_entrypoint() {[}mandatory when PROGRAMMABLE\_RESET\_ADDRESS == 0{]}}{58}{subsubsection*.108}\protected@file@percent } 352\newlabel{getting_started/porting-guide:function-plat-get-my-entrypoint-mandatory-when-programmable-reset-address-0}{{2.7.4}{58}{Function : plat\_get\_my\_entrypoint() {[}mandatory when PROGRAMMABLE\_RESET\_ADDRESS == 0{]}}{subsubsection*.108}{}} 353\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_secondary\_cold\_boot\_setup() {[}mandatory when COLD\_BOOT\_SINGLE\_CPU == 0{]}}{58}{subsubsection*.109}\protected@file@percent } 354\newlabel{getting_started/porting-guide:function-plat-secondary-cold-boot-setup-mandatory-when-cold-boot-single-cpu-0}{{2.7.4}{58}{Function : plat\_secondary\_cold\_boot\_setup() {[}mandatory when COLD\_BOOT\_SINGLE\_CPU == 0{]}}{subsubsection*.109}{}} 355\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_is\_my\_cpu\_primary() {[}mandatory when COLD\_BOOT\_SINGLE\_CPU == 0{]}}{58}{subsubsection*.110}\protected@file@percent } 356\newlabel{getting_started/porting-guide:function-plat-is-my-cpu-primary-mandatory-when-cold-boot-single-cpu-0}{{2.7.4}{58}{Function : plat\_is\_my\_cpu\_primary() {[}mandatory when COLD\_BOOT\_SINGLE\_CPU == 0{]}}{subsubsection*.110}{}} 357\@writefile{toc}{\contentsline {subsubsection}{Function : platform\_mem\_init() {[}mandatory{]}}{59}{subsubsection*.111}\protected@file@percent } 358\newlabel{getting_started/porting-guide:function-platform-mem-init-mandatory}{{2.7.4}{59}{Function : platform\_mem\_init() {[}mandatory{]}}{subsubsection*.111}{}} 359\@writefile{toc}{\contentsline {subsubsection}{Function: plat\_get\_rotpk\_info()}{59}{subsubsection*.112}\protected@file@percent } 360\newlabel{getting_started/porting-guide:function-plat-get-rotpk-info}{{2.7.4}{59}{Function: plat\_get\_rotpk\_info()}{subsubsection*.112}{}} 361\@writefile{toc}{\contentsline {subsubsection}{Function: plat\_get\_nv\_ctr()}{60}{subsubsection*.113}\protected@file@percent } 362\newlabel{getting_started/porting-guide:function-plat-get-nv-ctr}{{2.7.4}{60}{Function: plat\_get\_nv\_ctr()}{subsubsection*.113}{}} 363\@writefile{toc}{\contentsline {subsubsection}{Function: plat\_set\_nv\_ctr()}{60}{subsubsection*.114}\protected@file@percent } 364\newlabel{getting_started/porting-guide:function-plat-set-nv-ctr}{{2.7.4}{60}{Function: plat\_set\_nv\_ctr()}{subsubsection*.114}{}} 365\@writefile{toc}{\contentsline {subsubsection}{Function: plat\_set\_nv\_ctr2()}{60}{subsubsection*.115}\protected@file@percent } 366\newlabel{getting_started/porting-guide:function-plat-set-nv-ctr2}{{2.7.4}{60}{Function: plat\_set\_nv\_ctr2()}{subsubsection*.115}{}} 367\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.5}Common mandatory function modifications}{60}{subsection.2.7.5}\protected@file@percent } 368\newlabel{getting_started/porting-guide:common-mandatory-function-modifications}{{2.7.5}{60}{Common mandatory function modifications}{subsection.2.7.5}{}} 369\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_my\_core\_pos()}{60}{subsubsection*.116}\protected@file@percent } 370\newlabel{getting_started/porting-guide:function-plat-my-core-pos}{{2.7.5}{60}{Function : plat\_my\_core\_pos()}{subsubsection*.116}{}} 371\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_core\_pos\_by\_mpidr()}{61}{subsubsection*.117}\protected@file@percent } 372\newlabel{getting_started/porting-guide:function-plat-core-pos-by-mpidr}{{2.7.5}{61}{Function : plat\_core\_pos\_by\_mpidr()}{subsubsection*.117}{}} 373\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_mbedtls\_heap() {[}when TRUSTED\_BOARD\_BOOT == 1{]}}{61}{subsubsection*.118}\protected@file@percent } 374\newlabel{getting_started/porting-guide:function-plat-get-mbedtls-heap-when-trusted-board-boot-1}{{2.7.5}{61}{Function : plat\_get\_mbedtls\_heap() {[}when TRUSTED\_BOARD\_BOOT == 1{]}}{subsubsection*.118}{}} 375\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_enc\_key\_info() {[}when FW\_ENC\_STATUS == 0 or 1{]}}{61}{subsubsection*.119}\protected@file@percent } 376\newlabel{getting_started/porting-guide:function-plat-get-enc-key-info-when-fw-enc-status-0-or-1}{{2.7.5}{61}{Function : plat\_get\_enc\_key\_info() {[}when FW\_ENC\_STATUS == 0 or 1{]}}{subsubsection*.119}{}} 377\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_fwu\_set\_images\_source() {[}when PSA\_FWU\_SUPPORT == 1{]}}{62}{subsubsection*.120}\protected@file@percent } 378\newlabel{getting_started/porting-guide:function-plat-fwu-set-images-source-when-psa-fwu-support-1}{{2.7.5}{62}{Function : plat\_fwu\_set\_images\_source() {[}when PSA\_FWU\_SUPPORT == 1{]}}{subsubsection*.120}{}} 379\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_fwu\_set\_metadata\_image\_source() {[}when PSA\_FWU\_SUPPORT == 1{]}}{62}{subsubsection*.121}\protected@file@percent } 380\newlabel{getting_started/porting-guide:function-plat-fwu-set-metadata-image-source-when-psa-fwu-support-1}{{2.7.5}{62}{Function : plat\_fwu\_set\_metadata\_image\_source() {[}when PSA\_FWU\_SUPPORT == 1{]}}{subsubsection*.121}{}} 381\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.6}Common optional modifications}{62}{subsection.2.7.6}\protected@file@percent } 382\newlabel{getting_started/porting-guide:common-optional-modifications}{{2.7.6}{62}{Common optional modifications}{subsection.2.7.6}{}} 383\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_set\_my\_stack()}{62}{subsubsection*.122}\protected@file@percent } 384\newlabel{getting_started/porting-guide:function-plat-set-my-stack}{{2.7.6}{62}{Function : plat\_set\_my\_stack()}{subsubsection*.122}{}} 385\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_my\_stack()}{63}{subsubsection*.123}\protected@file@percent } 386\newlabel{getting_started/porting-guide:function-plat-get-my-stack}{{2.7.6}{63}{Function : plat\_get\_my\_stack()}{subsubsection*.123}{}} 387\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_report\_exception()}{63}{subsubsection*.124}\protected@file@percent } 388\newlabel{getting_started/porting-guide:function-plat-report-exception}{{2.7.6}{63}{Function : plat\_report\_exception()}{subsubsection*.124}{}} 389\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_reset\_handler()}{63}{subsubsection*.125}\protected@file@percent } 390\newlabel{getting_started/porting-guide:function-plat-reset-handler}{{2.7.6}{63}{Function : plat\_reset\_handler()}{subsubsection*.125}{}} 391\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_disable\_acp()}{64}{subsubsection*.126}\protected@file@percent } 392\newlabel{getting_started/porting-guide:function-plat-disable-acp}{{2.7.6}{64}{Function : plat\_disable\_acp()}{subsubsection*.126}{}} 393\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_error\_handler()}{64}{subsubsection*.127}\protected@file@percent } 394\newlabel{getting_started/porting-guide:function-plat-error-handler}{{2.7.6}{64}{Function : plat\_error\_handler()}{subsubsection*.127}{}} 395\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_panic\_handler()}{64}{subsubsection*.128}\protected@file@percent } 396\newlabel{getting_started/porting-guide:function-plat-panic-handler}{{2.7.6}{64}{Function : plat\_panic\_handler()}{subsubsection*.128}{}} 397\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_bl\_image\_load\_info()}{64}{subsubsection*.129}\protected@file@percent } 398\newlabel{getting_started/porting-guide:function-plat-get-bl-image-load-info}{{2.7.6}{64}{Function : plat\_get\_bl\_image\_load\_info()}{subsubsection*.129}{}} 399\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_next\_bl\_params()}{65}{subsubsection*.130}\protected@file@percent } 400\newlabel{getting_started/porting-guide:function-plat-get-next-bl-params}{{2.7.6}{65}{Function : plat\_get\_next\_bl\_params()}{subsubsection*.130}{}} 401\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_stack\_protector\_canary()}{65}{subsubsection*.131}\protected@file@percent } 402\newlabel{getting_started/porting-guide:function-plat-get-stack-protector-canary}{{2.7.6}{65}{Function : plat\_get\_stack\_protector\_canary()}{subsubsection*.131}{}} 403\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_flush\_next\_bl\_params()}{65}{subsubsection*.132}\protected@file@percent } 404\newlabel{getting_started/porting-guide:function-plat-flush-next-bl-params}{{2.7.6}{65}{Function : plat\_flush\_next\_bl\_params()}{subsubsection*.132}{}} 405\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_log\_get\_prefix()}{65}{subsubsection*.133}\protected@file@percent } 406\newlabel{getting_started/porting-guide:function-plat-log-get-prefix}{{2.7.6}{65}{Function : plat\_log\_get\_prefix()}{subsubsection*.133}{}} 407\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_soc\_version()}{65}{subsubsection*.134}\protected@file@percent } 408\newlabel{getting_started/porting-guide:function-plat-get-soc-version}{{2.7.6}{65}{Function : plat\_get\_soc\_version()}{subsubsection*.134}{}} 409\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_soc\_revision()}{66}{subsubsection*.135}\protected@file@percent } 410\newlabel{getting_started/porting-guide:function-plat-get-soc-revision}{{2.7.6}{66}{Function : plat\_get\_soc\_revision()}{subsubsection*.135}{}} 411\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_is\_smccc\_feature\_available()}{66}{subsubsection*.136}\protected@file@percent } 412\newlabel{getting_started/porting-guide:function-plat-is-smccc-feature-available}{{2.7.6}{66}{Function : plat\_is\_smccc\_feature\_available()}{subsubsection*.136}{}} 413\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_mboot\_measure\_image()}{66}{subsubsection*.137}\protected@file@percent } 414\newlabel{getting_started/porting-guide:function-plat-mboot-measure-image}{{2.7.6}{66}{Function : plat\_mboot\_measure\_image()}{subsubsection*.137}{}} 415\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.7}Modifications specific to a Boot Loader stage}{66}{subsection.2.7.7}\protected@file@percent } 416\newlabel{getting_started/porting-guide:modifications-specific-to-a-boot-loader-stage}{{2.7.7}{66}{Modifications specific to a Boot Loader stage}{subsection.2.7.7}{}} 417\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.8}Boot Loader Stage 1 (BL1)}{66}{subsection.2.7.8}\protected@file@percent } 418\newlabel{getting_started/porting-guide:boot-loader-stage-1-bl1}{{2.7.8}{66}{Boot Loader Stage 1 (BL1)}{subsection.2.7.8}{}} 419\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_early\_platform\_setup() {[}mandatory{]}}{67}{subsubsection*.138}\protected@file@percent } 420\newlabel{getting_started/porting-guide:function-bl1-early-platform-setup-mandatory}{{2.7.8}{67}{Function : bl1\_early\_platform\_setup() {[}mandatory{]}}{subsubsection*.138}{}} 421\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_arch\_setup() {[}mandatory{]}}{67}{subsubsection*.139}\protected@file@percent } 422\newlabel{getting_started/porting-guide:function-bl1-plat-arch-setup-mandatory}{{2.7.8}{67}{Function : bl1\_plat\_arch\_setup() {[}mandatory{]}}{subsubsection*.139}{}} 423\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_platform\_setup() {[}mandatory{]}}{67}{subsubsection*.140}\protected@file@percent } 424\newlabel{getting_started/porting-guide:function-bl1-platform-setup-mandatory}{{2.7.8}{67}{Function : bl1\_platform\_setup() {[}mandatory{]}}{subsubsection*.140}{}} 425\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_sec\_mem\_layout() {[}mandatory{]}}{68}{subsubsection*.141}\protected@file@percent } 426\newlabel{getting_started/porting-guide:function-bl1-plat-sec-mem-layout-mandatory}{{2.7.8}{68}{Function : bl1\_plat\_sec\_mem\_layout() {[}mandatory{]}}{subsubsection*.141}{}} 427\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_prepare\_exit() {[}optional{]}}{68}{subsubsection*.142}\protected@file@percent } 428\newlabel{getting_started/porting-guide:function-bl1-plat-prepare-exit-optional}{{2.7.8}{68}{Function : bl1\_plat\_prepare\_exit() {[}optional{]}}{subsubsection*.142}{}} 429\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_set\_ep\_info() {[}optional{]}}{68}{subsubsection*.143}\protected@file@percent } 430\newlabel{getting_started/porting-guide:function-bl1-plat-set-ep-info-optional}{{2.7.8}{68}{Function : bl1\_plat\_set\_ep\_info() {[}optional{]}}{subsubsection*.143}{}} 431\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_get\_next\_image\_id() {[}optional{]}}{68}{subsubsection*.144}\protected@file@percent } 432\newlabel{getting_started/porting-guide:function-bl1-plat-get-next-image-id-optional}{{2.7.8}{68}{Function : bl1\_plat\_get\_next\_image\_id() {[}optional{]}}{subsubsection*.144}{}} 433\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_get\_image\_desc() {[}optional{]}}{69}{subsubsection*.145}\protected@file@percent } 434\newlabel{getting_started/porting-guide:function-bl1-plat-get-image-desc-optional}{{2.7.8}{69}{Function : bl1\_plat\_get\_image\_desc() {[}optional{]}}{subsubsection*.145}{}} 435\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_handle\_pre\_image\_load() {[}optional{]}}{69}{subsubsection*.146}\protected@file@percent } 436\newlabel{getting_started/porting-guide:function-bl1-plat-handle-pre-image-load-optional}{{2.7.8}{69}{Function : bl1\_plat\_handle\_pre\_image\_load() {[}optional{]}}{subsubsection*.146}{}} 437\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_handle\_post\_image\_load() {[}optional{]}}{69}{subsubsection*.147}\protected@file@percent } 438\newlabel{getting_started/porting-guide:function-bl1-plat-handle-post-image-load-optional}{{2.7.8}{69}{Function : bl1\_plat\_handle\_post\_image\_load() {[}optional{]}}{subsubsection*.147}{}} 439\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_fwu\_done() {[}optional{]}}{69}{subsubsection*.148}\protected@file@percent } 440\newlabel{getting_started/porting-guide:function-bl1-plat-fwu-done-optional}{{2.7.8}{69}{Function : bl1\_plat\_fwu\_done() {[}optional{]}}{subsubsection*.148}{}} 441\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_mem\_check() {[}mandatory{]}}{70}{subsubsection*.149}\protected@file@percent } 442\newlabel{getting_started/porting-guide:function-bl1-plat-mem-check-mandatory}{{2.7.8}{70}{Function : bl1\_plat\_mem\_check() {[}mandatory{]}}{subsubsection*.149}{}} 443\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_mboot\_init() {[}optional{]}}{70}{subsubsection*.150}\protected@file@percent } 444\newlabel{getting_started/porting-guide:function-bl1-plat-mboot-init-optional}{{2.7.8}{70}{Function : bl1\_plat\_mboot\_init() {[}optional{]}}{subsubsection*.150}{}} 445\@writefile{toc}{\contentsline {subsubsection}{Function : bl1\_plat\_mboot\_finish() {[}optional{]}}{70}{subsubsection*.151}\protected@file@percent } 446\newlabel{getting_started/porting-guide:function-bl1-plat-mboot-finish-optional}{{2.7.8}{70}{Function : bl1\_plat\_mboot\_finish() {[}optional{]}}{subsubsection*.151}{}} 447\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.9}Boot Loader Stage 2 (BL2)}{71}{subsection.2.7.9}\protected@file@percent } 448\newlabel{getting_started/porting-guide:boot-loader-stage-2-bl2}{{2.7.9}{71}{Boot Loader Stage 2 (BL2)}{subsection.2.7.9}{}} 449\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_early\_platform\_setup2() {[}mandatory{]}}{71}{subsubsection*.152}\protected@file@percent } 450\newlabel{getting_started/porting-guide:function-bl2-early-platform-setup2-mandatory}{{2.7.9}{71}{Function : bl2\_early\_platform\_setup2() {[}mandatory{]}}{subsubsection*.152}{}} 451\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_plat\_arch\_setup() {[}mandatory{]}}{71}{subsubsection*.153}\protected@file@percent } 452\newlabel{getting_started/porting-guide:function-bl2-plat-arch-setup-mandatory}{{2.7.9}{71}{Function : bl2\_plat\_arch\_setup() {[}mandatory{]}}{subsubsection*.153}{}} 453\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_platform\_setup() {[}mandatory{]}}{71}{subsubsection*.154}\protected@file@percent } 454\newlabel{getting_started/porting-guide:function-bl2-platform-setup-mandatory}{{2.7.9}{71}{Function : bl2\_platform\_setup() {[}mandatory{]}}{subsubsection*.154}{}} 455\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_plat\_handle\_pre\_image\_load() {[}optional{]}}{72}{subsubsection*.155}\protected@file@percent } 456\newlabel{getting_started/porting-guide:function-bl2-plat-handle-pre-image-load-optional}{{2.7.9}{72}{Function : bl2\_plat\_handle\_pre\_image\_load() {[}optional{]}}{subsubsection*.155}{}} 457\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_plat\_handle\_post\_image\_load() {[}optional{]}}{72}{subsubsection*.156}\protected@file@percent } 458\newlabel{getting_started/porting-guide:function-bl2-plat-handle-post-image-load-optional}{{2.7.9}{72}{Function : bl2\_plat\_handle\_post\_image\_load() {[}optional{]}}{subsubsection*.156}{}} 459\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_plat\_preload\_setup {[}optional{]}}{72}{subsubsection*.157}\protected@file@percent } 460\newlabel{getting_started/porting-guide:function-bl2-plat-preload-setup-optional}{{2.7.9}{72}{Function : bl2\_plat\_preload\_setup {[}optional{]}}{subsubsection*.157}{}} 461\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_try\_next\_boot\_source() {[}optional{]}}{72}{subsubsection*.158}\protected@file@percent } 462\newlabel{getting_started/porting-guide:function-plat-try-next-boot-source-optional}{{2.7.9}{72}{Function : plat\_try\_next\_boot\_source() {[}optional{]}}{subsubsection*.158}{}} 463\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.10}Boot Loader Stage 2 (BL2) at EL3}{72}{subsection.2.7.10}\protected@file@percent } 464\newlabel{getting_started/porting-guide:boot-loader-stage-2-bl2-at-el3}{{2.7.10}{72}{Boot Loader Stage 2 (BL2) at EL3}{subsection.2.7.10}{}} 465\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_el3\_early\_platform\_setup() {[}mandatory{]}}{73}{subsubsection*.159}\protected@file@percent } 466\newlabel{getting_started/porting-guide:function-bl2-el3-early-platform-setup-mandatory}{{2.7.10}{73}{Function : bl2\_el3\_early\_platform\_setup() {[}mandatory{]}}{subsubsection*.159}{}} 467\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_el3\_plat\_arch\_setup() {[}mandatory{]}}{73}{subsubsection*.160}\protected@file@percent } 468\newlabel{getting_started/porting-guide:function-bl2-el3-plat-arch-setup-mandatory}{{2.7.10}{73}{Function : bl2\_el3\_plat\_arch\_setup() {[}mandatory{]}}{subsubsection*.160}{}} 469\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_el3\_plat\_prepare\_exit() {[}optional{]}}{73}{subsubsection*.161}\protected@file@percent } 470\newlabel{getting_started/porting-guide:function-bl2-el3-plat-prepare-exit-optional}{{2.7.10}{73}{Function : bl2\_el3\_plat\_prepare\_exit() {[}optional{]}}{subsubsection*.161}{}} 471\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.11}FWU Boot Loader Stage 2 (BL2U)}{73}{subsection.2.7.11}\protected@file@percent } 472\newlabel{getting_started/porting-guide:fwu-boot-loader-stage-2-bl2u}{{2.7.11}{73}{FWU Boot Loader Stage 2 (BL2U)}{subsection.2.7.11}{}} 473\@writefile{toc}{\contentsline {subsubsection}{Function : bl2u\_early\_platform\_setup() {[}mandatory{]}}{74}{subsubsection*.162}\protected@file@percent } 474\newlabel{getting_started/porting-guide:function-bl2u-early-platform-setup-mandatory}{{2.7.11}{74}{Function : bl2u\_early\_platform\_setup() {[}mandatory{]}}{subsubsection*.162}{}} 475\@writefile{toc}{\contentsline {subsubsection}{Function : bl2u\_plat\_arch\_setup() {[}mandatory{]}}{74}{subsubsection*.163}\protected@file@percent } 476\newlabel{getting_started/porting-guide:function-bl2u-plat-arch-setup-mandatory}{{2.7.11}{74}{Function : bl2u\_plat\_arch\_setup() {[}mandatory{]}}{subsubsection*.163}{}} 477\@writefile{toc}{\contentsline {subsubsection}{Function : bl2u\_platform\_setup() {[}mandatory{]}}{74}{subsubsection*.164}\protected@file@percent } 478\newlabel{getting_started/porting-guide:function-bl2u-platform-setup-mandatory}{{2.7.11}{74}{Function : bl2u\_platform\_setup() {[}mandatory{]}}{subsubsection*.164}{}} 479\@writefile{toc}{\contentsline {subsubsection}{Function : bl2u\_plat\_handle\_scp\_bl2u() {[}optional{]}}{74}{subsubsection*.165}\protected@file@percent } 480\newlabel{getting_started/porting-guide:function-bl2u-plat-handle-scp-bl2u-optional}{{2.7.11}{74}{Function : bl2u\_plat\_handle\_scp\_bl2u() {[}optional{]}}{subsubsection*.165}{}} 481\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_plat\_mboot\_init() {[}optional{]}}{75}{subsubsection*.166}\protected@file@percent } 482\newlabel{getting_started/porting-guide:function-bl2-plat-mboot-init-optional}{{2.7.11}{75}{Function : bl2\_plat\_mboot\_init() {[}optional{]}}{subsubsection*.166}{}} 483\@writefile{toc}{\contentsline {subsubsection}{Function : bl2\_plat\_mboot\_finish() {[}optional{]}}{75}{subsubsection*.167}\protected@file@percent } 484\newlabel{getting_started/porting-guide:function-bl2-plat-mboot-finish-optional}{{2.7.11}{75}{Function : bl2\_plat\_mboot\_finish() {[}optional{]}}{subsubsection*.167}{}} 485\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.12}Boot Loader Stage 3\sphinxhyphen {}1 (BL31)}{75}{subsection.2.7.12}\protected@file@percent } 486\newlabel{getting_started/porting-guide:boot-loader-stage-3-1-bl31}{{2.7.12}{75}{Boot Loader Stage 3\sphinxhyphen {}1 (BL31)}{subsection.2.7.12}{}} 487\@writefile{toc}{\contentsline {subsubsection}{Function : bl31\_early\_platform\_setup2() {[}mandatory{]}}{76}{subsubsection*.168}\protected@file@percent } 488\newlabel{getting_started/porting-guide:function-bl31-early-platform-setup2-mandatory}{{2.7.12}{76}{Function : bl31\_early\_platform\_setup2() {[}mandatory{]}}{subsubsection*.168}{}} 489\@writefile{toc}{\contentsline {subsubsection}{Function : bl31\_plat\_arch\_setup() {[}mandatory{]}}{76}{subsubsection*.169}\protected@file@percent } 490\newlabel{getting_started/porting-guide:function-bl31-plat-arch-setup-mandatory}{{2.7.12}{76}{Function : bl31\_plat\_arch\_setup() {[}mandatory{]}}{subsubsection*.169}{}} 491\@writefile{toc}{\contentsline {subsubsection}{Function : bl31\_platform\_setup() {[}mandatory{]}}{76}{subsubsection*.170}\protected@file@percent } 492\newlabel{getting_started/porting-guide:function-bl31-platform-setup-mandatory}{{2.7.12}{76}{Function : bl31\_platform\_setup() {[}mandatory{]}}{subsubsection*.170}{}} 493\@writefile{toc}{\contentsline {subsubsection}{Function : bl31\_plat\_runtime\_setup() {[}optional{]}}{77}{subsubsection*.171}\protected@file@percent } 494\newlabel{getting_started/porting-guide:function-bl31-plat-runtime-setup-optional}{{2.7.12}{77}{Function : bl31\_plat\_runtime\_setup() {[}optional{]}}{subsubsection*.171}{}} 495\@writefile{toc}{\contentsline {subsubsection}{Function : bl31\_plat\_get\_next\_image\_ep\_info() {[}mandatory{]}}{77}{subsubsection*.172}\protected@file@percent } 496\newlabel{getting_started/porting-guide:function-bl31-plat-get-next-image-ep-info-mandatory}{{2.7.12}{77}{Function : bl31\_plat\_get\_next\_image\_ep\_info() {[}mandatory{]}}{subsubsection*.172}{}} 497\@writefile{toc}{\contentsline {subsubsection}{Function : bl31\_plat\_enable\_mmu {[}optional{]}}{77}{subsubsection*.173}\protected@file@percent } 498\newlabel{getting_started/porting-guide:function-bl31-plat-enable-mmu-optional}{{2.7.12}{77}{Function : bl31\_plat\_enable\_mmu {[}optional{]}}{subsubsection*.173}{}} 499\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_init\_apkey {[}optional{]}}{78}{subsubsection*.174}\protected@file@percent } 500\newlabel{getting_started/porting-guide:function-plat-init-apkey-optional}{{2.7.12}{78}{Function : plat\_init\_apkey {[}optional{]}}{subsubsection*.174}{}} 501\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_syscnt\_freq2() {[}mandatory{]}}{78}{subsubsection*.175}\protected@file@percent } 502\newlabel{getting_started/porting-guide:function-plat-get-syscnt-freq2-mandatory}{{2.7.12}{78}{Function : plat\_get\_syscnt\_freq2() {[}mandatory{]}}{subsubsection*.175}{}} 503\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_arm\_set\_twedel\_scr\_el3() {[}optional{]}}{78}{subsubsection*.176}\protected@file@percent } 504\newlabel{getting_started/porting-guide:function-plat-arm-set-twedel-scr-el3-optional}{{2.7.12}{78}{Function : plat\_arm\_set\_twedel\_scr\_el3() {[}optional{]}}{subsubsection*.176}{}} 505\@writefile{toc}{\contentsline {subsubsection}{\#define : PLAT\_PERCPU\_BAKERY\_LOCK\_SIZE {[}optional{]}}{78}{subsubsection*.177}\protected@file@percent } 506\newlabel{getting_started/porting-guide:define-plat-percpu-bakery-lock-size-optional}{{2.7.12}{78}{\#define : PLAT\_PERCPU\_BAKERY\_LOCK\_SIZE {[}optional{]}}{subsubsection*.177}{}} 507\@writefile{toc}{\contentsline {subsubsection}{SDEI porting requirements}{79}{subsubsection*.178}\protected@file@percent } 508\newlabel{getting_started/porting-guide:sdei-porting-requirements}{{2.7.12}{79}{SDEI porting requirements}{subsubsection*.178}{}} 509\newlabel{getting_started/porting-guide:porting-guide-sdei-requirements}{{2.7.12}{79}{SDEI porting requirements}{subsubsection*.178}{}} 510\@writefile{toc}{\contentsline {paragraph}{Macros}{79}{paragraph*.179}\protected@file@percent } 511\newlabel{getting_started/porting-guide:macros}{{2.7.12}{79}{Macros}{paragraph*.179}{}} 512\@writefile{toc}{\contentsline {subparagraph}{Macro: PLAT\_SDEI\_NORMAL\_PRI {[}mandatory{]}}{79}{subparagraph*.180}\protected@file@percent } 513\newlabel{getting_started/porting-guide:macro-plat-sdei-normal-pri-mandatory}{{2.7.12}{79}{Macro: PLAT\_SDEI\_NORMAL\_PRI {[}mandatory{]}}{subparagraph*.180}{}} 514\@writefile{toc}{\contentsline {subparagraph}{Macro: PLAT\_SDEI\_CRITICAL\_PRI {[}mandatory{]}}{79}{subparagraph*.181}\protected@file@percent } 515\newlabel{getting_started/porting-guide:macro-plat-sdei-critical-pri-mandatory}{{2.7.12}{79}{Macro: PLAT\_SDEI\_CRITICAL\_PRI {[}mandatory{]}}{subparagraph*.181}{}} 516\@writefile{toc}{\contentsline {paragraph}{Functions}{79}{paragraph*.182}\protected@file@percent } 517\newlabel{getting_started/porting-guide:functions}{{2.7.12}{79}{Functions}{paragraph*.182}{}} 518\@writefile{toc}{\contentsline {subparagraph}{Function: int plat\_sdei\_validate\_entry\_point() {[}optional{]}}{79}{subparagraph*.183}\protected@file@percent } 519\newlabel{getting_started/porting-guide:function-int-plat-sdei-validate-entry-point-optional}{{2.7.12}{79}{Function: int plat\_sdei\_validate\_entry\_point() {[}optional{]}}{subparagraph*.183}{}} 520\@writefile{toc}{\contentsline {subparagraph}{Function: void plat\_sdei\_handle\_masked\_trigger(uint64\_t mpidr, unsigned int intr) {[}optional{]}}{79}{subparagraph*.184}\protected@file@percent } 521\newlabel{getting_started/porting-guide:function-void-plat-sdei-handle-masked-trigger-uint64-t-mpidr-unsigned-int-intr-optional}{{2.7.12}{79}{Function: void plat\_sdei\_handle\_masked\_trigger(uint64\_t mpidr, unsigned int intr) {[}optional{]}}{subparagraph*.184}{}} 522\@writefile{toc}{\contentsline {subsubsection}{TRNG porting requirements}{80}{subsubsection*.185}\protected@file@percent } 523\newlabel{getting_started/porting-guide:trng-porting-requirements}{{2.7.12}{80}{TRNG porting requirements}{subsubsection*.185}{}} 524\newlabel{getting_started/porting-guide:porting-guide-trng-requirements}{{2.7.12}{80}{TRNG porting requirements}{subsubsection*.185}{}} 525\@writefile{toc}{\contentsline {paragraph}{Values}{80}{paragraph*.186}\protected@file@percent } 526\newlabel{getting_started/porting-guide:values}{{2.7.12}{80}{Values}{paragraph*.186}{}} 527\@writefile{toc}{\contentsline {subparagraph}{value: uuid\_t plat\_trng\_uuid {[}mandatory{]}}{80}{subparagraph*.187}\protected@file@percent } 528\newlabel{getting_started/porting-guide:value-uuid-t-plat-trng-uuid-mandatory}{{2.7.12}{80}{value: uuid\_t plat\_trng\_uuid {[}mandatory{]}}{subparagraph*.187}{}} 529\@writefile{toc}{\contentsline {paragraph}{Functions}{80}{paragraph*.188}\protected@file@percent } 530\newlabel{getting_started/porting-guide:id1}{{2.7.12}{80}{Functions}{paragraph*.188}{}} 531\@writefile{toc}{\contentsline {subparagraph}{Function: void plat\_entropy\_setup(void) {[}mandatory{]}}{80}{subparagraph*.189}\protected@file@percent } 532\newlabel{getting_started/porting-guide:function-void-plat-entropy-setup-void-mandatory}{{2.7.12}{80}{Function: void plat\_entropy\_setup(void) {[}mandatory{]}}{subparagraph*.189}{}} 533\@writefile{toc}{\contentsline {subparagraph}{Function: bool plat\_get\_entropy(uint64\_t *out) {[}mandatory{]}}{80}{subparagraph*.190}\protected@file@percent } 534\newlabel{getting_started/porting-guide:function-bool-plat-get-entropy-uint64-t-out-mandatory}{{2.7.12}{80}{Function: bool plat\_get\_entropy(uint64\_t *out) {[}mandatory{]}}{subparagraph*.190}{}} 535\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.13}Power State Coordination Interface (in BL31)}{80}{subsection.2.7.13}\protected@file@percent } 536\newlabel{getting_started/porting-guide:power-state-coordination-interface-in-bl31}{{2.7.13}{80}{Power State Coordination Interface (in BL31)}{subsection.2.7.13}{}} 537\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_psci\_stat\_accounting\_start() {[}optional{]}}{81}{subsubsection*.191}\protected@file@percent } 538\newlabel{getting_started/porting-guide:function-plat-psci-stat-accounting-start-optional}{{2.7.13}{81}{Function : plat\_psci\_stat\_accounting\_start() {[}optional{]}}{subsubsection*.191}{}} 539\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_psci\_stat\_accounting\_stop() {[}optional{]}}{81}{subsubsection*.192}\protected@file@percent } 540\newlabel{getting_started/porting-guide:function-plat-psci-stat-accounting-stop-optional}{{2.7.13}{81}{Function : plat\_psci\_stat\_accounting\_stop() {[}optional{]}}{subsubsection*.192}{}} 541\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_psci\_stat\_get\_residency() {[}optional{]}}{81}{subsubsection*.193}\protected@file@percent } 542\newlabel{getting_started/porting-guide:function-plat-psci-stat-get-residency-optional}{{2.7.13}{81}{Function : plat\_psci\_stat\_get\_residency() {[}optional{]}}{subsubsection*.193}{}} 543\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_target\_pwr\_state() {[}optional{]}}{82}{subsubsection*.194}\protected@file@percent } 544\newlabel{getting_started/porting-guide:function-plat-get-target-pwr-state-optional}{{2.7.13}{82}{Function : plat\_get\_target\_pwr\_state() {[}optional{]}}{subsubsection*.194}{}} 545\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_get\_power\_domain\_tree\_desc() {[}mandatory{]}}{82}{subsubsection*.195}\protected@file@percent } 546\newlabel{getting_started/porting-guide:function-plat-get-power-domain-tree-desc-mandatory}{{2.7.13}{82}{Function : plat\_get\_power\_domain\_tree\_desc() {[}mandatory{]}}{subsubsection*.195}{}} 547\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_setup\_psci\_ops() {[}mandatory{]}}{82}{subsubsection*.196}\protected@file@percent } 548\newlabel{getting_started/porting-guide:function-plat-setup-psci-ops-mandatory}{{2.7.13}{82}{Function : plat\_setup\_psci\_ops() {[}mandatory{]}}{subsubsection*.196}{}} 549\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.cpu\_standby()}{83}{paragraph*.197}\protected@file@percent } 550\newlabel{getting_started/porting-guide:plat-psci-ops-cpu-standby}{{2.7.13}{83}{plat\_psci\_ops.cpu\_standby()}{paragraph*.197}{}} 551\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_on()}{83}{paragraph*.198}\protected@file@percent } 552\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-on}{{2.7.13}{83}{plat\_psci\_ops.pwr\_domain\_on()}{paragraph*.198}{}} 553\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_off()}{83}{paragraph*.199}\protected@file@percent } 554\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-off}{{2.7.13}{83}{plat\_psci\_ops.pwr\_domain\_off()}{paragraph*.199}{}} 555\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_suspend\_pwrdown\_early() {[}optional{]}}{83}{paragraph*.200}\protected@file@percent } 556\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-suspend-pwrdown-early-optional}{{2.7.13}{83}{plat\_psci\_ops.pwr\_domain\_suspend\_pwrdown\_early() {[}optional{]}}{paragraph*.200}{}} 557\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_suspend()}{83}{paragraph*.201}\protected@file@percent } 558\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-suspend}{{2.7.13}{83}{plat\_psci\_ops.pwr\_domain\_suspend()}{paragraph*.201}{}} 559\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_pwr\_down\_wfi()}{84}{paragraph*.202}\protected@file@percent } 560\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-pwr-down-wfi}{{2.7.13}{84}{plat\_psci\_ops.pwr\_domain\_pwr\_down\_wfi()}{paragraph*.202}{}} 561\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_on\_finish()}{84}{paragraph*.203}\protected@file@percent } 562\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-on-finish}{{2.7.13}{84}{plat\_psci\_ops.pwr\_domain\_on\_finish()}{paragraph*.203}{}} 563\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_on\_finish\_late() {[}optional{]}}{84}{paragraph*.204}\protected@file@percent } 564\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-on-finish-late-optional}{{2.7.13}{84}{plat\_psci\_ops.pwr\_domain\_on\_finish\_late() {[}optional{]}}{paragraph*.204}{}} 565\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.pwr\_domain\_suspend\_finish()}{85}{paragraph*.205}\protected@file@percent } 566\newlabel{getting_started/porting-guide:plat-psci-ops-pwr-domain-suspend-finish}{{2.7.13}{85}{plat\_psci\_ops.pwr\_domain\_suspend\_finish()}{paragraph*.205}{}} 567\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.system\_off()}{85}{paragraph*.206}\protected@file@percent } 568\newlabel{getting_started/porting-guide:plat-psci-ops-system-off}{{2.7.13}{85}{plat\_psci\_ops.system\_off()}{paragraph*.206}{}} 569\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.system\_reset()}{85}{paragraph*.207}\protected@file@percent } 570\newlabel{getting_started/porting-guide:plat-psci-ops-system-reset}{{2.7.13}{85}{plat\_psci\_ops.system\_reset()}{paragraph*.207}{}} 571\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.validate\_power\_state()}{85}{paragraph*.208}\protected@file@percent } 572\newlabel{getting_started/porting-guide:plat-psci-ops-validate-power-state}{{2.7.13}{85}{plat\_psci\_ops.validate\_power\_state()}{paragraph*.208}{}} 573\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.validate\_ns\_entrypoint()}{85}{paragraph*.209}\protected@file@percent } 574\newlabel{getting_started/porting-guide:plat-psci-ops-validate-ns-entrypoint}{{2.7.13}{85}{plat\_psci\_ops.validate\_ns\_entrypoint()}{paragraph*.209}{}} 575\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.get\_sys\_suspend\_power\_state()}{85}{paragraph*.210}\protected@file@percent } 576\newlabel{getting_started/porting-guide:plat-psci-ops-get-sys-suspend-power-state}{{2.7.13}{85}{plat\_psci\_ops.get\_sys\_suspend\_power\_state()}{paragraph*.210}{}} 577\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.get\_pwr\_lvl\_state\_idx()}{86}{paragraph*.211}\protected@file@percent } 578\newlabel{getting_started/porting-guide:plat-psci-ops-get-pwr-lvl-state-idx}{{2.7.13}{86}{plat\_psci\_ops.get\_pwr\_lvl\_state\_idx()}{paragraph*.211}{}} 579\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.translate\_power\_state\_by\_mpidr()}{86}{paragraph*.212}\protected@file@percent } 580\newlabel{getting_started/porting-guide:plat-psci-ops-translate-power-state-by-mpidr}{{2.7.13}{86}{plat\_psci\_ops.translate\_power\_state\_by\_mpidr()}{paragraph*.212}{}} 581\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.get\_node\_hw\_state()}{86}{paragraph*.213}\protected@file@percent } 582\newlabel{getting_started/porting-guide:plat-psci-ops-get-node-hw-state}{{2.7.13}{86}{plat\_psci\_ops.get\_node\_hw\_state()}{paragraph*.213}{}} 583\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.system\_reset2()}{86}{paragraph*.214}\protected@file@percent } 584\newlabel{getting_started/porting-guide:plat-psci-ops-system-reset2}{{2.7.13}{86}{plat\_psci\_ops.system\_reset2()}{paragraph*.214}{}} 585\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.write\_mem\_protect()}{86}{paragraph*.215}\protected@file@percent } 586\newlabel{getting_started/porting-guide:plat-psci-ops-write-mem-protect}{{2.7.13}{86}{plat\_psci\_ops.write\_mem\_protect()}{paragraph*.215}{}} 587\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.read\_mem\_protect()}{87}{paragraph*.216}\protected@file@percent } 588\newlabel{getting_started/porting-guide:plat-psci-ops-read-mem-protect}{{2.7.13}{87}{plat\_psci\_ops.read\_mem\_protect()}{paragraph*.216}{}} 589\@writefile{toc}{\contentsline {paragraph}{plat\_psci\_ops.mem\_protect\_chk()}{87}{paragraph*.217}\protected@file@percent } 590\newlabel{getting_started/porting-guide:plat-psci-ops-mem-protect-chk}{{2.7.13}{87}{plat\_psci\_ops.mem\_protect\_chk()}{paragraph*.217}{}} 591\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.14}Interrupt Management framework (in BL31)}{87}{subsection.2.7.14}\protected@file@percent } 592\newlabel{getting_started/porting-guide:interrupt-management-framework-in-bl31}{{2.7.14}{87}{Interrupt Management framework (in BL31)}{subsection.2.7.14}{}} 593\newlabel{getting_started/porting-guide:porting-guide-imf-in-bl31}{{2.7.14}{87}{Interrupt Management framework (in BL31)}{subsection.2.7.14}{}} 594\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_interrupt\_type\_to\_line() {[}mandatory{]}}{87}{subsubsection*.218}\protected@file@percent } 595\newlabel{getting_started/porting-guide:function-plat-interrupt-type-to-line-mandatory}{{2.7.14}{87}{Function : plat\_interrupt\_type\_to\_line() {[}mandatory{]}}{subsubsection*.218}{}} 596\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_ic\_get\_pending\_interrupt\_type() {[}mandatory{]}}{88}{subsubsection*.219}\protected@file@percent } 597\newlabel{getting_started/porting-guide:function-plat-ic-get-pending-interrupt-type-mandatory}{{2.7.14}{88}{Function : plat\_ic\_get\_pending\_interrupt\_type() {[}mandatory{]}}{subsubsection*.219}{}} 598\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_ic\_get\_pending\_interrupt\_id() {[}mandatory{]}}{88}{subsubsection*.220}\protected@file@percent } 599\newlabel{getting_started/porting-guide:function-plat-ic-get-pending-interrupt-id-mandatory}{{2.7.14}{88}{Function : plat\_ic\_get\_pending\_interrupt\_id() {[}mandatory{]}}{subsubsection*.220}{}} 600\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_ic\_acknowledge\_interrupt() {[}mandatory{]}}{89}{subsubsection*.221}\protected@file@percent } 601\newlabel{getting_started/porting-guide:function-plat-ic-acknowledge-interrupt-mandatory}{{2.7.14}{89}{Function : plat\_ic\_acknowledge\_interrupt() {[}mandatory{]}}{subsubsection*.221}{}} 602\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_ic\_end\_of\_interrupt() {[}mandatory{]}}{89}{subsubsection*.222}\protected@file@percent } 603\newlabel{getting_started/porting-guide:function-plat-ic-end-of-interrupt-mandatory}{{2.7.14}{89}{Function : plat\_ic\_end\_of\_interrupt() {[}mandatory{]}}{subsubsection*.222}{}} 604\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_ic\_get\_interrupt\_type() {[}mandatory{]}}{89}{subsubsection*.223}\protected@file@percent } 605\newlabel{getting_started/porting-guide:function-plat-ic-get-interrupt-type-mandatory}{{2.7.14}{89}{Function : plat\_ic\_get\_interrupt\_type() {[}mandatory{]}}{subsubsection*.223}{}} 606\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.15}Crash Reporting mechanism (in BL31)}{90}{subsection.2.7.15}\protected@file@percent } 607\newlabel{getting_started/porting-guide:crash-reporting-mechanism-in-bl31}{{2.7.15}{90}{Crash Reporting mechanism (in BL31)}{subsection.2.7.15}{}} 608\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_crash\_console\_init {[}mandatory{]}}{90}{subsubsection*.224}\protected@file@percent } 609\newlabel{getting_started/porting-guide:function-plat-crash-console-init-mandatory}{{2.7.15}{90}{Function : plat\_crash\_console\_init {[}mandatory{]}}{subsubsection*.224}{}} 610\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_crash\_console\_putc {[}mandatory{]}}{90}{subsubsection*.225}\protected@file@percent } 611\newlabel{getting_started/porting-guide:function-plat-crash-console-putc-mandatory}{{2.7.15}{90}{Function : plat\_crash\_console\_putc {[}mandatory{]}}{subsubsection*.225}{}} 612\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_crash\_console\_flush {[}mandatory{]}}{91}{subsubsection*.226}\protected@file@percent } 613\newlabel{getting_started/porting-guide:function-plat-crash-console-flush-mandatory}{{2.7.15}{91}{Function : plat\_crash\_console\_flush {[}mandatory{]}}{subsubsection*.226}{}} 614\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.16}External Abort handling and RAS Support}{91}{subsection.2.7.16}\protected@file@percent } 615\newlabel{getting_started/porting-guide:external-abort-handling-and-ras-support}{{2.7.16}{91}{External Abort handling and RAS Support}{subsection.2.7.16}{}} 616\newlabel{getting_started/porting-guide:id2}{{2.7.16}{91}{External Abort handling and RAS Support}{subsection.2.7.16}{}} 617\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_ea\_handler}{91}{subsubsection*.227}\protected@file@percent } 618\newlabel{getting_started/porting-guide:function-plat-ea-handler}{{2.7.16}{91}{Function : plat\_ea\_handler}{subsubsection*.227}{}} 619\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_handle\_uncontainable\_ea}{91}{subsubsection*.228}\protected@file@percent } 620\newlabel{getting_started/porting-guide:function-plat-handle-uncontainable-ea}{{2.7.16}{91}{Function : plat\_handle\_uncontainable\_ea}{subsubsection*.228}{}} 621\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_handle\_double\_fault}{92}{subsubsection*.229}\protected@file@percent } 622\newlabel{getting_started/porting-guide:function-plat-handle-double-fault}{{2.7.16}{92}{Function : plat\_handle\_double\_fault}{subsubsection*.229}{}} 623\@writefile{toc}{\contentsline {subsubsection}{Function : plat\_handle\_el3\_ea}{92}{subsubsection*.230}\protected@file@percent } 624\newlabel{getting_started/porting-guide:function-plat-handle-el3-ea}{{2.7.16}{92}{Function : plat\_handle\_el3\_ea}{subsubsection*.230}{}} 625\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.17}Build flags}{92}{subsection.2.7.17}\protected@file@percent } 626\newlabel{getting_started/porting-guide:build-flags}{{2.7.17}{92}{Build flags}{subsection.2.7.17}{}} 627\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.18}Platform include paths}{92}{subsection.2.7.18}\protected@file@percent } 628\newlabel{getting_started/porting-guide:platform-include-paths}{{2.7.18}{92}{Platform include paths}{subsection.2.7.18}{}} 629\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.19}C Library}{93}{subsection.2.7.19}\protected@file@percent } 630\newlabel{getting_started/porting-guide:c-library}{{2.7.19}{93}{C Library}{subsection.2.7.19}{}} 631\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.20}Storage abstraction layer}{93}{subsection.2.7.20}\protected@file@percent } 632\newlabel{getting_started/porting-guide:storage-abstraction-layer}{{2.7.20}{93}{Storage abstraction layer}{subsection.2.7.20}{}} 633\@writefile{toc}{\contentsline {section}{\numberline {2.8}PSCI Library Integration guide for Armv8\sphinxhyphen {}A AArch32 systems}{97}{section.2.8}\protected@file@percent } 634\newlabel{getting_started/psci-lib-integration-guide:psci-library-integration-guide-for-armv8-a-aarch32-systems}{{2.8}{97}{PSCI Library Integration guide for Armv8\sphinxhyphen {}A AArch32 systems}{section.2.8}{}} 635\newlabel{getting_started/psci-lib-integration-guide::doc}{{2.8}{97}{PSCI Library Integration guide for Armv8\sphinxhyphen {}A AArch32 systems}{section.2.8}{}} 636\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.1}Generic call sequence for PSCI Library interface (AArch32)}{97}{subsection.2.8.1}\protected@file@percent } 637\newlabel{getting_started/psci-lib-integration-guide:generic-call-sequence-for-psci-library-interface-aarch32}{{2.8.1}{97}{Generic call sequence for PSCI Library interface (AArch32)}{subsection.2.8.1}{}} 638\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.2}PSCI CPU context management}{98}{subsection.2.8.2}\protected@file@percent } 639\newlabel{getting_started/psci-lib-integration-guide:psci-cpu-context-management}{{2.8.2}{98}{PSCI CPU context management}{subsection.2.8.2}{}} 640\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.3}PSCI Library Interface}{98}{subsection.2.8.3}\protected@file@percent } 641\newlabel{getting_started/psci-lib-integration-guide:psci-library-interface}{{2.8.3}{98}{PSCI Library Interface}{subsection.2.8.3}{}} 642\@writefile{toc}{\contentsline {subsubsection}{Interface : psci\_setup()}{99}{subsubsection*.231}\protected@file@percent } 643\newlabel{getting_started/psci-lib-integration-guide:interface-psci-setup}{{2.8.3}{99}{Interface : psci\_setup()}{subsubsection*.231}{}} 644\@writefile{toc}{\contentsline {subsubsection}{Interface : psci\_prepare\_next\_non\_secure\_ctx()}{100}{subsubsection*.232}\protected@file@percent } 645\newlabel{getting_started/psci-lib-integration-guide:interface-psci-prepare-next-non-secure-ctx}{{2.8.3}{100}{Interface : psci\_prepare\_next\_non\_secure\_ctx()}{subsubsection*.232}{}} 646\@writefile{toc}{\contentsline {subsubsection}{Interface : psci\_register\_spd\_pm\_hook()}{100}{subsubsection*.233}\protected@file@percent } 647\newlabel{getting_started/psci-lib-integration-guide:interface-psci-register-spd-pm-hook}{{2.8.3}{100}{Interface : psci\_register\_spd\_pm\_hook()}{subsubsection*.233}{}} 648\@writefile{toc}{\contentsline {subsubsection}{Interface : psci\_smc\_handler()}{100}{subsubsection*.234}\protected@file@percent } 649\newlabel{getting_started/psci-lib-integration-guide:interface-psci-smc-handler}{{2.8.3}{100}{Interface : psci\_smc\_handler()}{subsubsection*.234}{}} 650\@writefile{toc}{\contentsline {subsubsection}{Interface : psci\_warmboot\_entrypoint()}{100}{subsubsection*.235}\protected@file@percent } 651\newlabel{getting_started/psci-lib-integration-guide:interface-psci-warmboot-entrypoint}{{2.8.3}{100}{Interface : psci\_warmboot\_entrypoint()}{subsubsection*.235}{}} 652\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.4}EL3 Runtime Software dependencies}{101}{subsection.2.8.4}\protected@file@percent } 653\newlabel{getting_started/psci-lib-integration-guide:el3-runtime-software-dependencies}{{2.8.4}{101}{EL3 Runtime Software dependencies}{subsection.2.8.4}{}} 654\@writefile{toc}{\contentsline {subsubsection}{General dependencies}{101}{subsubsection*.236}\protected@file@percent } 655\newlabel{getting_started/psci-lib-integration-guide:general-dependencies}{{2.8.4}{101}{General dependencies}{subsubsection*.236}{}} 656\@writefile{toc}{\contentsline {subsubsection}{CPU Context management API}{102}{subsubsection*.237}\protected@file@percent } 657\newlabel{getting_started/psci-lib-integration-guide:cpu-context-management-api}{{2.8.4}{102}{CPU Context management API}{subsubsection*.237}{}} 658\@writefile{toc}{\contentsline {subsubsection}{Platform API}{102}{subsubsection*.238}\protected@file@percent } 659\newlabel{getting_started/psci-lib-integration-guide:platform-api}{{2.8.4}{102}{Platform API}{subsubsection*.238}{}} 660\@writefile{toc}{\contentsline {subsubsection}{Secure payload power management callback}{103}{subsubsection*.239}\protected@file@percent } 661\newlabel{getting_started/psci-lib-integration-guide:secure-payload-power-management-callback}{{2.8.4}{103}{Secure payload power management callback}{subsubsection*.239}{}} 662\@writefile{toc}{\contentsline {subsubsection}{CPU operations}{104}{subsubsection*.240}\protected@file@percent } 663\newlabel{getting_started/psci-lib-integration-guide:cpu-operations}{{2.8.4}{104}{CPU operations}{subsubsection*.240}{}} 664\@writefile{toc}{\contentsline {section}{\numberline {2.9}EL3 Runtime Service Writer’s Guide}{104}{section.2.9}\protected@file@percent } 665\newlabel{getting_started/rt-svc-writers-guide:el3-runtime-service-writer-s-guide}{{2.9}{104}{EL3 Runtime Service Writer’s Guide}{section.2.9}{}} 666\newlabel{getting_started/rt-svc-writers-guide::doc}{{2.9}{104}{EL3 Runtime Service Writer’s Guide}{section.2.9}{}} 667\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.1}Introduction}{104}{subsection.2.9.1}\protected@file@percent } 668\newlabel{getting_started/rt-svc-writers-guide:introduction}{{2.9.1}{104}{Introduction}{subsection.2.9.1}{}} 669\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.2}Owning Entities, Call Types and Function IDs}{105}{subsection.2.9.2}\protected@file@percent } 670\newlabel{getting_started/rt-svc-writers-guide:owning-entities-call-types-and-function-ids}{{2.9.2}{105}{Owning Entities, Call Types and Function IDs}{subsection.2.9.2}{}} 671\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.3}Getting started}{105}{subsection.2.9.3}\protected@file@percent } 672\newlabel{getting_started/rt-svc-writers-guide:getting-started}{{2.9.3}{105}{Getting started}{subsection.2.9.3}{}} 673\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.4}Registering a runtime service}{106}{subsection.2.9.4}\protected@file@percent } 674\newlabel{getting_started/rt-svc-writers-guide:registering-a-runtime-service}{{2.9.4}{106}{Registering a runtime service}{subsection.2.9.4}{}} 675\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.5}Initializing a runtime service}{107}{subsection.2.9.5}\protected@file@percent } 676\newlabel{getting_started/rt-svc-writers-guide:initializing-a-runtime-service}{{2.9.5}{107}{Initializing a runtime service}{subsection.2.9.5}{}} 677\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.6}Handling runtime service requests}{107}{subsection.2.9.6}\protected@file@percent } 678\newlabel{getting_started/rt-svc-writers-guide:handling-runtime-service-requests}{{2.9.6}{107}{Handling runtime service requests}{subsection.2.9.6}{}} 679\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.7}Services that contain multiple sub\sphinxhyphen {}services}{109}{subsection.2.9.7}\protected@file@percent } 680\newlabel{getting_started/rt-svc-writers-guide:services-that-contain-multiple-sub-services}{{2.9.7}{109}{Services that contain multiple sub\sphinxhyphen {}services}{subsection.2.9.7}{}} 681\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.8}Secure\sphinxhyphen {}EL1 Payload Dispatcher service (SPD)}{109}{subsection.2.9.8}\protected@file@percent } 682\newlabel{getting_started/rt-svc-writers-guide:secure-el1-payload-dispatcher-service-spd}{{2.9.8}{109}{Secure\sphinxhyphen {}EL1 Payload Dispatcher service (SPD)}{subsection.2.9.8}{}} 683\@writefile{toc}{\contentsline {chapter}{\numberline {3}Processes \& Policies}{111}{chapter.3}\protected@file@percent } 684\@writefile{lof}{\addvspace {10\p@ }} 685\@writefile{lot}{\addvspace {10\p@ }} 686\newlabel{process/index:processes-policies}{{3}{111}{Processes \& Policies}{chapter.3}{}} 687\newlabel{process/index::doc}{{3}{111}{Processes \& Policies}{chapter.3}{}} 688\@writefile{toc}{\contentsline {section}{\numberline {3.1}Security Handling}{111}{section.3.1}\protected@file@percent } 689\newlabel{process/security:security-handling}{{3.1}{111}{Security Handling}{section.3.1}{}} 690\newlabel{process/security::doc}{{3.1}{111}{Security Handling}{section.3.1}{}} 691\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Security Disclosures}{111}{subsection.3.1.1}\protected@file@percent } 692\newlabel{process/security:security-disclosures}{{3.1.1}{111}{Security Disclosures}{subsection.3.1.1}{}} 693\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Found a Security Issue?}{111}{subsection.3.1.2}\protected@file@percent } 694\newlabel{process/security:found-a-security-issue}{{3.1.2}{111}{Found a Security Issue?}{subsection.3.1.2}{}} 695\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.3}Attribution}{111}{subsection.3.1.3}\protected@file@percent } 696\newlabel{process/security:attribution}{{3.1.3}{111}{Attribution}{subsection.3.1.3}{}} 697\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.4}Security Advisories}{112}{subsection.3.1.4}\protected@file@percent } 698\newlabel{process/security:security-advisories}{{3.1.4}{112}{Security Advisories}{subsection.3.1.4}{}} 699\@writefile{toc}{\contentsline {section}{\numberline {3.2}Platform Compatibility Policy}{112}{section.3.2}\protected@file@percent } 700\newlabel{process/platform-compatibility-policy:platform-compatibility-policy}{{3.2}{112}{Platform Compatibility Policy}{section.3.2}{}} 701\newlabel{process/platform-compatibility-policy::doc}{{3.2}{112}{Platform Compatibility Policy}{section.3.2}{}} 702\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Introduction}{112}{subsection.3.2.1}\protected@file@percent } 703\newlabel{process/platform-compatibility-policy:introduction}{{3.2.1}{112}{Introduction}{subsection.3.2.1}{}} 704\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Platform compatibility policy}{112}{subsection.3.2.2}\protected@file@percent } 705\newlabel{process/platform-compatibility-policy:id1}{{3.2.2}{112}{Platform compatibility policy}{subsection.3.2.2}{}} 706\@writefile{toc}{\contentsline {section}{\numberline {3.3}Commit Style}{113}{section.3.3}\protected@file@percent } 707\newlabel{process/commit-style:commit-style}{{3.3}{113}{Commit Style}{section.3.3}{}} 708\newlabel{process/commit-style::doc}{{3.3}{113}{Commit Style}{section.3.3}{}} 709\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Adding Scopes}{114}{subsection.3.3.1}\protected@file@percent } 710\newlabel{process/commit-style:adding-scopes}{{3.3.1}{114}{Adding Scopes}{subsection.3.3.1}{}} 711\newlabel{process/commit-style:id1}{{3.3.1}{114}{Adding Scopes}{subsection.3.3.1}{}} 712\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Mandated Trailers}{115}{subsection.3.3.2}\protected@file@percent } 713\newlabel{process/commit-style:mandated-trailers}{{3.3.2}{115}{Mandated Trailers}{subsection.3.3.2}{}} 714\@writefile{toc}{\contentsline {section}{\numberline {3.4}Coding Style}{115}{section.3.4}\protected@file@percent } 715\newlabel{process/coding-style:coding-style}{{3.4}{115}{Coding Style}{section.3.4}{}} 716\newlabel{process/coding-style::doc}{{3.4}{115}{Coding Style}{section.3.4}{}} 717\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1}File Encoding}{115}{subsection.3.4.1}\protected@file@percent } 718\newlabel{process/coding-style:file-encoding}{{3.4.1}{115}{File Encoding}{subsection.3.4.1}{}} 719\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.2}Language}{115}{subsection.3.4.2}\protected@file@percent } 720\newlabel{process/coding-style:language}{{3.4.2}{115}{Language}{subsection.3.4.2}{}} 721\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.3}C Language Standard}{116}{subsection.3.4.3}\protected@file@percent } 722\newlabel{process/coding-style:c-language-standard}{{3.4.3}{116}{C Language Standard}{subsection.3.4.3}{}} 723\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.4}MISRA Compliance}{116}{subsection.3.4.4}\protected@file@percent } 724\newlabel{process/coding-style:misra-compliance}{{3.4.4}{116}{MISRA Compliance}{subsection.3.4.4}{}} 725\newlabel{process/coding-style:id1}{{3.4.4}{116}{MISRA Compliance}{subsection.3.4.4}{}} 726\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.5}Indentation}{116}{subsection.3.4.5}\protected@file@percent } 727\newlabel{process/coding-style:indentation}{{3.4.5}{116}{Indentation}{subsection.3.4.5}{}} 728\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.6}Spacing}{116}{subsection.3.4.6}\protected@file@percent } 729\newlabel{process/coding-style:spacing}{{3.4.6}{116}{Spacing}{subsection.3.4.6}{}} 730\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.7}Line Length}{117}{subsection.3.4.7}\protected@file@percent } 731\newlabel{process/coding-style:line-length}{{3.4.7}{117}{Line Length}{subsection.3.4.7}{}} 732\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.8}Blank Lines}{117}{subsection.3.4.8}\protected@file@percent } 733\newlabel{process/coding-style:blank-lines}{{3.4.8}{117}{Blank Lines}{subsection.3.4.8}{}} 734\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.9}Braces}{117}{subsection.3.4.9}\protected@file@percent } 735\newlabel{process/coding-style:braces}{{3.4.9}{117}{Braces}{subsection.3.4.9}{}} 736\@writefile{toc}{\contentsline {subsubsection}{Opening Brace Placement}{117}{subsubsection*.241}\protected@file@percent } 737\newlabel{process/coding-style:opening-brace-placement}{{3.4.9}{117}{Opening Brace Placement}{subsubsection*.241}{}} 738\@writefile{toc}{\contentsline {subsubsection}{Conditional Statement Bodies}{118}{subsubsection*.242}\protected@file@percent } 739\newlabel{process/coding-style:conditional-statement-bodies}{{3.4.9}{118}{Conditional Statement Bodies}{subsubsection*.242}{}} 740\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.10}Naming}{118}{subsection.3.4.10}\protected@file@percent } 741\newlabel{process/coding-style:naming}{{3.4.10}{118}{Naming}{subsection.3.4.10}{}} 742\@writefile{toc}{\contentsline {subsubsection}{Functions}{118}{subsubsection*.243}\protected@file@percent } 743\newlabel{process/coding-style:functions}{{3.4.10}{118}{Functions}{subsubsection*.243}{}} 744\@writefile{toc}{\contentsline {subsubsection}{Local Variables and Parameters}{119}{subsubsection*.244}\protected@file@percent } 745\newlabel{process/coding-style:local-variables-and-parameters}{{3.4.10}{119}{Local Variables and Parameters}{subsubsection*.244}{}} 746\@writefile{toc}{\contentsline {subsubsection}{Preprocessor Macros}{119}{subsubsection*.245}\protected@file@percent } 747\newlabel{process/coding-style:preprocessor-macros}{{3.4.10}{119}{Preprocessor Macros}{subsubsection*.245}{}} 748\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.11}Function Attributes}{119}{subsection.3.4.11}\protected@file@percent } 749\newlabel{process/coding-style:function-attributes}{{3.4.11}{119}{Function Attributes}{subsection.3.4.11}{}} 750\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.12}Alignment}{119}{subsection.3.4.12}\protected@file@percent } 751\newlabel{process/coding-style:alignment}{{3.4.12}{119}{Alignment}{subsection.3.4.12}{}} 752\@writefile{toc}{\contentsline {subsubsection}{Switch Statement Alignment}{119}{subsubsection*.246}\protected@file@percent } 753\newlabel{process/coding-style:switch-statement-alignment}{{3.4.12}{119}{Switch Statement Alignment}{subsubsection*.246}{}} 754\@writefile{toc}{\contentsline {subsubsection}{Pointer Alignment}{120}{subsubsection*.247}\protected@file@percent } 755\newlabel{process/coding-style:pointer-alignment}{{3.4.12}{120}{Pointer Alignment}{subsubsection*.247}{}} 756\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.13}Comments}{120}{subsection.3.4.13}\protected@file@percent } 757\newlabel{process/coding-style:comments}{{3.4.13}{120}{Comments}{subsection.3.4.13}{}} 758\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.14}Headers and inclusion}{120}{subsection.3.4.14}\protected@file@percent } 759\newlabel{process/coding-style:headers-and-inclusion}{{3.4.14}{120}{Headers and inclusion}{subsection.3.4.14}{}} 760\@writefile{toc}{\contentsline {subsubsection}{Header guards}{120}{subsubsection*.248}\protected@file@percent } 761\newlabel{process/coding-style:header-guards}{{3.4.14}{120}{Header guards}{subsubsection*.248}{}} 762\@writefile{toc}{\contentsline {subsubsection}{Include statement ordering}{121}{subsubsection*.249}\protected@file@percent } 763\newlabel{process/coding-style:include-statement-ordering}{{3.4.14}{121}{Include statement ordering}{subsubsection*.249}{}} 764\@writefile{toc}{\contentsline {subsubsection}{Include statement variants}{121}{subsubsection*.250}\protected@file@percent } 765\newlabel{process/coding-style:include-statement-variants}{{3.4.14}{121}{Include statement variants}{subsubsection*.250}{}} 766\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.15}Typedefs}{122}{subsection.3.4.15}\protected@file@percent } 767\newlabel{process/coding-style:typedefs}{{3.4.15}{122}{Typedefs}{subsection.3.4.15}{}} 768\@writefile{toc}{\contentsline {subsubsection}{Avoid anonymous typedefs of structs/enums in headers}{122}{subsubsection*.251}\protected@file@percent } 769\newlabel{process/coding-style:avoid-anonymous-typedefs-of-structs-enums-in-headers}{{3.4.15}{122}{Avoid anonymous typedefs of structs/enums in headers}{subsubsection*.251}{}} 770\@writefile{toc}{\contentsline {section}{\numberline {3.5}Coding Guidelines}{122}{section.3.5}\protected@file@percent } 771\newlabel{process/coding-guidelines:coding-guidelines}{{3.5}{122}{Coding Guidelines}{section.3.5}{}} 772\newlabel{process/coding-guidelines::doc}{{3.5}{122}{Coding Guidelines}{section.3.5}{}} 773\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}Automatic Editor Configuration}{123}{subsection.3.5.1}\protected@file@percent } 774\newlabel{process/coding-guidelines:automatic-editor-configuration}{{3.5.1}{123}{Automatic Editor Configuration}{subsection.3.5.1}{}} 775\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}Automatic Compliance Checking}{123}{subsection.3.5.2}\protected@file@percent } 776\newlabel{process/coding-guidelines:automatic-compliance-checking}{{3.5.2}{123}{Automatic Compliance Checking}{subsection.3.5.2}{}} 777\newlabel{process/coding-guidelines:id1}{{3.5.2}{123}{Automatic Compliance Checking}{subsection.3.5.2}{}} 778\@writefile{toc}{\contentsline {subsubsection}{Ignored Checkpatch Warnings}{123}{subsubsection*.252}\protected@file@percent } 779\newlabel{process/coding-guidelines:ignored-checkpatch-warnings}{{3.5.2}{123}{Ignored Checkpatch Warnings}{subsubsection*.252}{}} 780\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.3}Performance considerations}{124}{subsection.3.5.3}\protected@file@percent } 781\newlabel{process/coding-guidelines:performance-considerations}{{3.5.3}{124}{Performance considerations}{subsection.3.5.3}{}} 782\@writefile{toc}{\contentsline {subsubsection}{Avoid printf and use logging macros}{124}{subsubsection*.253}\protected@file@percent } 783\newlabel{process/coding-guidelines:avoid-printf-and-use-logging-macros}{{3.5.3}{124}{Avoid printf and use logging macros}{subsubsection*.253}{}} 784\@writefile{toc}{\contentsline {subsubsection}{Use const data where possible}{124}{subsubsection*.254}\protected@file@percent } 785\newlabel{process/coding-guidelines:use-const-data-where-possible}{{3.5.3}{124}{Use const data where possible}{subsubsection*.254}{}} 786\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.4}Libc functions that are banned or to be used with caution}{125}{subsection.3.5.4}\protected@file@percent } 787\newlabel{process/coding-guidelines:libc-functions-that-are-banned-or-to-be-used-with-caution}{{3.5.4}{125}{Libc functions that are banned or to be used with caution}{subsection.3.5.4}{}} 788\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.5}Error handling and robustness}{125}{subsection.3.5.5}\protected@file@percent } 789\newlabel{process/coding-guidelines:error-handling-and-robustness}{{3.5.5}{125}{Error handling and robustness}{subsection.3.5.5}{}} 790\@writefile{toc}{\contentsline {subsubsection}{Using CASSERT to check for compile time data errors}{125}{subsubsection*.255}\protected@file@percent } 791\newlabel{process/coding-guidelines:using-cassert-to-check-for-compile-time-data-errors}{{3.5.5}{125}{Using CASSERT to check for compile time data errors}{subsubsection*.255}{}} 792\@writefile{toc}{\contentsline {subsubsection}{Using assert() to check for programming errors}{126}{subsubsection*.256}\protected@file@percent } 793\newlabel{process/coding-guidelines:using-assert-to-check-for-programming-errors}{{3.5.5}{126}{Using assert() to check for programming errors}{subsubsection*.256}{}} 794\@writefile{toc}{\contentsline {subsubsection}{Handling integration errors}{126}{subsubsection*.257}\protected@file@percent } 795\newlabel{process/coding-guidelines:handling-integration-errors}{{3.5.5}{126}{Handling integration errors}{subsubsection*.257}{}} 796\@writefile{toc}{\contentsline {subsubsection}{Handling recoverable errors}{126}{subsubsection*.258}\protected@file@percent } 797\newlabel{process/coding-guidelines:handling-recoverable-errors}{{3.5.5}{126}{Handling recoverable errors}{subsubsection*.258}{}} 798\@writefile{toc}{\contentsline {subsubsection}{Handling unrecoverable errors}{127}{subsubsection*.259}\protected@file@percent } 799\newlabel{process/coding-guidelines:handling-unrecoverable-errors}{{3.5.5}{127}{Handling unrecoverable errors}{subsubsection*.259}{}} 800\@writefile{toc}{\contentsline {subsubsection}{Handling critical unresponsiveness}{127}{subsubsection*.260}\protected@file@percent } 801\newlabel{process/coding-guidelines:handling-critical-unresponsiveness}{{3.5.5}{127}{Handling critical unresponsiveness}{subsubsection*.260}{}} 802\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.6}Use of built\sphinxhyphen {}in \sphinxstyleemphasis {C} and \sphinxstyleemphasis {libc} data types}{128}{subsection.3.5.6}\protected@file@percent } 803\newlabel{process/coding-guidelines:use-of-built-in-c-and-libc-data-types}{{3.5.6}{128}{Use of built\sphinxhyphen {}in \sphinxstyleemphasis {C} and \sphinxstyleemphasis {libc} data types}{subsection.3.5.6}{}} 804\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.7}Favor C language over assembly language}{129}{subsection.3.5.7}\protected@file@percent } 805\newlabel{process/coding-guidelines:favor-c-language-over-assembly-language}{{3.5.7}{129}{Favor C language over assembly language}{subsection.3.5.7}{}} 806\@writefile{toc}{\contentsline {section}{\numberline {3.6}Contributor’s Guide}{129}{section.3.6}\protected@file@percent } 807\newlabel{process/contributing:contributor-s-guide}{{3.6}{129}{Contributor’s Guide}{section.3.6}{}} 808\newlabel{process/contributing::doc}{{3.6}{129}{Contributor’s Guide}{section.3.6}{}} 809\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.1}Getting Started}{129}{subsection.3.6.1}\protected@file@percent } 810\newlabel{process/contributing:getting-started}{{3.6.1}{129}{Getting Started}{subsection.3.6.1}{}} 811\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.2}Making Changes}{130}{subsection.3.6.2}\protected@file@percent } 812\newlabel{process/contributing:making-changes}{{3.6.2}{130}{Making Changes}{subsection.3.6.2}{}} 813\newlabel{process/contributing:copyright-license-guidance}{{3.6.2}{130}{Making Changes}{section*.261}{}} 814\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.3}Submitting Changes}{131}{subsection.3.6.3}\protected@file@percent } 815\newlabel{process/contributing:submitting-changes}{{3.6.3}{131}{Submitting Changes}{subsection.3.6.3}{}} 816\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.4}Add Build Configurations}{132}{subsection.3.6.4}\protected@file@percent } 817\newlabel{process/contributing:add-build-configurations}{{3.6.4}{132}{Add Build Configurations}{subsection.3.6.4}{}} 818\@writefile{toc}{\contentsline {subsection}{\numberline {3.6.5}Binary Components}{132}{subsection.3.6.5}\protected@file@percent } 819\newlabel{process/contributing:binary-components}{{3.6.5}{132}{Binary Components}{subsection.3.6.5}{}} 820\@writefile{toc}{\contentsline {section}{\numberline {3.7}Code Review Guidelines}{133}{section.3.7}\protected@file@percent } 821\newlabel{process/code-review-guidelines:code-review-guidelines}{{3.7}{133}{Code Review Guidelines}{section.3.7}{}} 822\newlabel{process/code-review-guidelines::doc}{{3.7}{133}{Code Review Guidelines}{section.3.7}{}} 823\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.1}Why do we do code reviews?}{133}{subsection.3.7.1}\protected@file@percent } 824\newlabel{process/code-review-guidelines:why-do-we-do-code-reviews}{{3.7.1}{133}{Why do we do code reviews?}{subsection.3.7.1}{}} 825\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.2}Good practices}{133}{subsection.3.7.2}\protected@file@percent } 826\newlabel{process/code-review-guidelines:good-practices}{{3.7.2}{133}{Good practices}{subsection.3.7.2}{}} 827\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.3}Guidelines for patch contributors}{133}{subsection.3.7.3}\protected@file@percent } 828\newlabel{process/code-review-guidelines:guidelines-for-patch-contributors}{{3.7.3}{133}{Guidelines for patch contributors}{subsection.3.7.3}{}} 829\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.4}Guidelines for all reviewers}{134}{subsection.3.7.4}\protected@file@percent } 830\newlabel{process/code-review-guidelines:guidelines-for-all-reviewers}{{3.7.4}{134}{Guidelines for all reviewers}{subsection.3.7.4}{}} 831\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.5}Guidelines for code owners}{134}{subsection.3.7.5}\protected@file@percent } 832\newlabel{process/code-review-guidelines:guidelines-for-code-owners}{{3.7.5}{134}{Guidelines for code owners}{subsection.3.7.5}{}} 833\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.6}Guidelines for maintainers}{135}{subsection.3.7.6}\protected@file@percent } 834\newlabel{process/code-review-guidelines:guidelines-for-maintainers}{{3.7.6}{135}{Guidelines for maintainers}{subsection.3.7.6}{}} 835\@writefile{toc}{\contentsline {section}{\numberline {3.8}Frequently\sphinxhyphen {}Asked Questions (FAQ)}{136}{section.3.8}\protected@file@percent } 836\newlabel{process/faq:frequently-asked-questions-faq}{{3.8}{136}{Frequently\sphinxhyphen {}Asked Questions (FAQ)}{section.3.8}{}} 837\newlabel{process/faq::doc}{{3.8}{136}{Frequently\sphinxhyphen {}Asked Questions (FAQ)}{section.3.8}{}} 838\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.1}How do I update my changes?}{136}{subsection.3.8.1}\protected@file@percent } 839\newlabel{process/faq:how-do-i-update-my-changes}{{3.8.1}{136}{How do I update my changes?}{subsection.3.8.1}{}} 840\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.2}How long will my changes take to merge into \sphinxstyleliteralintitle {\sphinxupquote {integration}}?}{136}{subsection.3.8.2}\protected@file@percent } 841\newlabel{process/faq:how-long-will-my-changes-take-to-merge-into-integration}{{3.8.2}{136}{How long will my changes take to merge into \sphinxstyleliteralintitle {\sphinxupquote {integration}}?}{subsection.3.8.2}{}} 842\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.3}How long will it take for my changes to go from \sphinxstyleliteralintitle {\sphinxupquote {integration}} to \sphinxstyleliteralintitle {\sphinxupquote {master}}?}{136}{subsection.3.8.3}\protected@file@percent } 843\newlabel{process/faq:how-long-will-it-take-for-my-changes-to-go-from-integration-to-master}{{3.8.3}{136}{How long will it take for my changes to go from \sphinxstyleliteralintitle {\sphinxupquote {integration}} to \sphinxstyleliteralintitle {\sphinxupquote {master}}?}{subsection.3.8.3}{}} 844\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.4}What are these strange comments in my changes?}{137}{subsection.3.8.4}\protected@file@percent } 845\newlabel{process/faq:what-are-these-strange-comments-in-my-changes}{{3.8.4}{137}{What are these strange comments in my changes?}{subsection.3.8.4}{}} 846\@writefile{toc}{\contentsline {section}{\numberline {3.9}Secure Development Guidelines}{137}{section.3.9}\protected@file@percent } 847\newlabel{process/security-hardening:secure-development-guidelines}{{3.9}{137}{Secure Development Guidelines}{section.3.9}{}} 848\newlabel{process/security-hardening::doc}{{3.9}{137}{Secure Development Guidelines}{section.3.9}{}} 849\@writefile{toc}{\contentsline {subsection}{\numberline {3.9.1}Security considerations}{137}{subsection.3.9.1}\protected@file@percent } 850\newlabel{process/security-hardening:security-considerations}{{3.9.1}{137}{Security considerations}{subsection.3.9.1}{}} 851\@writefile{toc}{\contentsline {subsubsection}{Do not leak secrets to the normal world}{137}{subsubsection*.262}\protected@file@percent } 852\newlabel{process/security-hardening:do-not-leak-secrets-to-the-normal-world}{{3.9.1}{137}{Do not leak secrets to the normal world}{subsubsection*.262}{}} 853\@writefile{toc}{\contentsline {subsubsection}{Handling Denial of Service attacks}{137}{subsubsection*.263}\protected@file@percent } 854\newlabel{process/security-hardening:handling-denial-of-service-attacks}{{3.9.1}{137}{Handling Denial of Service attacks}{subsubsection*.263}{}} 855\@writefile{toc}{\contentsline {subsubsection}{Preventing Secure\sphinxhyphen {}world timing information leakage via PMU counters}{137}{subsubsection*.264}\protected@file@percent } 856\newlabel{process/security-hardening:preventing-secure-world-timing-information-leakage-via-pmu-counters}{{3.9.1}{137}{Preventing Secure\sphinxhyphen {}world timing information leakage via PMU counters}{subsubsection*.264}{}} 857\@writefile{toc}{\contentsline {paragraph}{Timing leakage attacks from the Non\sphinxhyphen {}secure world}{137}{paragraph*.265}\protected@file@percent } 858\newlabel{process/security-hardening:timing-leakage-attacks-from-the-non-secure-world}{{3.9.1}{137}{Timing leakage attacks from the Non\sphinxhyphen {}secure world}{paragraph*.265}{}} 859\@writefile{toc}{\contentsline {paragraph}{Secure world mitigation strategies}{138}{paragraph*.266}\protected@file@percent } 860\newlabel{process/security-hardening:secure-world-mitigation-strategies}{{3.9.1}{138}{Secure world mitigation strategies}{paragraph*.266}{}} 861\@writefile{toc}{\contentsline {subsection}{\numberline {3.9.2}Build options}{139}{subsection.3.9.2}\protected@file@percent } 862\newlabel{process/security-hardening:build-options}{{3.9.2}{139}{Build options}{subsection.3.9.2}{}} 863\@writefile{toc}{\contentsline {chapter}{\numberline {4}Components}{141}{chapter.4}\protected@file@percent } 864\@writefile{lof}{\addvspace {10\p@ }} 865\@writefile{lot}{\addvspace {10\p@ }} 866\newlabel{components/index:components}{{4}{141}{Components}{chapter.4}{}} 867\newlabel{components/index::doc}{{4}{141}{Components}{chapter.4}{}} 868\@writefile{toc}{\contentsline {section}{\numberline {4.1}Secure Payload Dispatcher (SPD)}{141}{section.4.1}\protected@file@percent } 869\newlabel{components/spd/index:secure-payload-dispatcher-spd}{{4.1}{141}{Secure Payload Dispatcher (SPD)}{section.4.1}{}} 870\newlabel{components/spd/index::doc}{{4.1}{141}{Secure Payload Dispatcher (SPD)}{section.4.1}{}} 871\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}OP\sphinxhyphen {}TEE Dispatcher}{141}{subsection.4.1.1}\protected@file@percent } 872\newlabel{components/spd/optee-dispatcher:op-tee-dispatcher}{{4.1.1}{141}{OP\sphinxhyphen {}TEE Dispatcher}{subsection.4.1.1}{}} 873\newlabel{components/spd/optee-dispatcher::doc}{{4.1.1}{141}{OP\sphinxhyphen {}TEE Dispatcher}{subsection.4.1.1}{}} 874\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Trusted Little Kernel (TLK) Dispatcher}{141}{subsection.4.1.2}\protected@file@percent } 875\newlabel{components/spd/tlk-dispatcher:trusted-little-kernel-tlk-dispatcher}{{4.1.2}{141}{Trusted Little Kernel (TLK) Dispatcher}{subsection.4.1.2}{}} 876\newlabel{components/spd/tlk-dispatcher::doc}{{4.1.2}{141}{Trusted Little Kernel (TLK) Dispatcher}{subsection.4.1.2}{}} 877\@writefile{toc}{\contentsline {subsubsection}{Trusted Little Kernel (TLK)}{141}{subsubsection*.267}\protected@file@percent } 878\newlabel{components/spd/tlk-dispatcher:trusted-little-kernel-tlk}{{4.1.2}{141}{Trusted Little Kernel (TLK)}{subsubsection*.267}{}} 879\@writefile{toc}{\contentsline {subsubsection}{Build TLK}{142}{subsubsection*.268}\protected@file@percent } 880\newlabel{components/spd/tlk-dispatcher:build-tlk}{{4.1.2}{142}{Build TLK}{subsubsection*.268}{}} 881\@writefile{toc}{\contentsline {subsubsection}{Input parameters to TLK}{142}{subsubsection*.269}\protected@file@percent } 882\newlabel{components/spd/tlk-dispatcher:input-parameters-to-tlk}{{4.1.2}{142}{Input parameters to TLK}{subsubsection*.269}{}} 883\@writefile{toc}{\contentsline {paragraph}{Example}{142}{paragraph*.270}\protected@file@percent } 884\newlabel{components/spd/tlk-dispatcher:example}{{4.1.2}{142}{Example}{paragraph*.270}{}} 885\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.3}Trusty Dispatcher}{142}{subsection.4.1.3}\protected@file@percent } 886\newlabel{components/spd/trusty-dispatcher:trusty-dispatcher}{{4.1.3}{142}{Trusty Dispatcher}{subsection.4.1.3}{}} 887\newlabel{components/spd/trusty-dispatcher::doc}{{4.1.3}{142}{Trusty Dispatcher}{subsection.4.1.3}{}} 888\@writefile{toc}{\contentsline {subsubsection}{Boot parameters}{143}{subsubsection*.271}\protected@file@percent } 889\newlabel{components/spd/trusty-dispatcher:boot-parameters}{{4.1.3}{143}{Boot parameters}{subsubsection*.271}{}} 890\@writefile{toc}{\contentsline {subsubsection}{Supported platforms}{143}{subsubsection*.272}\protected@file@percent } 891\newlabel{components/spd/trusty-dispatcher:supported-platforms}{{4.1.3}{143}{Supported platforms}{subsubsection*.272}{}} 892\@writefile{toc}{\contentsline {section}{\numberline {4.2}Activity Monitors}{143}{section.4.2}\protected@file@percent } 893\newlabel{components/activity-monitors:activity-monitors}{{4.2}{143}{Activity Monitors}{section.4.2}{}} 894\newlabel{components/activity-monitors::doc}{{4.2}{143}{Activity Monitors}{section.4.2}{}} 895\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Auxiliary counters}{143}{subsection.4.2.1}\protected@file@percent } 896\newlabel{components/activity-monitors:auxiliary-counters}{{4.2.1}{143}{Auxiliary counters}{subsection.4.2.1}{}} 897\newlabel{components/activity-monitors:activity-monitor-auxiliary-counters}{{4.2.1}{143}{Auxiliary counters}{subsection.4.2.1}{}} 898\@writefile{toc}{\contentsline {section}{\numberline {4.3}Arm SiP Services}{143}{section.4.3}\protected@file@percent } 899\newlabel{components/arm-sip-service:arm-sip-services}{{4.3}{143}{Arm SiP Services}{section.4.3}{}} 900\newlabel{components/arm-sip-service::doc}{{4.3}{143}{Arm SiP Services}{section.4.3}{}} 901\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}Performance Measurement Framework (PMF)}{144}{subsection.4.3.1}\protected@file@percent } 902\newlabel{components/arm-sip-service:performance-measurement-framework-pmf}{{4.3.1}{144}{Performance Measurement Framework (PMF)}{subsection.4.3.1}{}} 903\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}Execution State Switching service}{144}{subsection.4.3.2}\protected@file@percent } 904\newlabel{components/arm-sip-service:execution-state-switching-service}{{4.3.2}{144}{Execution State Switching service}{subsection.4.3.2}{}} 905\@writefile{toc}{\contentsline {subsubsection}{\sphinxstyleliteralintitle {\sphinxupquote {ARM\_SIP\_SVC\_EXE\_STATE\_SWITCH}}}{144}{subsubsection*.273}\protected@file@percent } 906\newlabel{components/arm-sip-service:arm-sip-svc-exe-state-switch}{{4.3.2}{144}{\sphinxstyleliteralintitle {\sphinxupquote {ARM\_SIP\_SVC\_EXE\_STATE\_SWITCH}}}{subsubsection*.273}{}} 907\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.3}DebugFS interface}{145}{subsection.4.3.3}\protected@file@percent } 908\newlabel{components/arm-sip-service:debugfs-interface}{{4.3.3}{145}{DebugFS interface}{subsection.4.3.3}{}} 909\@writefile{toc}{\contentsline {subsubsection}{MOUNT}{146}{subsubsection*.274}\protected@file@percent } 910\newlabel{components/arm-sip-service:mount}{{4.3.3}{146}{MOUNT}{subsubsection*.274}{}} 911\@writefile{toc}{\contentsline {paragraph}{Description}{146}{paragraph*.275}\protected@file@percent } 912\newlabel{components/arm-sip-service:description}{{4.3.3}{146}{Description}{paragraph*.275}{}} 913\@writefile{toc}{\contentsline {paragraph}{Parameters}{146}{paragraph*.276}\protected@file@percent } 914\newlabel{components/arm-sip-service:parameters}{{4.3.3}{146}{Parameters}{paragraph*.276}{}} 915\@writefile{toc}{\contentsline {paragraph}{Return values}{146}{paragraph*.277}\protected@file@percent } 916\newlabel{components/arm-sip-service:return-values}{{4.3.3}{146}{Return values}{paragraph*.277}{}} 917\@writefile{toc}{\contentsline {subsubsection}{OPEN}{146}{subsubsection*.278}\protected@file@percent } 918\newlabel{components/arm-sip-service:open}{{4.3.3}{146}{OPEN}{subsubsection*.278}{}} 919\@writefile{toc}{\contentsline {paragraph}{Description}{146}{paragraph*.279}\protected@file@percent } 920\newlabel{components/arm-sip-service:id1}{{4.3.3}{146}{Description}{paragraph*.279}{}} 921\@writefile{toc}{\contentsline {paragraph}{Parameters}{146}{paragraph*.280}\protected@file@percent } 922\newlabel{components/arm-sip-service:id2}{{4.3.3}{146}{Parameters}{paragraph*.280}{}} 923\@writefile{toc}{\contentsline {paragraph}{Return values}{147}{paragraph*.281}\protected@file@percent } 924\newlabel{components/arm-sip-service:id3}{{4.3.3}{147}{Return values}{paragraph*.281}{}} 925\@writefile{toc}{\contentsline {subsubsection}{CLOSE}{147}{subsubsection*.282}\protected@file@percent } 926\newlabel{components/arm-sip-service:close}{{4.3.3}{147}{CLOSE}{subsubsection*.282}{}} 927\@writefile{toc}{\contentsline {paragraph}{Description}{147}{paragraph*.283}\protected@file@percent } 928\newlabel{components/arm-sip-service:id4}{{4.3.3}{147}{Description}{paragraph*.283}{}} 929\@writefile{toc}{\contentsline {paragraph}{Parameters}{147}{paragraph*.284}\protected@file@percent } 930\newlabel{components/arm-sip-service:id5}{{4.3.3}{147}{Parameters}{paragraph*.284}{}} 931\@writefile{toc}{\contentsline {paragraph}{Return values}{147}{paragraph*.285}\protected@file@percent } 932\newlabel{components/arm-sip-service:id6}{{4.3.3}{147}{Return values}{paragraph*.285}{}} 933\@writefile{toc}{\contentsline {subsubsection}{READ}{147}{subsubsection*.286}\protected@file@percent } 934\newlabel{components/arm-sip-service:read}{{4.3.3}{147}{READ}{subsubsection*.286}{}} 935\@writefile{toc}{\contentsline {paragraph}{Description}{147}{paragraph*.287}\protected@file@percent } 936\newlabel{components/arm-sip-service:id7}{{4.3.3}{147}{Description}{paragraph*.287}{}} 937\@writefile{toc}{\contentsline {paragraph}{Parameters}{148}{paragraph*.288}\protected@file@percent } 938\newlabel{components/arm-sip-service:id8}{{4.3.3}{148}{Parameters}{paragraph*.288}{}} 939\@writefile{toc}{\contentsline {paragraph}{Return values}{148}{paragraph*.289}\protected@file@percent } 940\newlabel{components/arm-sip-service:id9}{{4.3.3}{148}{Return values}{paragraph*.289}{}} 941\@writefile{toc}{\contentsline {subsubsection}{SEEK}{148}{subsubsection*.290}\protected@file@percent } 942\newlabel{components/arm-sip-service:seek}{{4.3.3}{148}{SEEK}{subsubsection*.290}{}} 943\@writefile{toc}{\contentsline {paragraph}{Description}{148}{paragraph*.291}\protected@file@percent } 944\newlabel{components/arm-sip-service:id10}{{4.3.3}{148}{Description}{paragraph*.291}{}} 945\@writefile{toc}{\contentsline {paragraph}{Parameters}{148}{paragraph*.292}\protected@file@percent } 946\newlabel{components/arm-sip-service:id11}{{4.3.3}{148}{Parameters}{paragraph*.292}{}} 947\@writefile{toc}{\contentsline {paragraph}{Return values}{148}{paragraph*.293}\protected@file@percent } 948\newlabel{components/arm-sip-service:id12}{{4.3.3}{148}{Return values}{paragraph*.293}{}} 949\@writefile{toc}{\contentsline {subsubsection}{BIND}{149}{subsubsection*.294}\protected@file@percent } 950\newlabel{components/arm-sip-service:bind}{{4.3.3}{149}{BIND}{subsubsection*.294}{}} 951\@writefile{toc}{\contentsline {paragraph}{Description}{149}{paragraph*.295}\protected@file@percent } 952\newlabel{components/arm-sip-service:id13}{{4.3.3}{149}{Description}{paragraph*.295}{}} 953\@writefile{toc}{\contentsline {paragraph}{Parameters}{149}{paragraph*.296}\protected@file@percent } 954\newlabel{components/arm-sip-service:id14}{{4.3.3}{149}{Parameters}{paragraph*.296}{}} 955\@writefile{toc}{\contentsline {paragraph}{Return values}{149}{paragraph*.297}\protected@file@percent } 956\newlabel{components/arm-sip-service:id15}{{4.3.3}{149}{Return values}{paragraph*.297}{}} 957\@writefile{toc}{\contentsline {subsubsection}{STAT}{149}{subsubsection*.298}\protected@file@percent } 958\newlabel{components/arm-sip-service:stat}{{4.3.3}{149}{STAT}{subsubsection*.298}{}} 959\@writefile{toc}{\contentsline {paragraph}{Description}{149}{paragraph*.299}\protected@file@percent } 960\newlabel{components/arm-sip-service:id16}{{4.3.3}{149}{Description}{paragraph*.299}{}} 961\@writefile{toc}{\contentsline {paragraph}{Parameters}{149}{paragraph*.300}\protected@file@percent } 962\newlabel{components/arm-sip-service:id17}{{4.3.3}{149}{Parameters}{paragraph*.300}{}} 963\@writefile{toc}{\contentsline {paragraph}{Return values}{149}{paragraph*.301}\protected@file@percent } 964\newlabel{components/arm-sip-service:id18}{{4.3.3}{149}{Return values}{paragraph*.301}{}} 965\@writefile{toc}{\contentsline {subsubsection}{INIT}{149}{subsubsection*.302}\protected@file@percent } 966\newlabel{components/arm-sip-service:init}{{4.3.3}{149}{INIT}{subsubsection*.302}{}} 967\@writefile{toc}{\contentsline {paragraph}{Description}{149}{paragraph*.303}\protected@file@percent } 968\newlabel{components/arm-sip-service:id19}{{4.3.3}{149}{Description}{paragraph*.303}{}} 969\@writefile{toc}{\contentsline {paragraph}{Parameters}{150}{paragraph*.304}\protected@file@percent } 970\newlabel{components/arm-sip-service:id20}{{4.3.3}{150}{Parameters}{paragraph*.304}{}} 971\@writefile{toc}{\contentsline {paragraph}{Return values}{150}{paragraph*.305}\protected@file@percent } 972\newlabel{components/arm-sip-service:id21}{{4.3.3}{150}{Return values}{paragraph*.305}{}} 973\@writefile{toc}{\contentsline {subsubsection}{VERSION}{150}{subsubsection*.306}\protected@file@percent } 974\newlabel{components/arm-sip-service:version}{{4.3.3}{150}{VERSION}{subsubsection*.306}{}} 975\@writefile{toc}{\contentsline {paragraph}{Description}{150}{paragraph*.307}\protected@file@percent } 976\newlabel{components/arm-sip-service:id22}{{4.3.3}{150}{Description}{paragraph*.307}{}} 977\@writefile{toc}{\contentsline {paragraph}{Parameters}{150}{paragraph*.308}\protected@file@percent } 978\newlabel{components/arm-sip-service:id23}{{4.3.3}{150}{Parameters}{paragraph*.308}{}} 979\@writefile{toc}{\contentsline {paragraph}{Return values}{150}{paragraph*.309}\protected@file@percent } 980\newlabel{components/arm-sip-service:id24}{{4.3.3}{150}{Return values}{paragraph*.309}{}} 981\@writefile{toc}{\contentsline {section}{\numberline {4.4}Debug FS}{150}{section.4.4}\protected@file@percent } 982\newlabel{components/debugfs-design:debug-fs}{{4.4}{150}{Debug FS}{section.4.4}{}} 983\newlabel{components/debugfs-design::doc}{{4.4}{150}{Debug FS}{section.4.4}{}} 984\newlabel{components/debugfs-design:id1}{{4.4}{150}{Debug FS}{section*.310}{}} 985\newlabel{components/debugfs-design:id2}{{4.4}{150}{Debug FS}{section*.311}{}} 986\newlabel{components/debugfs-design:id3}{{4.4}{150}{Debug FS}{section*.312}{}} 987\newlabel{components/debugfs-design:id4}{{4.4}{151}{Debug FS}{section*.313}{}} 988\newlabel{components/debugfs-design:id5}{{4.4}{151}{Debug FS}{section*.314}{}} 989\newlabel{components/debugfs-design:id6}{{4.4}{151}{Debug FS}{section*.315}{}} 990\newlabel{components/debugfs-design:id7}{{4.4}{151}{Debug FS}{section*.316}{}} 991\newlabel{components/debugfs-design:id8}{{4.4}{151}{Debug FS}{section*.317}{}} 992\newlabel{components/debugfs-design:id9}{{4.4}{151}{Debug FS}{section*.318}{}} 993\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.1}Overview}{151}{subsection.4.4.1}\protected@file@percent } 994\newlabel{components/debugfs-design:overview}{{4.4.1}{151}{Overview}{subsection.4.4.1}{}} 995\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.2}Virtual filesystem}{151}{subsection.4.4.2}\protected@file@percent } 996\newlabel{components/debugfs-design:virtual-filesystem}{{4.4.2}{151}{Virtual filesystem}{subsection.4.4.2}{}} 997\@writefile{toc}{\contentsline {subsubsection}{Namespace}{151}{subsubsection*.319}\protected@file@percent } 998\newlabel{components/debugfs-design:namespace}{{4.4.2}{151}{Namespace}{subsubsection*.319}{}} 999\@writefile{toc}{\contentsline {subsubsection}{9p interface}{151}{subsubsection*.320}\protected@file@percent } 1000\newlabel{components/debugfs-design:p-interface}{{4.4.2}{151}{9p interface}{subsubsection*.320}{}} 1001\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.3}SMC interface}{152}{subsection.4.4.3}\protected@file@percent } 1002\newlabel{components/debugfs-design:smc-interface}{{4.4.3}{152}{SMC interface}{subsection.4.4.3}{}} 1003\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.4}Security considerations}{152}{subsection.4.4.4}\protected@file@percent } 1004\newlabel{components/debugfs-design:security-considerations}{{4.4.4}{152}{Security considerations}{subsection.4.4.4}{}} 1005\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.5}Limitations}{152}{subsection.4.4.5}\protected@file@percent } 1006\newlabel{components/debugfs-design:limitations}{{4.4.5}{152}{Limitations}{subsection.4.4.5}{}} 1007\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.6}Applications}{153}{subsection.4.4.6}\protected@file@percent } 1008\newlabel{components/debugfs-design:applications}{{4.4.6}{153}{Applications}{subsection.4.4.6}{}} 1009\@writefile{toc}{\contentsline {section}{\numberline {4.5}Exception Handling Framework}{153}{section.4.5}\protected@file@percent } 1010\newlabel{components/exception-handling:exception-handling-framework}{{4.5}{153}{Exception Handling Framework}{section.4.5}{}} 1011\newlabel{components/exception-handling::doc}{{4.5}{153}{Exception Handling Framework}{section.4.5}{}} 1012\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.1}Introduction}{153}{subsection.4.5.1}\protected@file@percent } 1013\newlabel{components/exception-handling:introduction}{{4.5.1}{153}{Introduction}{subsection.4.5.1}{}} 1014\newlabel{components/exception-handling:delegation-use-cases}{{4.5.1}{153}{Introduction}{section*.321}{}} 1015