Quick Start Guide
Architecture
Package Manifest
TX1 Package Manifest
Boot Loader
Kernel
Kernel Supplements TBZ2
Kernel Headers TBZ2
NV Tegra
Nvgstapps TBZ2
Config TBZ2
NVIDIA Drivers TBZ2
NVIDIA Tools TBZ2
Weston TBZ2
TX2/TX2i Package Manifest
Boot Loader
Kernel
Kernel Supplements TBZ2
Kernel Headers TBZ2
NV Tegra
Nvgstapps TBZ2
Config TBZ2
NVIDIA Drivers TBZ2
NVIDIA Tools TBZ2
Weston TBZ2
Software Features
TX1 Software Features
Boot Loaders
Toolchain
Kernel
I/O
CUDA
Graphics
EGL and OpenGL ES Support
Video Decoders
Video Encoders
Display Outputs
Conversion, Scaling, and Rotation Formats
CSI and USB Camera Formats
TX2/TX2i Software Features
Boot Loaders
Toolchain
Kernel I/O Interfaces
SPI
SDMMC
SATA
USB 3.0
EQOS
Max-Q and Max-P
RTC
Watchdog
GPIO
UART
System
CUDA
Graphics
EGL and OpenGL ES Support
Video Decoders
Video Encoders
Display Outputs
Conversion, Scaling, and Rotation Formats
CSI and USB Camera Formats
Jetson TX2i Module Support
TX2i Flashing Support
Powering On a TX2i Device
Feature Support for Error Correction Code
Disabling ECC
Compatability Issues
Setting Up Your File System
Sample Root File System
Setting Up the Root File System
Step 1: Set Up the Root File System
Step 2: Copy the rootfs to the Device
Hardware Setup
Reference Board Preparation
Platform Board Layout
Jetson TX1 Layout
Jetson TX2 Layout
BSP Customization
Boot Options
Linux Host System Prerequisites
Extracting Tegra Linux Driver Package
Login Credentials
Installing Additional Packages
Configuring NFS Root on the Linux Host
Determining Version and Platform Information
NVIDIA Bug Reporting
Flashing and Booting the Target Device
Before You Begin
Before You Begin
Flash Script Usage
Increasing Internal Memory Partition for Root File System
Determining the Success of a Driver Update
Flashing Multiple Tegra Devices
Before You Begin
Creating the Flash Command File
Connecting Tegra Devices to the Host
Connecting the Tegra Devices to the Host
Creating the Script to Flash Multiple Devices
Flashing the Devices
Boot Loader
TX1 Boot Flow
BootROM
Boot Loader Components
TegraBoot
TegraBoot CPU
CBoot
U-Boot
TX1 Bootloader Update and Redundancy
Prerequisites
BCT, Tegraboot, and Boot File Set Redundancy
Failure-Tolerant BCT and Boot Firmware Update
Implementing Boot Firmware Redundancy
Modifying the Linux Kernel
Populating the BFS to the Boot Partitions
Modifying Tregaflash Script
Enabling Boot Firmware Redundancy
Preparing New Boot Firmware Set and BCT Images for Update
Extracting the BCT from the System
Preparing New Boot Firmware Set from New L4T BSP
Preparing New U-Boot on Old L4T BSP
Regenerating the BCT and Boot Firmware Blob Images
Preparing a New U-Boot on an Old L4T BSP
Downloading the Updated BCT and BFS Blob Images
Copying the Downloaded BCT and BFS Images into eMMC
Executing the Updated Boot Loader
Recovering from an Error During an Update
Updating BFS/KFS 2 and 3
Testing BFS/KFS Redundancies
TX2 Boot Flow
BootROM
Boot Loader Components
Common Driver Framework
Microboot1
TegraBoot
TegraBoot-BPMP
TegraBoot-CPU
CBoot
U-Boot
TX2 Bootloader Update and Redundancy
A/B Slot Layout
A/B System Update
Partition Selection
Update Engine
Bootloader Implementation
Partition Settings
Update Engine Usage
Enabling A/B Redundancy
Bootloader Tools
Boot Control
Bootloader Update Payload Generator
SMD Image Generator
Using the Update Engine Script
Update Engine State Machine
Manually Modifying Boot Slots
Sample Boot Log
Generating the Bootloader Payload Update
Partition Configuration
TX1/TX2 Mass Storage Partitions Configuration
Partition Configuration File
Root Element
Device Element
Partition Element
Default Partition Overview
U-Boot Customization
Requirements
Downloading and Building U-Boot
Prerequisite
Before Flashing
Flashing U-Boot Full L4T Image
Flashing U-Boot Only
Changing the eMMC Partition Layout
eMMC IC Parameter
Root Filesystem Size
GPT Partitions
LNX Partition
APP Partition
Full Internal eMMC Partition Layout
Building the Device Tree Compiler
Replacing the Kernel
Copying the Root Filesystem
Boot Sequence and Sysboot Configuration Files
Optimizing U-Boot Boot Time
Disabling PCIe Support
Enabling/Disabling ASPM Support
Disabling USB Support
Environment Configuration
Setting Environment Variables
Compile-Time
Manufacturing and Flashing Time
extlinux.conf Modifications
Debugging U-Boot Environment
Interrupting U-Boot
Getting Help
Listing a Directory Structure
Listing the Contents of a Directory
Printing the U-Boot Environment
Printing/Setting Environment Variables
TX2 MB1 Platform Configuration
About MB1 BCT
TX2 Pinmux and GPIO Configuration
TX2 Prod Configuration
TX2 Pad Voltage Configuration
TX2 PMIC Configuration
Usage
I2C Type-Specific Parameters
Commands
PWM Specific Commands
Generic Format
Configuring Generic Rails
Configuring Security Configuration Registers
Miscellaneous Configurations
AOTAG
Clock
CPU Parameters
AST Settings
SW Carveout
Debug
I2C Settings
Dev Parameters
Watchdog Timer Controller Settings
PMIC
BootROM
Flashing
TX2 Configuring Pinmux GPIO and PAD
TX2 Pinmux Configuration Process
Generating Configuration files using dts2cfg
Bluetooth Device Settings
Enabling Bluetooth Audio
Pairing BLE
Security
Validation of Binaries
Boot Binaries and Associated Signing
Secureboot on Jetson TX1 and TX2 Devices
Fuses and Security
Overall Fusing and Signing Binaries
Installing the L4T Secureboot Package
Generating the RSA Key Pair
Preparing the DK(KEK)/SBK/ODM Fuses
Burning PKC [DK(KEK), SBK] Fuses using a Private Key File
odmfuse.sh Extra Options
Signing Boot Files
Preparing Uboot
Flashing with Signed Boot File Binaries
Accessing the Fuse from the Target
Example: Burning the Fuse in a Factory Environment
Building the Fuse in a Trusted Environment
Burning the Fuse Blob in a Factory Environment
Example: Flashing Signed Images in a Factory Environment
Secure PMC Scratch Register Configurations for BootROM
AO Block Parameters
I2C Type-Specific Parameters
Commands
Example
Kernel Customization
Obtaining the Kernel Sources with Git
Manually Downloading and Expanding Kernel Sources
Building the NVIDIA Kernel
Preparing to Build External Kernel Modules
Building External Kernel Modules
Kernel Boot Time Optimization
Device Tree Nodes
Real-time Clock
Environment Configuration
Disable Console over UART
Secondary Bootloader
Compile-Time Configuration
Asynchronous Probe
File System
Sound
Modularize Kernel Driver
Disable Debugging
Display Configuration and Bringup
Setting HDMI or DP Screen Resolution
Mirroring or Extending Displays
Determining Display Timing Values
Configuring the Display Serial Interface
Configuring the Display Port
Configuring Pulse Width Modulation
Hard-coding Kernel Display Boot Mode for HDMI
Guidelines
Panel Driver and Device Tree
Building the AARCH 64 Toolchain and glibc
Toolchain Information
Downloading the Pre-Built Toolchain
Building the Toolchain
Troubleshooting
Camera Development
Camera Software Development Solution
Camera Architecture Stack
Camera API Matrix
Approaches for Validating and Testing the V4L2 Driver
Applications Using libargus Low-level APIs
Applications Using GStreamer with the nvcamerasrc Plugin
Applications Using GStreamer with the nvarguscamerasrc Plugin
Applications Using GStreamer with V4L2 Source Plugin
Applications Using V4L2 IOCTL Directly
ISP Support
Symlinks Changed by Mesa Installation
Other References
Sensor Driver Programming Guide
Camera Modules and Device Tree
Individual Imaging Device
V4L2 Kernel Driver
Macro Definitions
Sensor-Private Data
Configuring Regmap
Configuring Controls
Setting Up Control Registers
Read-Write Wrapper in the Register
Power Functions
Setting Up V4L2 Sub-device and Camera Common
Control Handlers
Set Control
Get-Volatile Control
Boot-Time Initialization
Removing Sensor Drivers
Kernel Configuration
Device Registration
Using Plugin Manager
Using Main Platform Device Tree File
Verifying the V4L2 Sensor Driver
Debugging Tips
Mode Tables
Multimedia
Multimedia API
GStreamer-based Multimedia Playback
Installing GStreamer
Using NvGstPlayer
GStreamer-based Camera Capture
System Configuration
Tegra ASoC Driver for Jetson TX1 and TX2
ALSA
DAPM
Device Tree
Audio Driver
Tegra Audio Hub
Software Architecture
Tegra Platform Driver
ADMAIF
Tegra Codec Driver
XBAR
AMX
ADX
I2S
Mixer
SFC
ASRC
SPDIF
DMIC
MVC
OPE
DSPK
Tegra Machine Driver
Dynamic Audio Routing
Codec Driver Instantiation Using Device Tree
Clocking and Power Management
Audio Playback/Record Examples
Troubleshooting
Examples
ADMAIF
I2S
DMIC
Watchdog Timer
Clock Frequency and Power Management
Clocks
Overriding Default Clock Rates
Configuring Clocks
Power Management for TX1 Devices
Interacting Features
Kernel-Space Power Saving Features
Chipset Power States
Clock and Voltage Management
Regulator Framework
CPU Power Management
Frequency Management with cpufreq
Idle Management with cpuidle
Memory Power Management
Thermal Management
Linux Thermal Framework
Thermal Zone
Configuring a Thermal Zone via the Device Tree
Thermal Sensing in Linux
NCT Sensors
Thermal Cooling
Fan Management
Clock Throttling
Software Thermal Shutdown
Software-based Power Consumption Modeling
Related Tools and Techniques
Disabling 3D Frequency Scaling
Setting Frequencies
Maximizing Tegra Performance
Using CPU Hot Plug
Power Management for TX2/TX2i Devices
Interacting Features
Kernel-Space Power Saving Features
Chipset Power States
Clock and Voltage Management
CPU Power Management
Idle Management with cpuidle
Memory Power Management
EMC Frequency Scaling Policy
Max-Q and Max-P Power Efficiency
Thermal Management
Linux Thermal Framework
Thermal Zone
Configuring a Thermal Zone Using the Device Tree
Thermal Sensing in Linux
NCT Sensors
BPMP Sensors
Thermal Cooling
Fan Management
Clock Throttling
Software Thermal Shutdown
Thermal Management in BPMP
Thermal Sensing
SOC_THERM
AOTAG
BPMP Thermal Framework
Hardware Throttling
Hardware Thermal Shutdown
Software-based Power Consumption Modeling
Related Tools and Techniques
3D Frequency Scaling
Setting Frequencies
Maximizing Jetson TX2 Performance
Using CPU Hot Plug
Applications and Tools
Design for Debugging
DFD Improvements
CoreSight Trace Sinks ETF and ETR
CoreSight AMBA Trace ID (ATID) Mapping
Debugging with Register Trace Buffers
Locating RTRACE Output
Program Trace Macrocell
Using the PTM
Decode Trace Example
Debugging the Kernel on Tegra Devices
Reconfiguring and Rebuilding the Kernel
Modifiying the Configuration Files
Using KGDB
At Boot: Kernel Command Line
Graphics Sample Application
TegraStats Utility
Reported Statistics
Options
Running TegraStats
Re-Deploying TegraStats
TX2 GCC Compile Time Optimization
Related Documentation
Glossary
Licenses
NVIDIA Software
License For Customer Use of NVIDIA Software
RECITALS
Sample File System
GST OpenMAX
GNU LESSER GENERAL PUBLIC LICENSE
How to Apply These Terms to Your New Libraries
GST EGL
GStreamer EGL/GLES Sink
Linux Kernel
GNU GENERAL PUBLIC LICENSE
mkbootimg and mkubootscript
Apache License
Copyright: WIDE Project
GNU General Public License
Copyright: Regents of the University of California
U-Boot and mkimage
GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
mkbctpart
brcm_patchram_plus
libnvcam_imageencoder.so
libscf
License Agreement for Protocol Buffers
License Agreement for Open Source Computer Vision Library
License Agreement for OpenCV Tutorial Library
License Agreement for Open Source Computer Vision Library
License Agreement for OpenCV Tutorial Library
JasPer License Version 2.0
JasPer License Version 2.0
JasPer License Version 2.0
The Independent JPEG Group's JPEG software
GNU GENERAL PUBLIC LICENSE
Threading Building Blocks
ZLIB DATA COMPRESSION LIBRARY
gstvideocuda
bpmp and tos-img
Legal Information
Quick Start Guide
Legal Information