Developer Guide Release

Boot Loader Architecture
This chapter is currently under review. We recommend that before you use this information, check with your NVIDIA® customer engineer (CE) for verification of its accuracy.
The Boot ROM (BR) looks up all possible start devices and read the Boot Configuration Table (BCT). The BCT contains the external RAM configuration to load more advanced boot loaders. By examining the BCT the Boot ROM identifies the state of the boot loader and the secure boot key.
The simplified NVIDIA Boot Loader (NvBL) functionality provides two independent binaries:
A binary to run on the co-processor or BPMP, called TBoot or NVTBoot.
A binary running on the CPU cluster, called CBoot.
Supported Features
The BDK features include:
Pre-emptive multithreading with mutexes and semaphores using NvOs APIs
Full Cortex A9 and Cortex A15 processor support, including:
L1 and L2 caching
MMU translation
Hardware floating point
ODM kit support for ODM adaptations written using NVIDIA ODM Services APIs
Serial interfaces: I2C and UART
Storage interfaces: QSPI and eMMC
Nv3p USB protocol support for integration with NVIDIA flashing mechanism
Image loading from the boot media
TegraBoot Overview
The following figure shows the TegraBoot components.
Component Summary
The following table describes the components in the diagram.
GPT Reader library
Basic GUID Partition Table library for reading the partition table and locating a particular type of partition.
PMU library
Basic PMIC, setting charging current, determining battery charge status, and powering off the device.
Minimal 3P Server library
Handles recovery mode booting, supporting commands to get BoardID, download BCT, NCT, BL‑CPU, SecureOS, and WB0.
eMMC driver
Read-only support.
Security Engine driver
Decrypts and verifies binaries. This is required when security features are enabled.
USB driver
Gadget mode supported for charging and downloading binaries with the flashing tool.
QSPI Flash driver
Read-only support.
I2C driver
Basic master-mode support.
Pinmux driver
Configuration code.
GPIO driver
Complete support.
UART driver
Complete support.
Initialization code.
Clock and Reset
Complete support.
Functional Summary
TegraBoot (tboot) provides the following boot functionality:
Basic cold boot
Once the boot device has all the required partitions, the boot ROM (BR) loads tboot into IRAM and transfers control to tboot. Tboot then loads and verifies the binaries (Secure OS/BL-CPU) and executes the CPU cluster and stops the BPMP.
Recovery Mode (RCM) boot
The BR enters recovery mode on validation failure of critical boot-device partitions or on forced-recovery initiated by the user or the boot loader. The BR interacts with the flashing tool on the host side to download tboot to IRAM and start execution. Then tboot interacts with the flashing tool on the host to download the BCT, initialize the SDRAM, dowload and verify the next stage binary (BL-CPU) before starting the CPU cluster and halting the BPMP.
Carveout regions and loading images
tboot handles the creation of different carevouts that are either accompanied with loading and verifying the firmware, or configuring some confidential device.