Introduction
Jetson Developer Kits and Modules
Software for Jetson Modules and Developer Kits
Documentation for Jetson Modules and Developer Kits
Devices Supported by This Document
How Developer Guide Topics Identify Devices
Quick Start Guide
Types and Models of Jetson Devices
Preparing a Jetson Developer Kit for Use
Over-The-Air Updates
Updating the Jetson Device
Updating the Host
Architecture
Jetson Board Support Package
Artificial Intelligence
Computer Vision
Camera
Display
CUDA Toolkit
Graphics
Multimedia
Developer Tools
JetPack SDK
Package Manifest
Jetson Nano Series and Jetson TX1 Package Manifest
Bootloader
Kernel
Kernel Supplements TBZ2
Kernel Headers TBZ2
Tools
NV Tegra
Nvgstapps TBZ2
Config TBZ2
Graphics Demos
NVIDIA Drivers TBZ2
NVIDIA Tools TBZ2
Weston TBZ2
Jetson Xavier NX, AGX Xavier Series, and TX2 Series Package Manifest
Bootloader
Kernel
Kernel Supplements TBZ2
Kernel Headers TBZ2
Tools
NV Tegra
Nvgstapps TBZ2
Config TBZ2
Graphics Demos
NVIDIA Drivers TBZ2
NVIDIA Tools TBZ2
Weston TBZ2
Software Features
Jetson Xavier NX Software Features
Bootloader
Toolchain
Kernel
Camera Interface
LSIO
HDMI
DP
PCIE
SDMMC
Security Engine
USB 3.0
Ethernet
Ethernet Controller Features (EQOS)
Power Modes (Profiles)
RTC
Watchdog
System
CUDA
Graphics
EGL Details
GL and Vulkan Details
Multimedia
Video Decoders
Video Encoders
Display Outputs
Conversion, Scaling, Cropping, and Rotation Formats
CSI and USB Camera Features
BPMP I2C Master
SPE-UART
SPE DMA
I2C Slave
CAN
Audio
Jetson Nano Devices Software Features
Bootloaders
Toolchain
System
Kernel
I/O
CUDA
Graphics
EGL and OpenGL ES Support
Video Decoders
Video Encoders
Display Outputs
Conversion, Scaling, Cropping, and Rotation Formats
CSI and USB Camera Features
Audio
Low Memory Warning Feature
Jetson AGX Xavier Series Software Features
Bootloader
Toolchain
Kernel
Debug Interface
Camera Interface
LSIO
HDMI
DP
PCIE
SDMMC
SATA
SATA-Marvel (over PCIe)
UFS
Security Engine
USB 3.0
Ethernet
Ethernet Controller Features (EQOS)
Power Modes (Profiles)
RTC
Watchdog
System
CUDA
Graphics
EGL Details
GL and Vulkan Details
Multimedia
Video Decoders
Video Encoders
Display Outputs
Conversion, Scaling, Cropping, and Rotation Formats
CSI and USB Camera Features
BPMP I2C Master
SPE-UART
SPE DMA
I2C Slave
CAN
Audio
Jetson TX2 Series Software Features
Bootloaders
Toolchain
Kernel
Debug Interface
Camera Interface
Kernel I/O Interfaces
Ethernet Controller Features (EQOS)
Max-Q and Max-P
RTC
Watchdog
GPIO
System
CUDA
Graphics
EGL and OpenGL ES Support
Video Decoders
Video Encoders
Display Outputs
Conversion, Scaling, Cropping, and Rotation Formats
CSI and USB Camera Features
Audio
Jetson TX1 Software Features
Boot Loaders
Toolchain
Kernel
Debug Interface
Kernel I/O Interfaces
CUDA
Graphics
EGL and OpenGL ES Support
Video Decoders
Video Encoders
Display Outputs
Conversion, Scaling, and Rotation Formats
CSI and USB Camera Formats
Audio
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
Jetson Developer Kit Setup
Jetson Xavier NX
Carrier Board Preparation
Carrier Board Layout
Jetson Nano Series Devices
Carrier Board Preparation
Carrier Board Layout
Jetson AGX Xavier Series Devices
Carrier Board Preparation
Carrier Board Layout
Jetson TX2 Series Devices
Carrier Board Preparation
Carrier Board Layout
Jetson TX2i Information
Jetson TX1
Carrier Board Preparation
Carrier Board Layout
Enabling Bluetooth Audio
Voltage and Current Monitor
Power Monitor Device Tree Properties
Jetson Xavier NX
Configuring the Voltage and Current Monitor
Jetson Nano Series
Configuring the Voltage and Current Monitor
Jetson AGX Xavier Series
Configuring the Voltage and Current Monitor
Jetson TX2
Configuring the Voltage and Current Monitor
Jetson TX1
Configuring the Voltage and Current Monitor
Jetson Module EEPROM Layout
Configuration of Vendor-Specified MAC Addresses
Value of the CRC-8 Byte
Configuring the 40-Pin Expansion Header
Launching Jetson‑IO
Main Screen
Compatible Hardware Screen
40‑Pin Expansion Header Screen
Command Line Interface
Adding Support for Custom Hardware
Device Tree Overlays
Creating a Simple Device Tree Overlay
Creating a Custom Device Tree Overlay for the 40‑Pin Header
CAN (Controller Area Network)
Important Features
Jetson Platform Details
Enabling CAN
Kernel DTB
Pinmux
Kernel Drivers
Managing the Network
Debug Methods
Loopback test
Other Methods
Obtaining Higher Bit Rates
Changing the CAN parent clock on T194 platforms
Changing the CAN Clock Rate
CAN on Jetson Nano Series
To connect an MCP251x chip to Jetson Nano
Audio Setup and Development
ASoC Driver for Jetson Products
ALSA
DAPM
Device Tree
ASoC Driver
Audio Hub Hardware Architecture
ASoC Driver Software Architecture
Platform Driver
ADMAIF
Codec Driver
Codec Driver Instantiation Using Device Tree
XBAR
AMX
ADX
I2S
Mixer
SFC
DMIC
MVC
DSPK
AHUB Client TX Port Names
ASoC Machine Driver
Clocking and Power Management
Changing the PLL_A Base Rate on Newer Processors
Changing the PLL_A Base Rate on Older Processors
High Definition Audio
Features Supported
Software Driver Details
USB Audio
Features Supported
Software Driver Details
Enabling Bluetooth Audio
Board Interfaces
40-pin GPIO Expansion Header
Pinmux Configuration
Device Tree Configuration for a Custom Audio Card
Populate Codec Node
Jetson I2S Node
Codec and CPU DAI Link Setup
Enable Codec Driver
Update the Machine Driver to Support a Custom Audio Card
Add an Initialization Function for the Codec
Register the Initialization Function for the Codec
Add Support for Runtime Configuration of Codec Parameters
HD Audio Header for Jetson AGX Xavier
Audio Formats Supported
Usage Guide
Usage and Examples
I2S
Playback
Capture
I2Sx to I2Sx Loopback
I2Sx to I2Sy Loopback
Multi-Channel (TDM) Capture
DMIC
Stereo Capture
Mono Capture (L)
Mono Capture (R)
DSPK: Playback
MVC: Applying Gain on Stream with MVC
AMX
Multiplexing Two Streams
Multiplexing Three Streams
ADX: Demultiplexing a Single Stereo Stream into Two Mono Streams
SFC: Rate Conversion from 48000 to 44100 Hz
Mixer: Mixing Two Input Streams
HDMI/DP Playback
USB
Playback
Capture
Troubleshooting
No Sound Cards Found
Sound Not Audible or Not Recorded
I2S Software Reset Failed
XRUN Observed During Playback/Capture
Audio Pops and Clicks
Jetson AGX Xavier PCIe Endpoint Mode
Architecture
Hardware Requirements
Assumptions
Flashing the PCIe Endpoint on a Jetson AGX Xavier Series System
Connecting and Configuring the Systems
Testing PCIe Endpoint Support
Bringing Up an Ethernet Interface Over PCIE
BSP Customization
Boot Options
Choosing a Boot Device for Jetson AGX Xavier Series Platforms
Node Properties
Examples
Rebuilding the DTB
Choosing a Boot Device for Other Platforms
Linux Host System Prerequisites
Setting Up a TFTP Server on the Host System
Extracting Jetson Linux Driver Package
Login Credentials
Installing Additional Packages
Repackaging the Kernel Debian Package
Building Debian Packages Yourself
Working with the Packages
Package Dependencies
nvidia-l4t-kernel
Pre-Dependencies and Dependencies
Package Scripts
nvidia-l4t-kernel-dtbs
Pre-Dependencies and Dependencies
Package Scripts
nvidia-l4t-kernel-headers
Pre-Dependencies and Dependencies
Package Scripts
nvidia-l4t-jetson-io
Pre-Dependencies and Dependencies
Package Scripts
Configuring NFS Root on the Linux Host
Determining Version and Platform Information
Improving System Performance
Lightweight Window Manager Alternatives
Flashing and Booting the Target Device
Before You Begin
Basic Flash Script Usage
Basic Flashing Procedures
Flash Script Usage
Flashing to a USB Drive
Flashing to an NVMe Drive
Flashing to an SD Card
Flashing to an External Storage Device
Flashing a Specific Partition
Flashing for NFS as Root
Flashing from NFS
Flashing to Multiple Jetson Devices
Flashing for Network Boot
Increasing Internal Memory Partition for Root File System
Determining the Success of a Driver Update
Reconfiguring a Jetson Device with oem-config
About Communication Through the Debugging Port
Headless Mode Flow in oem-config
Skipping oem-config
Bootloader
Boot Flow
Jetson Xavier NX and Jetson AGX Xavier Series Boot Flow
BootROM
Bootloader Components
TegraBoot
CBoot
Jetson Nano Boot Flow
BootROM
Bootloader Components
TegraBoot
TegraBoot CPU
CBoot
U-Boot
Jetson TX2 Boot Flow
BootROM
Bootloader Components
TegraBoot
C-Boot
U-Boot
Jetson TX1 Boot Flow
BootROM
Bootloader Components
TegraBoot
TegraBoot CPU
CBoot
U-Boot
Partition Configuration
NVIDIA Jetson Platforms and Platform Series
Partition Configuration File
Root Element
Device Element
Partition Element
Default Partition Overview
Jetson Xavier NX Development Module (P3668-0000), QSPI_NOR Partition
Jetson Xavier NX Development Module (P3668-0000) SD Card Partition
Jetson Xavier NX Production Module (P3668-0001) QSPI_NOR Partition
Jetson Xavier NX Production Module (P3668-0001) emmc_user Partition
Jetson Nano Development Module (P3448-0000) Flashed to On-Board Memory
Jetson Nano Development Module (P3448-0000) Flashed to Micro SD Card
Jetson Nano Production Module (P3448-0002)
Jetson Nano 2GB Development Module (P3448-0003) Flashed to On-Board Memory
Jetson Nano 2GB Development Module (P3448-0003) Flashed to Micro SD Card
Jetson AGX Xavier Series (P2888 and P2888-nnnn), sdmmc_boot Partition
Jetson AGX Xavier Series (P2888 and P2888-nnnn), sdmmc_user Partition
Jetson TX2 Series (P3489 and P3489-nnnn), sdmmc_boot Partition
Jetson TX2 Series (P3489 and P3489-nnnn), sdmmc_user Partition
Jetson TX1 (P2180)
External Storage Device Partition
Bootloader Update and Redundancy
Jetson Nano/TX1 Update and Redundancy
TegraBoot and Partition Layout
Redundancy Boot Firmware
Generating the Bootloader Update Payload (BUP)
Bootloader Update
Bootloader Update Flow
Sample Logs in BUP Generation, Boot, and Update for BFS/KFS
Jetson Xavier NX / AGX Xavier / TX2 Update and Redundancy
A/B Slot Layout
A/B System Update
Bootloader Implementation
When the Update Engine is Launched
Enabling Rootfs Redundancy
Bootloader Tools
Running the Update Engine
Update Engine State Machine
Manually Modifying Boot Slots
Sample Boot Log
Generating the Bootloader Update Payload (BUP)
U-Boot Customization
Requirements
Placeholders in Commands
Downloading and Building U-Boot
Prerequisite
Before Flashing
Flashing U-Boot Full Jetson Linux Driver Package Image
Flashing U-Boot Only
Changing the Boot Memory Device Partition Layout
eMMC IC Property
Root Filesystem Size
GPT Partitions
LNX Partition
APP Partition
Full Boot Memory Device 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 in the U-Boot Environment
MB1 Platform Configuration
Jetson Xavier NX and Jetson AGX Xavier Series MB1 Platform Configuration
About MB1 BCT
Pinmux and GPIO Configuration
Common Prod Configuration
Controller Prod Configuration
Pad Voltage Configuration
PMIC Configuration
Security Configuration
GPIO Interrupt Mapping Configuration
Storage Device Configuration
UPHY Lane Configuration
OEM-FW Ratchet Configuration
BootROM Reset PMIC Configuration
Miscellaneous Configurations
Jetson TX2 Series MB1 Platform Configuration
About MB1 BCT
Jetson TX2 Pinmux and GPIO Configuration
Jetson TX2 Prod Configuration
Jetson TX2 Pad Voltage Configuration
Jetson TX2 PMIC Configuration
Configuring Generic Rails
Configuring Security Configuration Registers
Miscellaneous Configurations
PMIC
BootROM
Flashing
Security
Secureboot
Fuses and Security
Overall Fusing and Signing Binaries
Installing the Secureboot Package
Generating the RSA Key Pair
Preparing the SBK Key
Preparing the User Key
Preparing the DK(KEK)/ODM Fuses
Burning PKC [DK(KEK), SBK] Fuses
odmfuse.sh Switches
Signing and Flashing Boot Files
Accessing the Fuse from the Target
Fusing to Multiple Jetson Devices
Building and Flashing a Factory-Signed Firmware Blob
Signing and Encrypting Kernel, Kernel-DTB, and Initrd Binary Files
Trusty, a Trusted Execution Environment
Architecture
Execution Steps
Trusted Application Development
Default Trusted Applications
Manifests for Trusted Applications
Accessing MMIO Regions
How to Implement a New Trusted Application
How to Communicate with Other Applications
Trusty API Reference
Key Derivation Function of a Fuse Key and User-Defined Key
Encrypted Keyblobs
Encrypted Keyblob Overview
Encrypted Keyblob Format
Encrypted Keyblob Generation and Device Provisioning
Encrypted Keyblob Decryption
SE Keyslot Clearing
SE Usage
Secure Samples
Key Maintenance and EKBs
KDF of Fuse Keys
EKB Generation
EKB Extraction
Tool for EKB Generation
EKB Extraction Sample
Disk Encryption
Setup Preparation
Details of Operation
The Threat Model
Disk Encryption Implementation in Jetson Linux
Manufacturing process
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
How To Enable PMIC-WDT
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
Hard-coding Kernel Display Boot Mode for HDMI
Guidelines
nvimp_util: A Tool for Calculating Memory Bandwidth for a Particular Display Configuration (IMP)
Command line switches
Multi-Head/Multi-Window Input Configurations
Output Values
Device Tree Configuration
Seamless Display on DP (over USB-C)
Jetson Linux Driver Package Toolchain
Toolchain Information
Downloading the Toolchain
Extracting the Toolchain
Setting the CROSS_COMPILE Environment Variable
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 nvarguscamerasrc Plugin
Applications Using GStreamer with V4L2 Source Plugin
Applications Using V4L2 IOCTL Directly
ISP Support
Infinite Timeout Support
Symlinks Changed by Mesa Installation
Other References
Sensor Software Driver Programming Guide
Camera Core Library Interface
Direct V4L2 Interface
Camera Modules and the Device Tree
Individual Imaging Device
Device Properties
Property-Value Pairs
Property-Value Pairs (Version 2.0 Only)
Example Piece-wise Linear Compression Function
Example Digital Overlap WDR Exposure Frame (3840×2160)
Port Binding
To verify the port binding result
Sensor Pixel Clock
SerDes Pixel Clock
Port Index
V4L2 Kernel Driver (Version 1.0)
Macro Definitions
Sensor-Private Data
Configuring Regmap
Configuring Controls
Setting Up Control Registers
Read-Write Wrapper in the Register
Power Functions
Setting Up the V4L2 Subdevice and Camera Common
Control Handlers
Boot-Time Initialization
Removing Sensor Drivers
V4L2 Kernel Driver (Version 2.0)
Macro Definitions
Sensor-Private Data
Regmap
Sensor Controls
Control Handlers
How Controls Are Implemented
Setting Up Registers for the Control Handler
Read-Write Wrapper in the Register
Power Functions
Stream Functions
Miscellaneous Functions
Control Operations
Boot-Time Initialization
Removing Sensor Drivers
Loadable Kernel Module (LKM)
Kernel Configuration
Device Registration
Using Plugin Manager
Using the Main Platform Device Tree File
Verifying the V4L2 Sensor Driver
Debugging Tips
Mode Tables
Camera Sensor Drivers Porting Guide
Changes for the V4L2 API
Changes to Device Tree Properties
Porting version 1.0 drivers to version 2.0
Jetson Virtual Channel with GMSL Camera Framework
Platforms
GMSL Protocol
GMSL Camera
CSI Connectivity
Jetson TX2
Jetson AGX Xavier
Hardware Module Connectivity
Software Framework and Programming
Driver Framework
Device Tree Programming
Constraints
Validation
Known Issues
General Issues
Xavier-Specific
Plugin Manager Board ID
Multimedia
Multimedia API
GStreamer-based Multimedia Playback
Installing GStreamer
Using NvGstPlayer
GStreamer API
GStreamer-based Camera Capture
Accelerated Decode with ffmpeg
Decode Functional Flow
Accelerated GStreamer
GStreamer-1.0 Installation and Setup
Decode Examples
Audio Decode Examples Using gst-launch-1.0
Video Decode Examples Using gst-launch-1.0
Image Decode Examples Using gst-launch-1.0
Encode Examples
Audio Encode Examples Using gst-launch-1.0
Video Encode Examples Using gst-launch-1.0
Image Encode Examples Using gst-launch-1.0
Supported H.264/H.265/VP8/VP9 Encoder Features with GStreamer-1.0
Camera Capture with GStreamer-1.0
Raw-YUV Capture (I420 Format) and Preview Display with xvimagesink
Camera Capture and Encode Support with OpenCV
Video Playback with GStreamer-1.0
Overlay Sink (Video playback on overlay in full-screen mode)
Video Playback Examples
Properties
Video Decode Support with OpenCV
Video Streaming with GStreamer-1.0
Video Format Conversion with GStreamer-1.0
NVIDIA Input and Output Formats
Video Scaling with GStreamer-1.0
Video Cropping with GStreamer-1.0
Video Transcode with GStreamer-1.0
CUDA Video Post-Processing with GStreamer-1.0
gst-videocuda
gst-nvivafilter
Video Rotation with GStreamer-1.0
Video Composition with GStreamer-1.0
Interpolation Methods for Video Scaling
EGLStream Producer Example
EGL Image Transform Example
GStreamer Build Instructions
nvgstcapture-1.0 Reference
Command Line Options
CSI Camera Supported Resolutions
CSI Camera Runtime Commands
USB Camera Runtime Commands
Notes
nvgstplayer-1.0 Reference
nvgstplayer Command Line Options
nvgstplayer Runtime Commands
Video Encoder Features
Supported Cameras
CSI Cameras
USB 2.0 Cameras
Industrial Camera Details
NVIDIA Hardware Acceleration in the WebRTC Framework
Typical Buffer Flow
Application and Unit Test Setup
Important Method Calls
The WebRTC Package
Limitations
Clock Frequency and Power Management
Clocks
Overriding Default Clock Rates
Configuring GPU Clocks
Configuring VIC Clocks
VIC Dynamic Voltage and Frequency Scaling
Sysfs Paths for DVFS Control
Configuring Clocks
Power Management for Jetson Nano and Jetson 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
EMC Frequency Scaling Policy
WiFi Power Management
Supported Modes and Power Efficiency
Thermal Management
Linux Thermal Framework
Thermal Zone
Thermal Management in Linux
Thermal Sensors
Thermal Cooling
Thermal Specifications
Software-Based Power Consumption Modeling
Power Monitor Information
Carrier Board Information
Examples
Under Voltage and Over Current Protection
Related Tools and Techniques
GPU 3D Frequency Scaling
Getting and Setting Frequencies
Maximizing Jetson Nano or Jetson TX1 Performance
Using CPU Hotplugging
nvpmodel GUI
Power Management for Jetson Xavier NX and Jetson AGX Xavier Series Devices
Interacting Features
Kernel Space Power Saving Features
Chipset Power States
Clock and Voltage Management
Regulator Framework
CPU Power Management
Idle Management with cpuidle
Memory Power Management
EMC Frequency Scaling Policy
Supported Modes and Power Efficiency
Fan Mode Control
Fan Mode Configuration
Default Fan Mode
Thermal Management
Linux Thermal Framework
Thermal Zone
Thermal Management in Linux
Thermal Sensors
Thermal Cooling
Thermal Management in BPMP
Thermal Sensing
SOC_THERM
AOTAG
BPMP Thermal Framework
Hardware Throttling
Hardware Thermal Shutdown
Thermal Specifications
Software-Based Power Consumption Modeling
Related Tools and Techniques
CPU Hot Plug
CPU Frequency Scaling
GPU 3D Frequency Scaling
Getting and Setting Frequencies
Maximizing Jetson Xavier Performance
Fan Speed Control
nvpmodel GUI
Power Management for Jetson TX2 Series 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
Supported Modes and Power Efficiency
Thermal Management
Linux Thermal Framework
Thermal Zone
Configuring a Thermal Zone Using the Device Tree
Thermal Management in Linux
Thermal Sensors
Thermal Cooling
Thermal Management in BPMP
Thermal Sensing
SOC_THERM
AOTAG
BPMP Thermal Framework
Hardware Throttling
Thermal Specifications
Software-Based Power Consumption Modeling
Related Tools and Techniques
CPU Hot Plug
CPU Frequency Scaling
GPU 3D Frequency Scaling
Getting and Setting Frequencies
Maximizing Jetson TX2 Performance
nvpmodel GUI
Fan Speed Control
Platform Adaptation and Bring-Up
Bring-Up Framework for Checking I/O Functions
Jetson Xavier NX Platform Adaptation and Bring-Up
Board Configuration
Board Naming
Root Filesystem Configuration
MB1 Configuration Changes
Pinmux Changes
GPIO Changes
PMIC Changes
Porting the Linux Kernel
PCIe Controller Configuration
PCIe Controller Features
Porting USB (Universal Serial Bus)
USB Structure
Required Device Tree Changes
Flashing the Build Image
Jetson Nano Platform Adaptation and Bring-Up
Board Configuration
Board Naming
Placeholders in the Porting Instructions
Root Filesystem Configuration
Pinmux Changes
Updating the Bootloader Pinmux
Accessing GPIOs via “gpio” Device Labels
Exporting Pinmux for the Jetson Linux Kernel
Porting U-Boot
Porting the Linux Kernel
Porting USB
USB Structure
UPHY Lane Assignment
Required Device Tree Changes
Fan speed control mapping table
Other Considerations When Porting
Boot Time Reduction
Root Filesystem
Kernel
Bring-Up Considerations
Jetson AGX Xavier Platform Adaptation and Bring-Up
Board Configuration
Board Naming
Placeholders in the Porting Instructions
Camera Connector Pin Differences
Root Filesystem Configuration
MB1 Configuration Changes
Pinmux Changes
GPIO Changes
PMIC Changes
Enabling WDT_RESET_OUT_N Pin for Watchdog Timeout
Porting the Linux Kernel
PCIe Controller Configuration
PCIe Controller Features
Porting USB (Universal Serial Bus)
USB Structure
UPHY Lane Assignment
Required Device Tree Changes
Flashing the Build Image
Jetson TX2 Platform Adaptation and Bring-Up
Board Configuration
Board Naming
Placeholders in the Porting Instructions
MB1 Configuration Changes
Pinmux Changes
Updating the Bootloader Pinmux
GPIO Changes
PMIC Changes
Porting the Linux Kernel
Porting USB (Universal Serial Bus)
USB Structure
UPHY Lane Assignment
Required Device Tree Changes
For a Host-Only Port
Removing the DRAM ECC Partition
Flashing the Build Image
Jetson TX1 Platform Adaptation and Bring-Up
Board Naming
Placeholders in the Porting Instructions
Pinmux Changes
Updating the Bootloader Pinmux
Porting U-Boot
Porting the Linux Kernel
Pad Power Detection
USB Lane Mapping
R24 Required Device Tree Changes
R24 Example 1
R24 Example 2
R28 Required Device Tree Changes
R28 Example 1
R28 Example 2
Other Considerations When Porting
Flashing the Build Image
Hardware Bring-Up Checklist
Before Power-On
Initial Power-On
Initial Software Flashing
Power
Power Optimization
USB 2.0 PHY
USB 3.0
HDMI
Audio
UART
SD Card Pinouts
Fan
Sensors I2C: General
Sensors I2C: Touch Screen (Optional)
PEX (Optional)
SATA (Optional)
PCIe (Optional)
Embedded Display(s) (Optional)
Imager(s) (Optional)
Software Bring-Up Checklist
Preparation
Bring-up Hardware Validation
Boot Validation
Kernel and Peripherals, Port and Validation
System Power and Clocks
Graphics Programming
Binary Shader Program Management
Automatic Shader Cache
Comparison and Combination
GLSLC Shader Program Compiler
Compiled Shader Program Characteristics
Libraries Loaded on Demand
EGLDevice
EGLDevice
EGLOutput
EGLStream
Extensions
Runtime Configuration
Conditions Requiring a Stream Surface
Implementation
Rendering to EGLDevice
Creating a Stream Surface
Cross-Process and Cross-Partition EGLStream Applications
Connecting a Surface to a Screen
Setting Up the Display with DRM
Board-to-Display Connectors
EGLStream
EGLStream Producers
EGLStream Consumers
EGLStream Operation Modes
Mailbox Mode
FIFO Mode
EGLStream Pipeline
Building a Cross-Process EGLStream Pipeline
Cross-Process EGLStream Example
OpenGL ES Programming Tips
Programming Efficiently
State
Geometry
Shader Programs
Textures
Miscellaneous
Optimizing OpenGL ES Applications
Avoiding Memory Fragmentation
Video Memory Overview
Allocating and Freeing Video Memory
Best Practices for Video Memory Management
Graphics Driver CPU Usage
Performance Guidelines
Graphics Sample Application
NVIDIA Graphics Sample Applications
Building the Samples
Starting the Graphics System
Running the Sample Applications
Upstream Sample Application: Gears
Window Systems
Weston (Wayland) Windowing System
Running Weston 6.0
Multiple Display Heads
Example of weston.ini Display Options
Hot-Plugging
Verified Use Cases
Issues Fixed in Weston
Compositing Mode in Weston
NV16/NV24 in Weston
Shared-Memory Rendering
DMA Buffer Rendering
VPR Memory
Weston dma-buf Support
Buffer Allocation
Buffer Write/read from CPU
Wayland Protocol to Post dma-buf Buffers to Weston
GL Renderer in Weston
Display Hardware Compositing in Weston
Constraints on the VIC Renderer
weston-debug
Gnome-Wayland Desktop Shell Support
X Window System
Starting X Server Manually
Runtime Configuration
Using xrandr for Runtime Configuration
Querying Supported Displays and Screen Resolutions
Obtaining Additional Help
Modifying the Static Configuration (Optional)
Using nvidia-xconfig to Configure xorg.conf
Getting Help with nvidia-xconfig
Specifying a Custom EDID for the Display
Setting Color Bit-Depth
Specifying Modes
Enabling Debug Mode
Multi-Display X Server Layout
Configurations that Require Editing xorg.conf
Enabling Screen Saver Features
Configuring EDID Polling and Native Resolution
Enabling Blending and Video Overlays
LXDE
Applications and Tools
Debugging on Jetson Platforms
Debugging Improvements
CoreSight Trace Sinks ETF and ETR
CoreSight AMBA Trace ID (ATID) Mapping
Jetson Nano Series, Jetson TX2 Series, and Jetson TX1
Jetson Xavier NX and Jetson AGX Xavier Series
Uncore: Performance Monitor Unit
Device-Specific Features and Limitations
Debugging with Register Trace Buffers
Locating RTRACE Output
Program Trace Macrocell
Using the PTM
Decode Trace Example
Debugging the Kernel on Jetson Devices
Reconfiguring and Rebuilding the Kernel
Modifying the Kernel Configuration File
Using KGDB
Starting KDGB at Boot from the Kernel Command Line
tegrastats Utility
Reported Statistics
Running tegrastats
Re-Deploying tegrastats
tegrastats Command Line Switches
Generic Timestamp Engine
Enabling the GTE Driver
Running Sample GTE Tests
How to Submit a Bug Report
Related Documentation
Legal Information
Introduction
Legal Information