Difference between revisions of "Jetson/L4T BSP development tips"

From eLinux.org
Jump to: navigation, search
(How to update pinmux)
(Preparation)
Line 5: Line 5:
  
 
The following packages are necessary:
 
The following packages are necessary:
 
 
'''L4T Driver Package (BSP)'''
 
'''L4T Driver Package (BSP)'''
 
 
'''Sample Root Filesystem'''
 
'''Sample Root Filesystem'''
  
 
Source code for kernel and other components:
 
Source code for kernel and other components:
 
 
'''L4T Driver Package (BSP) Sources'''
 
'''L4T Driver Package (BSP) Sources'''
  
 
Toolchain for kernel building:
 
Toolchain for kernel building:
 
 
'''GCC 7.3.1 for 64 bit BSP and Kernel'''
 
'''GCC 7.3.1 for 64 bit BSP and Kernel'''
  
 
Secure package if secure-boot is necessary:
 
Secure package if secure-boot is necessary:
 
 
'''Jetson Platform Fuse Burning and Secure Boot Documentation and Tools'''
 
'''Jetson Platform Fuse Burning and Secure Boot Documentation and Tools'''
 
 
  
 
Refer to '''https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fquick_start.html'''
 
Refer to '''https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fquick_start.html'''
 
 
Then the device can be flashed by command line.
 
Then the device can be flashed by command line.
 
 
With this method, user can have more controls for the BSP configuration, like pinmux, kernel/kernel DTB customization, etc.
 
With this method, user can have more controls for the BSP configuration, like pinmux, kernel/kernel DTB customization, etc.
  

Revision as of 00:50, 9 December 2020

Preparation

First, please download BSP package from internet. It's preferred to download BSP package, instead of Jetpack.

Go to https://developer.nvidia.com/embedded/linux-tegra.

The following packages are necessary: L4T Driver Package (BSP) Sample Root Filesystem

Source code for kernel and other components: L4T Driver Package (BSP) Sources

Toolchain for kernel building: GCC 7.3.1 for 64 bit BSP and Kernel

Secure package if secure-boot is necessary: Jetson Platform Fuse Burning and Secure Boot Documentation and Tools

Refer to https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fquick_start.html Then the device can be flashed by command line. With this method, user can have more controls for the BSP configuration, like pinmux, kernel/kernel DTB customization, etc.

BSP customization

PINMUX

How to find out the actual pinmux configuration file

Refer to https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fmb1_platform_config_xavier.html%23wwpID0E0240HA

There are several types of Jetson reference boards are supported in SDK.

One way is to check the configuration file

For example, when the flash command is:

 sudo ./flash.sh jetson-xavier mmcblk0p1

Check the configuration file: jetson-xavier.conf → p2822-0000+p2888-0004.conf → PINMUX_CONFIG="tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg";

(Note: the value of PINMUX_CONFIG may be overwritten. So the later one should take effect.)

Another way is to check the flash log

Run following command:

sudo ./flash.sh -r --no-flash jetson-xavier mmcblk0p1

And check the log:

...

copying pinmux_config(/home/Work/jetson_customer/32.4.3/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg)... done.

...

How to update pinmux

There are several ways to customize the device PINMUX. The simple way is to generate PINMUX configuration through pre-defined excel. Another way is to edit the PINMUX configuration file directly, but that may need more knowledge about PINMUX setting for the chip.

Edit the excel and generate the Configuration

Refer to https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fadaptation_and_bringup_xavier_nx.html%23wwpID0E0WL0HA

Search 'Pinmux Changes'

Also, another good reference: https://elinux.org/Jetson/AGX_Xavier_Update_Pinmux

Still, please make sure the PINMUX configuration file name is correct.