The system fails to start after the dtb is updated

Hi,
After I update the dtb file through flash.sh or kernel_tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt on xavier nx devkit , The system fails to start and appears bash-4.4#
log display:
[ 7.211808] mmcblk mmc1:aaaa: Card claimed for testing.^M
[ 7.247726] bpmp: mounted debugfs mirror^M
[ 7.255744] ALSA device list:^M
[ 7.257547] #0: tegra-hda-xnx at 0x3518000 irq 65^M
[ 7.259303] #1: jetson-xaviernx-ape^M
[ 7.262495] Freeing unused kernel memory: 8640K^M
[ 7.303791] Root device found: mmcblk0p1^M
[ 17.517607] ERROR: mmcblk0p1 not found^M

Why does this happen? What’s the difference between devkit and emmc?

hello baijianping,

Do you use development kit or custom board?
What type of storage is on your board (SD or emmc)?

In addition, would you mind providing entire dmesg log for further check?

Hi, kevinFFF
we use xavier nx development kit. 64GB SD
nx-log.txt (492.5 KB)
Attached is the dtb updated via sudo dd if=/boot/kernel_tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt of=/dev/mmcblk0p4

What did you change in the device tree? Normal usecase of NX won’t have 2 sdhci controller enabled at same time.

[ 5.448046] mmc0: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr
[ 5.468017] mmc1: SDHCI controller on 3400000.sdhci [3400000.sdhci] using ADMA 64-bit with 64 bit addr

These two logs shall not appear at same time.

Hi, kevinFFF
I didn’t change the dtb and Image.
I used the same dtb and Image,kernel_supplements.tbz2 in xavier NX emmc+p3450,This problem did not appear.

抱歉 不太清楚你這邊想表達的意思. 請你描述一下 你能打到error跟不能打到error的時候有哪些差別. 你是指只有module有差別嗎
比方說好了. 你在comment #1說你改了dtb. 現在又說沒有改dtb. 請問哪個敘述是真的?

Sorry, not quite sure what you wanted to say here. Please describe what is the difference between the NG case and the working case. Are you saying that only module has difference?
For example, you told us you modified dtb in comment #1. Now you say you didn’t change the dtb. Which one is true?

Hi,kevinFFF
I mean I didn’t modify the device tree and kernel,Then compile to generate dtb and Image.
When using compile-generated dtb updates xavier nx devkit ,The system fails to start.
When I use another set of equipment xavier nx emmc+p3450, Update dtb,This problem did not appear.
The system uses jetpack4.6

Ok, so

  1. If you directly flash with pure sdkmanager image, will you hit this error?

  2. What is your method to update device tree after you built it?

Hi,

  1. I have used sdkmanager,flash.sh, sd-card-image flash the system
  2. Two methods of updating dtb have been used
    1. cp kernel_tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt to /boot/, then
      sudo dd if=/boot/kernel_tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt of=/dev/mmcblk0p4
    2. sudo ./flash.sh -r -k kernel-dtb jetson-xavier-nx-devkit mmcblk0p1
      No matter what method is used, After updating the dtb, the system fails to start.

Hi,

抱歉, 所以你這句話的意思是可以還是不可以…? 用sdkmanger燒錄的話到底能不能開進去?

  1. I have used sdkmanager,flash.sh, sd-card-image flash the system

你這句話的意思只有說 “我用過sdkmanager, flash.sh, sdcard image”. 然後你就沒有說結果了.

Sorry that could you try to tell more about your comment? Is flashing with sdkmanager able to boot up or not?
Your comment only tells us how you flashed, but you didn’t tell us the result…

Hi,
sorry,
After the system fails to start, The system can be restarted only flash “jetson-nx-jp46-sd-card-image” . Using the other two flash methods(sdkmanager,flash.sh), the system will not boot.

Hi,

我想這邊有幾個問題跟發現

  1. 請問一下你確定你的sdkmanger燒進去的dtb是原本jetpack提供的檔案嗎?
    我的意思是有可能你已經改過了. 之後你用flash.sh 或是sdkmanager燒錄的時候,其實都是在燒你自己的dtb而不是原版jetpack的…

  2. 這裡的3440000是sdmmc3 controller. 我們官方所提供的所有Xavier NX dtb 都沒有使用這個node. 如果你的log跑出這個controller, 我想應該還是你有改dtb所致… 所以坦白說 現在這個error還是因為你有update dtb所造成的… 我不覺得你前面的敘述說你都沒改device tree是真的.

[ 5.448046] mmc0: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr

麻煩再確認一下你手邊的dtb檔案是否真的是你預期的檔案…

–Eng version

  1. Are you sure your dtb flashed by sdkmanager is not something that is already changed by you…?

  2. According to your log, I saw 3440000.sdhci device node. This is sdmmc3 controller. And none of the official dtb released by us ever enables it. Thus, I believe this error is still caused by your change in dtb… I don’t think what you said is true that you didn’t change anything in device tree.

Please check if the device tree is really as your expectation.

Hi,kevinFFF
It’s really the device tree problem.
This problem occurs when “sdhci@3440000” is enabled.
What I know , When using the nx emmc module on a custom carrier board, The carrier board contains an sd card slot. Need to enable sdhci. Even without the sd card slot on carrier board and nx emmc module, enabling sdhci will not cause the system to fail to boot.
Why does this problem occur when enabling sdhci on nx development kit?

Hi

請把你的sdhci@3440000在device tree的位置放到sdhci@3400000後面.

發生這個問題的原因其實很簡單, 就是mmcblk0p1不見了.

你的log寫 mmc0是sdhci@3440000. mmc1是sdhci@3400000. 因為這裡的順序錯了, 所以mmcblk0p1變成你底板上那個sdcard slot了. module上的sdcard slot反而變成mmcblk1p1.

[ 5.448046] mmc0: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr
[ 5.468017] mmc1: SDHCI controller on 3400000.sdhci [3400000.sdhci] using ADMA 64-bit with 64 bit addr

-End ver-

Please put the order of your sdhci@3440000 node behind the sdhci@3400000.

Current situation is mmc0 is now owned by sdhci@3440000, which is the extra sdcard slot added by you. However, it should be owned by sdhci@3400000, which is the slot on module…

[ 5.448046] mmc0: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr
[ 5.468017] mmc1: SDHCI controller on 3400000.sdhci [3400000.sdhci] using ADMA 64-bit with 64 bit addr

Currently, the module’s sdcard slot becomes mmcblk1p1… so changing the order may help.

1 Like

Hi,
Thank you very much.

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