How to use the .dtsi files generated by pinmux tool in agx-orin som?

I want to enable spi in 40pin head by pinmux tool, when i generated 3 .dtsi file i will do what next step? just move *pinmux.dtsi to Linux_for_Tegra/bootloader/t186ref/BCT/ and move *gpio-default.dtsi to Linux_for_Tegra/bootloader/ ??? and don’t need change the .dtsi file name ??? thanks, wait online

Of course you need to change the file name. Check your flash log and it will tell which config name to use.

1: pinmux.dtsi will include “./Orin-jetson_agx_orin-gpio-default.dtsi”, but gpio.dtsi not same path with pinmux.dtsi , this line need change ?

2: so if i don’t change name, just put them in correct path, they are no effect ? (i mean no work in kernal compile) ?

3: so need modify already exist .dtsi in Jetpack, rather than add .dtsi file when adapt private carrier board ?

  1. 對, 你得讓那個include的路徑一致

  2. 其實檔名有沒有效是看你燒的時候用哪個config.
    比方說燒錄orin AGX的時候你會用 sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1.
    這裡的jetson-agx-orin-devkit其實是你Linux_for_Tegra路徑下的jetson-agx-orin-devkit.conf.
    你這次燒錄用到哪些檔案都會定義在這裡, 用哪個pinmux dtsi也會被寫在這裡.

ok, 那如果我变更了sh脚本中引用到的dtsi文件中的内容,那么sh脚本中dtb和dtbo的文件会自动更新吗,还是需要手动实现dtsi到dtb的转换?

pinmux dtsi其實不用包含到dtb. 簡單來說整個燒錄有非常多種類的檔案
kernel的dtb/dtbo跟你現在用的pinmux dtsi其實毫無關聯. 所以不用轉換過去.

jetson-agx-orin-devkit.conf 文件中 64行 和 81行 重复定义了,删除 tegra234-p3701-0000-p3737-0000.dtb 执行nvbuild.sh 居然不提示错误?

1.燒錄的時候update_flash_args_common會被做, 所以你所謂的64/81行重複其實只有64行的結果最後會被執行

  1. 删除 tegra234-p3701-0000-p3737-0000.dtb 执行nvbuild.sh 居然不提示错误

看不太懂這個問題

我把81行的tegra234-p3701-0000-p3737-0000.dtb文件删掉,编译不报错,说明并没有使用它,我只是测试了64行和81行,到底那个会参与编译

不知道是不是搞錯了什麼… 你這裡的編譯是什麼意思. 這兩個東西都沒有"編譯" 只有被跟著燒錄而已…

我解釋一下

首先你這裡提到"nvbuild.sh"這件事情就已經不合理. nvbuild.sh主要的工作是把public source code進行編譯.
這個東西是跟著source code下載下來的. 它本身跟jetson-agx-orin-devkit.conf 完全就是兩個分開沒有互相參考的檔案.
你砍掉jetson-agx-orin-devkit.conf 裡面的內容對於有沒有build code本身完全沒有影響.

yes, 但是tegra234-p3701-0005-p3737-0000.dtb这个文件是需要运行nvbuild.sh才可以生成/更新的把,或者这样说运行build.sh 才可以生成新的设备树dtb文件把。

是…但基本上你現在在講的東西已經跟你原本的問題離題了…

是的,之前我以为自定义板的dtsi会有脚本傻瓜处理,经过你的解释我现在明白了,其实还是要在现有的文件基础上手工修改,使用已存在的框架;当然自己写自定义板的 .conf 自己创建一套框架也是可以的,但就比较困难了。

1 Like

所以 对于自定义载板 适配 总结如下:
1:在jetson-agx-orin-devkit.conf 文件的 47,48行的两个文件中添加pinmux和gpio的配置
2: 在tegra234-p3701-0000-prod.dtsi 添加控制器的描述
在cvb/tegra234-p3737-0000-a04.dtsi 添加设备节点的秒时
3 ./nvbuild.sh

这样就会新增一个设备节点

应该是这样的流程把。

如果就原本這個topic來說, 1是對的

你提的2跟3基本上有點意義不明.

首先, 我不知道你2加在這兩個檔案要做什麼. device tree的架構有無數個地方可以讓你改. 我不懂你特意挑這兩個檔案要做什麼. 我也不知道你要加什麼設備節點
如果你build出來的dtb有你要的東西, 那就沒有任何問題, 你想放哪都可以.

因为 tegra234-p3701-0000-p3737-0000.dts include tegra234-p3701-0000-prod.dtsi 和 cvb/tegra234-p3737-0000-a04.dtsi 而这2个文件会参与nvbuild.sh,因此我认为在2个文件添加内容会影响设备树的结果

okok. 我想說的只是還有很多檔案都有參與nvbuild. 不一定要改在這兩個
不過想改哪裡都可以, 只要最後有效就好.

为什么内核编译后将 kernal_tegra234-p3701-0005-p3737-0000.dtb 删除后,再运行nvbuild.sh 不再生成次文件了,除非把编译的产物全删掉,再重新编译,才会生成次文件