Custom board download timeout

I am using jetpack5.1.5 and a custom board. I encountered a problem when flashing, but the same board can be downloaded in jetpack5.1.2. The following is my experimental record:

  1. Using bsp to download jetpack515, the download will time out. Using bsp to download jetpack512, the download is normal. The USB configuration of the two is the same.
  2. Using sdkmanager to download jetpack515, the download will time out
  3. sdkmanager currently does not have jetpack512, so use sdkmanager to download jetpack6.2.1, the download is normal
    Observe the download process, the system first creates an image, and then puts the board into download mode. At this time, during normal download, the 0955:7035 NVIDIA Corp device can be seen on the host, but the timed download does not appear on the host. Have you changed the USB settings on jetpack5.1.5?

My circuit diagram:


sdkmanager log(jp515):
NV_L4T_FLASH_JETSON_LINUX_COMP.zip (42.3 KB)

Hi,

There is a logical error that it is not about what we changed something here. It is that you should always modify the device tree by following document for custom USB design. No one ever guaranteed sdkmanager could flash a custom board.

If you don’t do that, you just rely on some luck there to flash your board.

Sorry, my previous explanation may have misunderstood you, let me explain it again.

We have 2 versions of pcb.
Version v1.0: The hardware of the USB part is exactly the same as devkit.
Version v2.0: The fusb series chip is removed, and USB2.0 is used to directly connect Type-C and the core board.
The problem of being unable to download that I described before was experimented on v2.0. After our test, the download failure has nothing to do with the USB configuration, but seems to be related to eeprom.
We conducted a download experiment of Jetpack5.1.5 on the v1.0 hardware:

  1. By default, we can successfully download the firmware of Jetpack5.1.5

  2. Remove the fusb series chip on the pcb. At this time, both v1.0 and v2.0 are directly connected to orin and typec via USB2.0, and v1.0 can still download Jetpack5.1.5

  3. After removing the eeprom on the board pcb, the device cannot download Jetpack5.1.5, and a timeout occurs.
    Therefore, it can be determined that the download results are inconsistent due to different eeproms

  4. In this case, I set cvb_eeprom_read_size=0x0, and I can download Jetpack5.1.5

  5. If the eeprom is soldered at this time, cvb_eeprom_read_size=0, it still cannot be downloaded

Log when downloading successfully
devkitlog_success.log (61.0 KB)

Log when downloading failed
customlog_failed.log (62.7 KB)

When downloading failed, the xudc driver of the device seems to be unable to initialize normally.

Question 1: Jetpack5.1.5 seems to be unable to complete the flash when there is eeprom on the board and cvb_eeprom_read_size=0x100
Question 2: Does Jetpack5.1.5 have special requirements for eeprom when downloading?

Hi,

The difference between your successful flash and failed flash is the usb device mode configuration part.

Below error is the typical case that usb device mode is not up so flash would fail.

你的失敗/成功log的差別就是在usb部份…

成功的log

bash-5.0# [ 9.077535] tegra-xudc 3550000.xudc: EP 5 (type: intr, dir: in) enabled
[ 9.077758] tegra-xudc 3550000.xudc: EP 3 (type: bulk, dir: in) enabled
[ 9.077959] tegra-xudc 3550000.xudc: EP 2 (type: bulk, dir: out) enabled
[ 9.078220] IPv6: ADDRCONF(NETDEV_CHANGE): rndis0: link becomes ready
[ 9.078338] tegra-xudc 3550000.xudc: EP 7 (type: bulk, dir: in) enabled
[ 9.078609] tegra-xudc 3550000.xudc: EP 4 (type: bulk, dir: out) enabled

失敗的log:

[ 7.439261] tegra-xudc 3550000.xudc: EP 0 (type: ctrl, dir: out) enabled
bash: cannot set terminal process group (-1): Inappropriate ioctl for device

這個log就是典型的usb device mode沒有成功起來的log… 所以沒辦法燒

在这里,我设置了这个参数后,原来烧录失败的情况改变了。
我们测试烧录的成功与失败情况时,固件是一致的,意味着usb配置一致,是否timeout的区别只有eeprom。usb device mode没有起来是我在timeout时观察到的情况,但是这种情况会不会是eeprom导致的呢?
同样的情况在jetpack5.1.2上不会出现,所以我发帖子提出了这个问题。

Hi,

跟EEPROM沒有關聯… 我前面已經說過了. 你如果完全不去reivew自己的usb部份device tree. 你就是靠運氣在燒錄而已.

這個forum上99%的custom board都沒有cvb_eeprom. 照你這個說法每個人都會沒辦法燒錄.

Hi

我们的custom board是加了cvb_eeprom的,因此出现了无法烧录的问题。

usb的device tree配置没有问题,下载模式下一直都是otg模式。我们测试过很多次,相同usb配置,不同的eeprom情况下,只存在稳定成功下载和稳定失败下载两种情况,不存在“靠运气烧录”的情况

实际上有板载eeprom的烧录是存在一些问题的,由于我们不再使用板载eeprom,该问题可以跳过了。
我们后续的board将不使用eeprom,在这种情况下set cvb_eeprom_read_size=0x0,我们的需求可以满足。

感谢指导!

我们的custom board是加了cvb_eeprom的,因此出现了无法烧录的问题。

如果你之後還想要加上CVB EEPROM的話.
麻煩確認一下device tree (尤其是overlay)的部份在 CVB EEPROM存在的情況下是不是有改到你的device tree設定.
這是唯一cvb eeprom存在的情況下有可能搞壞你initrd flash的原因.

usb device tree部份還是建議要review. 不然如果日後進rel-36一定會有問題. 很多其他用戶已經反應過這點.
我們這邊只能建議你該改的還是要改.

我们之后将不会加上cvb_eeprom;device tree我们有review,custom board在下载usb接口上增加了hub芯片,kernel运行时该usb以host方式运行,目前没发现问题。

這裡解釋一下. initrd flash卡在下面這種log的時候就是在等你Jetson端initrd開起來並且要開啟usb device mode. 當"usb-role-switch"存在在device tree裡面的情況下, flash script會自動設定mode為device mode.

16:48:59.144 - Info: Waiting for target to boot-up…
16:49:00.301 - Info: Waiting for target to boot-up…

但如果你的uart log那邊只有一次以下log, 代表device mode沒有成功.

[ 7.439261] tegra-xudc 3550000.xudc: EP 0 (type: ctrl, dir: out) enabled

我知道你現在沒碰上問題.
但如果之後還有, 以上是檢查問題的方法.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.