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

From eLinux.org
Jump to: navigation, search
(Edit the prod configuration)
(Blanked the page)
(Tag: Blanking)
Line 1: Line 1:
== 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.
 
===== 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.)
 
 
===== Or check the flash log =====
 
Run following command:
 
 
sudo ./flash.sh -r --no-flash jetson-xavier mmcblk0p1
 
 
And check the log:
 
 
<pre style="margin-left:30px; color:#B0B0B0; background-color:#111111; white-space:pre-wrap;">
 
...
 
 
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.
 
 
...
 
</pre>
 
 
==== 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.
 
 
===== Edit the pinmux configuration file =====
 
That's the direct and simple way, assumed the developer is familiar with PINMUX setting.
 
 
Download technical reference manual from https://developer.nvidia.com/embedded/downloads#?search=TRM for different platforms. And those documents contain detailed information.
 
 
===== Edit the prod configuration =====
 
L4T document shows another way to override the PINMUX:
 
 
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fmb1_platform_config_xavier.html%23wwpID0E0A40HA
 
 
Same command as [[Jetson/L4T_BSP_development_tips#Or_check_the_flash_log|'''2.1.1.2''']], and check the prod configuration in following log:
 
 
...
 
 
copying prod_config(/home/Work/jetson_customer/32.4.3/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg)... done.
 
 
...
 
 
Follow the guide in above link.
 

Revision as of 01:12, 9 December 2020