nvidia xavier nx平台禁用组合UART的问题

free-jdx 2021-05-28 13:52:17 5900
1. 前言

操作步骤如下:
bootloader/t186ref/BCT/tegra194-mb1-bct-misc-flash.cfg

-enable_combined_uart = 1;
-spe_uart_instance = 2;
+enable_combined_uart = 0;
+spe_uart_instance = 0xff;

bootloader/t186ref/BCT/tegra194-mb1-bct-misc-l4t.cfg

-enable_combined_uart = 1;
-spe_uart_instance = 0x2;
+enable_combined_uart = 0;
+spe_uart_instance = 0xff;

p3668.conf.common

-CMDLINE_ADD="console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0";
+CMDLINE_ADD="console=ttyTHS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0";

flash.sh

- CMDLINE_ADD="console=ttyTCU0,115200n8";
+ CMDLINE_ADD="console=ttyTHS0,115200n8";

common/tegra194-p3668-common.dtsi

- bootargs ="console=ttyTCU0,115200";
+ bootargs ="console=ttyTHS0,115200";

combined-uart {
console-port;
combined-uart;
- status = "okay";
+ status = "disabled";
};

修改完后使用
jetson-disk-image-creator.sh和flash开发SoM创建一个sdcard映像
板子就会启动并正常工作
但如果我尝试flash生产SoM,在刷机阶段会出现以下问题

[  13.0009 ] Sending bootloader and pre-requisite binaries
[  13.0022 ] tegrarcm_v2 --download blob blob.bin
[  13.0033 ] Applet version 01.00.0000
[  13.0183 ] Sending blob
[  13.0185 ] [................................................] 100%
[  13.7927 ]
[  13.7960 ] tegrarcm_v2 --boot recovery
[  13.7983 ] Applet version 01.00.0000
[  13.8223 ]
[  14.8264 ] tegrarcm_v2 --isapplet

如果我试图恢复
bootloader/t186ref/BCT/tegra194-mb1-bct-misc-flash.cfg中的更改
并在bootloader/t186ref/BCT/tegra194-mb1-bct-misc-flash.cfg
中保留以下更改并恢复其他更改

-enable_combined_uart = 1;
+enable_combined_uart = 0;

可以flash,但在引导期间出现以下问题

[0001.165] I> EKB detected (length: 0x410) @ VA:0x52714400
ipc-unittest-main: 1519: Welcome to IPC unittest!!!
ipc-unittest-main: 1531: waiting forever
ipc-unittest-srv: 329: Init unittest services!!!
hwkey-agent: 40: hwkey-agent is running!!
hwkey-agent: 182: key_mgnt_processing .......
hwkey-agent: 157: Init hweky-agent services!!
platform_bootstrap_epilog: trusty bootstrap complete
2. 参考Xavier上禁用组合uart修改方法

(1)更新misc配置文件

diff --git a/misc/tegra194-mb1-bct-misc.cfg b/misc/tegra194-mb1-bct-misc.cfg

@@ -105,8 +105,8 @@ aocluster.evp_reset_addr = 0xc480000;
 enable_sce = 0;
 enable_rce = 1;
 enable_ape = 1;
-enable_combined_uart = 1;
-spe_uart_instance = 2;
+enable_combined_uart = 0;
+spe_uart_instance = 0xff;

(2)更新设备树禁用组合UART

+       serial@c280000 {
+               compatible = "nvidia,tegra20-uart";
+               clock-frequency = <0x18519600>;
+               console-port;
+               status = "okay";
+               /delete-property/ resets;
+               /delete-property/ reset-names;
+       };
+
        serial@3140000 {
                compatible = "nvidia,tegra186-hsuart";
                status = "okay";
diff --git a/common/tegra194-p2888-0001-p2822-0000-common.dtsi b/common/tegra194-p2888-0001-p2822-0000-common.dtsi

@@ -34,7 +34,8 @@
        compatible = "nvidia,galen", "nvidia,jetson-xavier", "nvidia,p2822-0000+p2888-0001", "nvidia,tegra194";

        chosen {
-               bootargs ="console=ttyTCU0,115200";
+               bootargs ="console=ttyS2,115200 earlycon=uart8250,mmio32,0x0c280000";
+               stdout-path = &uartc;
                board-has-eeprom;
        };

(3)内核命令行禁用组合UART

diff --git a/scripts/board_config/p2972-0000.conf.common b/scripts/board_config/p2972-0000.conf.common

 ROOTFSSIZE=28GiB;
- CMDLINE_ADD="console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 rootfstype=ext4";
+ CMDLINE_ADD="console=ttyS2,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 rootfstype=ext4";

(4)将bpmp-dtb文件反汇编为文本进行修改

diff --git a/include/platforms/bpmp-p2888-a01.dtsi b/include/platforms/bpmp-p2888-a01.dtsi

@@ -6,7 +6,7 @@
 #include "parts/uphy/tegra194-bpmp-p2888-uphy.dtsi"
 #include "parts/emc-strap/emc-p2888.dtsi"
 #include "parts/i2c/cvm-i2c-common.dtsi"
-#include "parts/policy/serial-3-comb-uart.dtsi"
+#include "parts/policy/serial-2-input.dtsi"
 #include "parts/policy/mail-common.dtsi"

diff --git a/include/platforms/bpmp-p2888-a02.dtsi b/include/platforms/bpmp-p2888-a02.dtsi

@@ -6,7 +6,7 @@
 #include "parts/uphy/tegra194-bpmp-p2888-uphy.dtsi"
 #include "parts/emc-strap/emc-p2888.dtsi"
 #include "parts/i2c/cvm-i2c-common.dtsi"
-#include "parts/policy/serial-3-comb-uart.dtsi"
+#include "parts/policy/serial-2-input.dtsi"
 #include "parts/policy/mail-common.dtsi"

diff --git a/include/platforms/bpmp-p2888-a04.dtsi b/include/platforms/bpmp-p2888-a04.dtsi

@@ -6,7 +6,7 @@
 #include "parts/uphy/tegra194-bpmp-p2888-uphy.dtsi"
 #include "parts/emc-strap/emc-p2888.dtsi"
 #include "parts/i2c/cvm-i2c-common.dtsi"
-#include "parts/policy/serial-3-comb-uart.dtsi"
+#include "parts/policy/serial-2-input.dtsi"
 #include "parts/policy/mail-common.dtsi"

这个解决方案是为Xavier
试图将上述解决方案合并到Xavier NX
(tegra194-p3509-0000-a00.dtsi,
tegra194-p3668-common.dtsi,
tegra194-mb1-bct-misc-l4t.cfg,
tegra194-mb1-bct-misc-flash.cfg)

3. bpmp-dtb文件修改

这是配置BPMP固件禁用联合UART,
下面是将DTB文件反汇编为文本文件的命令,
例如

$ dtc -I dtb -O dts -o temp.dts tegra.dtb

可以从bpmp-dtb blob中排除下面的内容来禁用它

serial {
                port = <0x3>;
                has_input;

                combined-uart {
                        enabled;
                };
        };

可以包括下面的添加串行2输入

/ {
    serial {
        port = <2>;
        has_input;
};

执行命令将其转换为另一个新的DTB文件进行验证,
例如,

$ dtc -I dts -O dtb -o new-output.dtb temp.dts

按照上述流程执行
但Xavier Nx仍然卡在Init内核中

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.9.140 (user@user-HP-EliteDesk-800-G4-TWR) (gcc v0
[ 0.000000] Boot CPU: AArch64 Processor [4e0f0040]
[ 0.000000] OF: fdt:memory scan node memory, reg size 48,
[ 0.000000] OF: fdt: - 80000000 , 2c000000
[ 0.000000] OF: fdt: - ac200000 , 44600000
[ 0.000000] OF: fdt: - 100000000 , 180000000
[ 0.000000] earlycon: uart8250 at MMIO32 0x000000000c280000 (options ‘’)
[ 0.000000] bootconsole [uart8250] enabled
[ 0.000000] Found tegra_fbmem: 00140000@a069c000
[ 0.000000] Found lut_mem: 00002008@a0696000

卡住地方与添加到设备树地址0x000000000c280000的UART相关。

4. 修改p3668.conf.common

更新NX平台配置文件p3668.conf.common
可以参考jetson-xavier-nx-devkit.conf获取其配置文件
例如,

source "${LDK_DIR}/p3668.conf.common";
5. 总结

Jetson Xavier NX将三个uart带出主连接器;
有3个uart可用,UART0到M2;UART1 40-PIN;UART2调试。
可以访问NX产品设计指南,并检查Xavier NX uart引脚描述。
修改misc配置文件,告诉引导加载程序不要使用调试UART,
如果使用其他uart#作为调试UART
应该更改内核dts中的值也为bootparam和串行节点作为当前UART0。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
free-jdx
红包 92 4 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区