Xiaver nx boot err, when 5G dangle insert。

您好!
这边的SDK为JP5.1.1, L4t 35.3.1
有个问题想请教一下,之前因为xaiver nx串口上接了mcu,导致无法开机,通过uefi dtb阶段屏蔽掉xiaver nx的串口,可以解决问题,但目前由于项目需要,usb上需要接一个5G通讯模块,导致同样也开不了机,日志如下,5G设备的usb相当于多个usb转串口设备,以下问题接了5G模块感觉是必现的,请问有什么办法解决该问题。

Jetson UEFI firmware (version r35.3.1-63e71c98-dirty built on 2024-02-03T20:31:38+08:00)

Synchronous Exception at 0x0000000458EB5E50

Synchronous Exception at 0x0000000458EB5E50
ASSERT [ArmCpuDxe] /home/lee/work/server/nvidia-uefi-r35.3.1/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(333): ((BOOLEAN)(0==1))

Resetting the system in 5 seconds.

Hi,
You may try to connect the 5G module to Xavier NX developer kit and check if it can be correctly enumerated. And also check if the driver is ready. Certain components need additional kernel driver and you may need to enable certain configs and rebuild kernel image.

您好!

 接到开发板,也同样起不来,这个报错是uefi阶段的问题,跟内核无关。

@DaneLLL
之前uefi修改过,boottimeout,uefi的分支用的

lee@ubuntu:edk2-nvidia [r35.3.1] ((HEAD detached at r35.3.1))$ git branch -a

  • (HEAD detached at r35.3.1)
    main
    remotes/origin/HEAD → origin/main
    remotes/origin/dev/jake/update-workflow-ubuntu22
    remotes/origin/feat/custom-edid-example
    remotes/origin/fix/add-fuse-write-support
    remotes/origin/fix/correct-eeprom-handling
    remotes/origin/main
    remotes/origin/r35.2.1-updates
    remotes/origin/r35.3.1-updates
    remotes/origin/r35.4.1-updates
    remotes/origin/r36.2-updates
    remotes/origin/rel-34
    remotes/origin/rel-34-updates
    remotes/origin/rel-35
    remotes/origin/rel-35-updates
    remotes/origin/stable202210
    remotes/origin/stable202305
    remotes/origin/uefi-202305.1-updates
    remotes/origin/uefi-202305.2-updates
    remotes/origin/uefi-202307.0-updates
    remotes/origin/uefi-202308.0-updates
    remotes/origin/uefi-202308.1-updates
    remotes/origin/uefi-202309.0-updates
    remotes/origin/uefi-202310.0-updates
    remotes/origin/uefi-202310.1-updates
    remotes/origin/uefi-202312.0-updates

gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|0

Hi,
From the description, we are not able to understand what the issue is. Please try to replicate it on Xavier NX developer kit. And share us the approach. We will set up and check.

If usb boot is not needed, you could try to disable usb in UEFI dtb to bypass this error.

原理图上是usb0和usb1,对应的是哪个控制器? 尝试disable掉.

这样修改后,烧录uefi dtb发现还是会出现该问题。
diff --git a/kernel/hardware/nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-p3668-common.dtsi b/kernel/hardware/nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-p3668-common.dtsi
index 9b8cef97d…466e2e844 100644
— a/kernel/hardware/nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-p3668-common.dtsi
+++ b/kernel/hardware/nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-p3668-common.dtsi
@@ -114,22 +114,22 @@
endif

xusb_padctl: xusb_padctl@3520000 {
  •   status = "okay";
    
  •   status = "disabled";
    
      pads {
      	usb2 {
      		lanes {
      			usb2-0 {
      				nvidia,function = "xusb";
    
  •   				status = "okay";
    
  •   				status = "disabled";
      			};
      			usb2-1 {
      				nvidia,function = "xusb";
    
  •   				status = "okay";
    
  •   				status = "disabled";
      			};
      			usb2-2 {
      				nvidia,function = "xusb";
    
  •   				status = "okay";
    
  •   				status = "disabled";
      			};
      		};
      	};
    

@@ -137,7 +137,7 @@
lanes {
usb3-2 {
nvidia,function = “xusb”;

  •   				status = "okay";
    
  •   				status = "disabled";
      			};
      		};
      	};
    

@@ -146,7 +146,7 @@
ports {
usb2-0 {
mode = “otg”;

  •   		status = "okay";
    
  •   		status = "disabled";
    

#if TEGRA_XUSB_DT_VERSION >= DT_VERSION_3
usb-role-switch;
connector {
@@ -159,16 +159,16 @@
};
usb2-1 {
mode = “host”;

  •   		status = "okay";
    
  •   		status = "disabled";
      	};
      	usb2-2 {
      		mode = "host";
      		vbus-supply = <&battery_reg>;
    
  •   		status = "okay";
    
  •   		status = "disabled";
      	};
      	usb3-2 {
      		nvidia,usb2-companion = <1>;
    
  •   		status = "okay";
    
  •   		status = "disabled";
      	};
      };
    
    };
    @@ -187,7 +187,7 @@
    endif
    nvidia,xusb-padctl = <&xusb_padctl>;
    nvidia,boost_cpu_freq = <1200>;
  •   status = "okay";
    
  •   status = "disabled";
    

    };

    tegra_xhci: xhci@3610000 {
    @@ -202,7 +202,7 @@
    <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>;
    phy-names = “usb2-0”, “usb2-1”, “usb2-2”, “usb3-2”;
    nvidia,xusb-padctl = <&xusb_padctl>;

  •   status = "okay";
    
  •   status = "disabled";
    

    };

    /* Below node can be moved to cvb to make decision about enabling/disabling */
    @@ -289,12 +289,12 @@

    serial@3100000 {
    compatible = “nvidia,tegra186-hsuart”;

  •   status = "okay";
    
  •   status = "disabled";
    

    };

    serial@3140000 {
    compatible = “nvidia,tegra186-hsuart”;

  •   status = "okay";
    
  •   status = "disabled";
    

    };

    combined-uart {

diff.txt (2.3 KB)

Just a suggestion, this is not a good idea to post code like that. Hardly reading…

  1. Are you sure your issue is really “usb上需要接一个5G通讯模块,导致同样也开不了机”? Is it really on USB?

  2. Are you sure your disable really took effect in UEFI?

能确定是插上5G 模块才会出现这种情况,而且基本是必现的,不插则能正常boot,在开发板上验证也是同样的问题。

tegra194-p3668-common.dtsi.txt (13.8 KB)

How did you update the UEFI dtb?

我更新了kernel/dtb/tegra194-p3668-all-p3509-0000.dtb 这个文件,这个应该是uefi的dtb文件

sudo ./flash.sh -r -k bootloader-dtb jetson-xavier-nx-devkit-emmc mmcblk0p1
进行烧录

能請你給一個你正常開機時候完整的log嗎?

log.txt (59.5 KB)
这个是我拔掉5g模块启动正常的日志,而且是正跑在uefi阶段拔掉的,否则则出现
Synchronous Exception at 0x000000045D52DE50

Synchronous Exception at 0x000000045D52DE50
ASSERT [ArmCpuDxe] /home/lee/work/server/nvidia-uefi-r35.3.1/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.

Resetting the system in 5 seconds.
▒▒▒▒Shutdown state requested 1
Rebooting system …

在用的dtb是這份

[ 0.006916] DTS File Name: /home/lee/work/server/os_nvidia_nx_jp5.1.1/kernel/kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-0001-p3509-0000.dts
[ 0.006950] DTB Build time: Dec 28 2023 21:35:08

tegra194-p3668-all-p3509-0000.dtb 这个应该是包含了tegra194-p3668-0001-p3509-0000.dts,
我看p3668.conf.common里边用的这个
TBCDTB_FILE=tegra194-p3668-all-p3509-0000.dtb;

Xavier系列的TBCDTB_FILE沒有用. 請直接看DTB_FILE那一欄位在用哪一個