I am relatively new to the Jetson platform. I am working on a Jetson Orin nano custom carrier board. I can flash images using SDK Manager. I have been informed that there are some changes in Pinmux and GPIO. I changed them in Excel and generated the dtsi files. I looked into the similar files in L4T but did not find any. Is there any specific way to implement them in Jetpack?
Another issue: is there any better way to enable SPI in the Jetpack? I can usually do it using Jetson-IO, but it is the running system. I want to do it in Jetpack.
I have found/home/ls4t/vc_mipi_nvidia/build/Xavier_35.4.1/Linux_for_Tegra/kernel/pinmux/t19x/README.txt to build the cfg file, but my files refer to t23x. But this pinmux-dts2cfg.py is in t19x. I am working on the 35.4.1 version.
I later found this
Jetson Orin NX and Nano Series — Jetson Linux Developer Guide documentation
Following up, I placed the dtsi files as it said but not think it actually applied. Below is after and before device tree
extracted_before.txt (413.3 KB)
extracted_after.txt (413.3 KB)
Hi,
You should follow this to generate the dtsi and replace that file in your x86 host PC Linux_for_Tegra/bootloader/t186ref/BCT/
.
Pinmux dts is not part of kernel dtb so you should not attach the kernel dtb file here. What I mean is the file you attached is not related.
Yes, accoriding to this I put pinmux and padvoltage dtsi files in /Linux_for_Tegra/bootloader/t186ref/BCT and gpio dtsi file into /Linux_for_Tegra/bootloader/.
According to in this document, I need to point out these three files into board.conf file. I am not using different board.conf file as custom carrier board is almost same as Devkit.
So, I found jetson-orin-nano-devkit.conf and may be I need to point out here ?
I need to modify below lines?
PINMUX_CONFIG=“tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi”;
PMC_CONFIG=“tegra234-mb1-bct-padvoltage-p3767-dp-a03.dtsi”;
If so, but did not see any thing for GPIO !!!
Am I going in right path ?
GPIO.dtsi is included in the pinmux.dtsi.
You could read the default file first if you don’t understand what I mean.
After point out the dtsi files in conf file I got this errors, I guess the error occures during flash because the UART terminal just started give some outout at that time.
Traceback (most recent call last):
File "/home/ls4t/vc_mipi_nvidia/build/Xavier_35.4.1/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 1401, in tegraflash_update_bpmp_dtb
if bpmp_dtb == None and bpmp_dtb_in_layout == None:
UnboundLocalError: local variable 'bpmp_dtb' referenced before assignment
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "./tegraflash.py", line 1383, in <module>
tegraflash_run_commands()
File "./tegraflash.py", line 1217, in tegraflash_run_commands
interpreter.onecmd(command)
File "/usr/lib/python3.8/cmd.py", line 217, in onecmd
return func(arg)
File "./tegraflash.py", line 730, in do_sign
self.chip_inst.tegraflash_sign(exports)
File "/home/ls4t/vc_mipi_nvidia/build/Xavier_35.4.1/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 2594, in tegraflash_sign
self.tegraflash_parse_partitionlayout()
File "/home/ls4t/vc_mipi_nvidia/build/Xavier_35.4.1/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 467, in tegraflash_parse_partitionlayout
self.tegraflash_update_bpmp_dtb()
File "/home/ls4t/vc_mipi_nvidia/build/Xavier_35.4.1/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 1468, in tegraflash_update_bpmp_dtb
raise tegraflash_exception('Unexpected error in updating: ' + bpmp_dtb + ' ' + str(e))
UnboundLocalError: local variable 'bpmp_dtb' referenced before assignment
Error: /home/ls4t/vc_mipi_nvidia/build/Xavier_35.4.1/Linux_for_Tegra/bootloader/signed/flash.idx is not found
Error: failed to relocate images to /home/ls4t/vc_mipi_nvidia/build/Xavier_35.4.1/Linux_for_Tegra/tools/kernel_flash/images
Cleaning up...
Are you sure you can really flash the board before you update the pinmux?
Yes, I did multiple times without changing this dtsi files.
Could you share how your files look like and how did you modify the conf file?
How did you flash the board? Please always attach full log. You should not parse any log.
Here is the modified conf file. I could not find the full log file and also terminal shows only fraction of it.
p3768-0000+p3767-0000.txt (4.1 KB)
PINMUX_CONFIG=“Orin-jetson_orin_nx_series_+dp a03-pinmux.dtsi”;
Your file name has a space inside of it? I don’t think that is a good idea.
Still the same error. I have tried two methods.
Method 1: using Jetpack - NV_L4T_FLASH_JETSON_LINUX_COMP.log
Method 2: using vc quicksatrt.sh script - log.txt
VC is also based on L4t, only difference is they handle the implement of camera driver. But I applied same method in both way.
log.txt (662.0 KB)
NV_L4T_FLASH_JETSON_LINUX_COMP.log (55.4 KB)
No, it is not same error anymore. You should try to read things here first.
The new error is as below when processing your dtsi file. I guess it is syntax error. You should share out your “Orin-jetson-orin-nx-series-dp-a03-pinmux.dtsi”.
[ 0.9991 ] Pre-processing config: tegra234-mb1-bct-reset-p3767-0000.dts
[ 1.0063 ] Pre-processing config: tegra234-mb1-bct-device-p3767-0000.dts
[ 1.0137 ] Pre-processing config: tegra234-mb1-bct-cprod-p3767-0000.dts
[ 1.0234 ] Pre-processing config: tegra234-mb1-bct-gpioint-p3767-0000.dts
[ 1.0321 ] Pre-processing config: tegra234-mb1-bct-misc-p3767-0000.dts
[ 1.0422 ] Pre-processing config: Orin-jetson-orin-nx-series-dp-a03-pinmux.dtsi
Error: Return value 1
Command cpp -nostdinc -x assembler-with-cpp -D IN_DTS_CONTEXT -I … -I …/t186ref/BCT Orin-jetson-orin-nx-series-dp-a03-pinmux.dtsi Orin-jetson-orin-nx-series-dp-a03-pinmux_cpp.dts
Could you provide the real file “Orin-jetson-orin-nx-series-dp-a03-pinmux.dtsi” in use there but not the old one with space in file name?
Are you sure this line in your pinmux file could be correctly located?
#include "./Orin-jetson-orin-nx-series-dp-a03-gpio-default.dtsi"
I figured , I put it in /Linux_for_tegra/ but not in /Linux_for_tegra/bootloader/. Now there is not error in flashing. But have it made any changes in system device tree ?
extracted.txt (413.2 KB)
extracted_before.txt (413.3 KB)
As I already mentioned before, pinmux does not handle in the kernel device tree directly. You don’t need to care about it at all.