This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VE-Q1: Uboot boot issue

Part Number: TDA4VE-Q1

Tool/software:

Hi TI experts,

SW:SDK10.1

HW:our own board

During boot testing, the system occasionally gets stuck in U-Boot, approximately once per 500 boot attempts. The U-Boot-spl stage produces printouts, but the U-Boot stage shows no output.

Using Jtag to connect returns the following error:

CortexA72_0_0: Trouble Halting Target CPU: (Error -2062 - (0:23:2)) Unable to halt device. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.0.0.3178) 
CortexA72_0_1: Error connecting to the target: (Error -1170 - (0:20:0)) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.0.0.3178) 

Below is the uboot-spl output:

[2025/10/13 23:11:51-916] U-Boot SPL 2024.04-ti (Oct 11 2025 - 16:16:29 +0800)
[2025/10/13 23:11:51-916] SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.6--v10.01.06 (Fiery Fox)')
[2025/10/13 23:11:51-916] TLB table from ffff0000 to ffffa000
[2025/10/13 23:11:51-916] SPL malloc() before relocation used 0x2240 bytes (8 KB)
[2025/10/13 23:11:51-916] >>SPL: board_init_r()
[2025/10/13 23:11:51-916] spl_init
[2025/10/13 23:11:51-916] mv_info: __get_primary_bootmedia:402: bootmode is BOOT_DEVICE_SPI, set the boot media to eMMC
[2025/10/13 23:11:51-916] Trying to boot from MMC1
[2025/10/13 23:11:51-916] MV_INFO: 0x47000004: 0x4
[2025/10/13 23:11:51-931] MV_INFO: 0x47000004: 0x4
[2025/10/13 23:11:51-978] spl: mmc boot mode: raw
[2025/10/13 23:11:51-978] load_device_info_part success
[2025/10/13 23:11:51-978] mv_info: backup_flag_init:312: update_flag:0x1, boot_flag:0x0
[2025/10/13 23:11:51-994] mv_info: backup_flag_init:368: backup flag init successed in uboot
[2025/10/13 23:11:51-994] part: 0
[2025/10/13 23:11:51-994] Authentication passed
[2025/10/13 23:11:52-010] Can't get 'entry' property from FIT 0x81c12380, node: offset 88, name uboot (FDT_ERR_NOTFOUND)
[2025/10/13 23:11:52-010] Can't get 'load' property from FIT 0x81c12380, node: offset 771824, name fdt-0 (FDT_ERR_NOTFOUND)
[2025/10/13 23:11:51-994] Authentication passed
[2025/10/13 23:11:52-010] Can't get 'entry' property from FIT 0x81c12380, node: offset 88, name uboot (FDT_ERR_NOTFOUND)
[2025/10/13 23:11:52-010] Can't get 'load' property from FIT 0x81c12380, node: offset 771824, name fdt-0 (FDT_ERR_NOTFOUND)
[2025/10/13 23:11:52-025] Authentication passed
[2025/10/13 23:11:52-041] Can't get 'entry' property from FIT 0x81c12380, node: offset 771824, name fdt-0 (FDT_ERR_NOTFOUND)
[2025/10/13 23:11:52-041] Jumping to U-Boot...
[2025/10/13 23:11:52-041] SPL malloc() used 0xedb80 bytes (950 KB)
[2025/10/13 23:11:52-041] image entry point: 0x80800000

Best regards

  • Hi,

    Using Jtag to connect returns the following error:

    Fullscreen
    1
    2
    CortexA72_0_0: Trouble Halting Target CPU: (Error -2062 - (0:23:2)) Unable to halt device. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.0.0.3178)
    CortexA72_0_1: Error connecting to the target: (Error -1170 - (0:20:0)) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.0.0.3178)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    When the core is not powered or in a bad state, you may not be able to connect to the core via the J-TAG debugger.

    Below is the uboot-spl output:

    Can you please share the SPL Log in the working case as well?

    From logs, it appears that the entry point to U-Boot is not able to get from the FIT image reading from the eMMC media.

    Can you also share more details about boot mode and media, and any changes in SPL code?

    Best Regards,
    Sudheer

  • Hi,

    Can you please share the SPL Log in the working case as well?

    uboot-ok.log 

    [20251016-164711:376]U-Boot SPL 2024.04-ti MV_BUILD_TAG: VECO10.1-master-501701-20250515-99-gb197b8300-dirty (Oct 15 2025 - 20:54:04 +0800)
    [20251016-164711:381]SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.6--v10.01.06 (Fiery Fox)')
    [20251016-164711:385]TLB table from ffff0000 to ffffa000
    [20251016-164711:409]SPL malloc() before relocation used 0x2240 bytes (8 KB)
    [20251016-164711:409]>>SPL: board_init_r()
    [20251016-164711:409]spl_init
    [20251016-164711:409]mv_info: __get_primary_bootmedia:402: bootmode is BOOT_DEVICE_SPI, set the boot media to eMMC
    [20251016-164711:409]Trying to boot from MMC1
    [20251016-164711:409]MV_INFO: 0x47000004: 0x4
    [20251016-164711:409]MV_INFO: 0x47000004: 0x4
    [20251016-164711:461]spl: mmc boot mode: raw
    [20251016-164711:461]load_device_info_part success
    [20251016-164711:473]mv_info: backup_flag_init:312: update_flag:0x1, boot_flag:0x0
    [20251016-164711:474]mv_info: backup_flag_init:368: backup flag init successed in uboot
    [20251016-164711:474]part: 0
    [20251016-164711:483]Authentication passed
    [20251016-164711:490] [load_simple_fit :404] (80800000, 81c124ac)memcpy size:766032, cost time:0
    [20251016-164711:501]Can't get 'entry' property from FIT 0x81c12380, node: offset 88, name uboot (FDT_ERR_NOTFOUND)
    [20251016-164711:508]Can't get 'load' property from FIT 0x81c12380, node: offset 768032, name fdt-0 (FDT_ERR_NOTFOUND)
    [20251016-164711:514]Authentication passed
    [20251016-164711:518] [load_simple_fit :404] (808bb050, 81ccdc50)memcpy size:123712, cost time:0
    [20251016-164711:537]Can't get 'entry' property from FIT 0x81c12380, node: offset 768032, name fdt-0 (FDT_ERR_NOTFOUND)
    [20251016-164711:537]Jumping to U-Boot...
    [20251016-164711:537]SPL malloc() used 0xecb80 bytes (946 KB)
    [20251016-164711:537]image entry point: 0x80800000
    [20251016-194515:315]

    Can you also share more details about boot mode and media, and any changes in SPL code?

    Below is our current startup flowchart. The final step of uboot-spl has completed, and it appears the issue occurred during the U-Boot initialization phase.

    Best Regards

  • Hi,

    Have you updated U-Boot SPL to fetch the image from eMMC boot media?  If so, can you please share the changes made to the review once?

    Also, is the issue observed in any special scenario, like at high/low temperature or normally itself?

    Best Regards,
    Sudheer

  • Hi,

         Have you updated U-Boot SPL to fetch the image from eMMC boot media?
    Yes. As you see in u-boot-spl logs, i change bootmode from BOOT_DEVICE_SPI to eMMC in function __get_primary_bootmedia.
    so u-boot-spl will load uboot from emmc. Besides this, there's no difference.

  • Hi xie,

    I will look into this and get back to you.

    Regards

    Gokul

  • Hi Gokul,

    May I ask if there has been any progress on this issue?

    BR.

  • HI xie,

    I see a lot of errors such as "Can't get load ....". Ideally, they shouldn't come up .

    Regards

    Gokul

  • Hi Gokul,

    We have further identified that when exceptions occur, they trigger certain interrupt handling functions. We added a deadlocked while loop within each interrupt handler to ensure that during exceptions, the system remains in a deadlocked state without throwing exceptions, thereby maintaining the connectivity of the A72-core. However, we are unsure what the exception signifies. We kindly request your assistance in analyzing this issue. 

     

    BR.

  • Hi Gokul,

    I see a lot of errors such as "Can't get load ....". Ideally, they shouldn't come up .

    These are debug printouts from the image-fit.c file during the uboot-spl stage, and they don't appear to be the cause of the problem.

    BR.

  • Hi xie,

    Can you put an inifinite while loop in u-boot-spl , connect to JTAG debugger and locate where the code is getting stuck ?

    Is it getting stuck at the same place in all the failure cases?

    Regards

    Gokul

  • Hi Gokul,

    Can you put an inifinite while loop in u-boot-spl , connect to JTAG debugger and locate where the code is getting stuck ?

    In fact, the exception seems to occur not during the uboot spl phase, but during the uboot initialization initf_dm phase, which seems to be related to the uboot device tree.

    Is it getting stuck at the same place in all the failure cases?

    In most cases, it fails in the do_sync function.

    tda4veco_dts.txt

    BR.

  • Hi xie, 

    Can you try findng out which node in the device tree is not getting intialized.

    REgards

    Gokul

  • Hi Gokul,

    Can you try findng out which node in the device tree is not getting intialized.

    At this point, the serial port output has not yet been initialized. How can we determine at which node the failure occurred? Could you offer some suggestions?

    BR.

  • Hi xie,

    Sorry for the delay.

    During boot testing, the system occasionally gets stuck in U-Boot, approximately once per 500 boot attempts. The U-Boot-spl stage produces printouts, but the U-Boot stage shows no output.
    HW:our own board

    From my analysis, so far, I believe that since this issue is not reproduced always and since the failure is happening at dm_init_scan, and since it is a custom hardware, ideally an IP within the board is failing to probe/initialize thus causing the dm_init_scan to fail.

    Hence , it is not a software issue I believe, but failure due to some hardware not coming up once in ever 500 attempts.

    It would be really appreciated if you can do the same stress testing on TI EVM and share the results, which will then help us narrow it down to a hardware issue.

    Also, just to clarify is the EMMC used a custom EMMC?

    Regards

    Gokul

  • Hi Gokul,

    To track suspended nodes, we enabled the CONFIG_DEBUG_UART option. The nodes that are suspended vary and can include chosen, aliases, emmc, pinctrl, among others. A comparison between the device tree blob (DTB) in memory and the compiled DTB during suspension revealed a difference only in the totalsize field. Notably, this totalsize difference is also present during normal operation and is therefore likely not related to the suspend issue.

    just to clarify is the EMMC used a custom EMMC

    We used the Samsung KLM8G1GEUF EMMC.

    It would be really appreciated if you can do the same stress testing on TI EVM and share the results, which will then help us narrow it down to a hardware issue.

    The TI EVM stress test is still in preparation. Are there any other suggestions?

    Here are the logs:

    #1233-pinctrl-251104.log#281-aliases-251104.log

    NOTICE:  BL31: v2.11.0(release):v2.11.0-906-g58b25570c9-dirty
    NOTICE:  BL31: Built : 04:20:32, Nov  1 2024
    I/TC:
    I/TC: OP-TEE version: 4.4.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Oct 18 17:45:27 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.6--v10.01.06 (Fiery Fox)')
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: HUK Initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.04-ti MV_BUILD_TAG: VECO10.1-master-501701-20250515-123-gc98f43149-dirty (Oct 31 2025 - 11:38:29 +0800)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.6--v10.01.06 (Fiery Fox)')
    mv_info: __get_primary_bootmedia:402: bootmode is BOOT_DEVICE_SPI, set the boot media to eMMC
    Trying to boot from MMC1
    MV_INFO: 0x47000004: 0x4
    MV_INFO: 0x47000004: 0x4
    spl: mmc boot mode: raw
    load_device_info_part success
    mv_info: backup_flag_init:312: update_flag:0x1, boot_flag:0x0
    mv_info: backup_flag_init:368: backup flag init successed in uboot
    part: 0
    Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices
    Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices
    DMA Device not found (err=-19)
    <debug_uart>
    DM: Scanning FDT node:
    DM: device: chosen
    DM: Processing node: chosen, compatible: none
    DM: Binding FDT for node: chosen
    DM: Binding result for chosen: 0
    DM: device: cpus
    DM: Processing node: cpus, compatible: none
    DM: Binding FDT for node: cpus
    DM: Binding result for cpus: 0
    DM: device: l2-cache0
    DM: Processing node: l2-cache0, compatible: cache
    DM: Binding FDT for node: l2-cache0
    DM: Binding result for l2-cache0: 0
    DM: device: l3-cache0
    DM: Processing node: l3-cache0, compatible: cache
    DM: Binding FDT for node: l3-cache0
    DM: Binding result for l3-cache0: 0
    DM: device: firmware
    DM: Processing node: firmware, compatible: none
    DM: Binding FDT for node: firmware
    DM: Binding result for firmware: 0
    DM: device: timer-cl0-cpu0
    DM: Processing node: timer-cl0-cpu0, compatible: arm,armv8-timer
    DM: Binding FDT for node: timer-cl0-cpu0
    DM: Binding result for timer-cl0-cpu0: 0
    DM: device: pmu
    DM: Processing node: pmu, compatible: arm,cortex-a72-pmu
    DM: Binding FDT for node: pmu
    DM: Binding result for pmu: 0
    DM: device: bus@100000
    DM: Processing node: bus@100000, compatible: simple-bus
    DM: Binding FDT for node: bus@100000
    DM: Scanning FDT node: bus@100000
    DM: device: bus@28380000
    DM: Processing node: bus@28380000, compatible: simple-bus
    DM: Binding FDT for node: bus@28380000
    DM: Scanning FDT node: bus@28380000
    DM: device: system-controller@44083000
    DM: Processing node: system-controller@44083000, compatible: ti,k2g-sci
    DM: Binding FDT for node: system-controller@44083000
    DM: Scanning FDT node: system-controller@44083000
    DM: device: power-controller
    DM: Processing node: power-controller, compatible: ti,sci-pm-domain
    DM: Binding FDT for node: power-controller
    DM: Binding result for power-controller: 0
    DM: device: clock-controller
    DM: Processing node: clock-controller, compatible: ti,k2g-sci-clk
    DM: Binding FDT for node: clock-controller
    DM: Binding result for clock-controller: 0
    DM: device: reset-controller
    DM: Processing node: reset-controller, compatible: ti,sci-reset
    DM: Binding FDT for node: reset-controller
    DM: Binding result for reset-controller: 0
    DM: Binding result for system-controller@44083000: 0
    DM: device: bus@43000000
    DM: Processing node: bus@43000000, compatible: simple-bus
    DM: Binding FDT for node: bus@43000000
    DM: Scanning FDT node: bus@43000000
    DM: device: chipid@14
    DM: Processing node: chipid@14, compatible: ti,am654-chipid
    DM: Binding FDT for node: chipid@14
    DM: Binding result for chipid@14: 0
    DM: Binding result for bus@43000000: 0
    DM: device: mailbox@43600000
    DM: Processing node: mailbox@43600000, compatible: ti,am654-secure-proxy
    DM: Ignoring disabled device: mailbox@43600000
    DM: device: sram@41c00000
    DM: Processing node: sram@41c00000, compatible: mmio-sram
    DM: Binding FDT for node: sram@41c00000
    DM: Binding result for sram@41c00000: 0
    DM: device: pinctrl@4301c000
    DM: Processing node: pinctrl@4301c000, compatible: pinctrl-single
    DM: Binding FDT for node: pinctrl@4301c000
    DM: Binding result for pinctrl@4301c000: 0
    DM: device: pinctrl@4301c038
    DM: Processing node: pinctrl@4301c038, compatible: pinctrl-single
    DM: Binding FDT for node: pinctrl@4301c038
    DM: Binding result for pinctrl@4301c038: 0
    DM: device: pinctrl@4301c068
    DM: Processing node: pinctrl@4301c068, compatible: pinctrl-single
    DM: Ignoring disabled device: pinctrl@4301c068
    DM: device: pinctrl@4301c190
    DM: Processing node: pinctrl@4301c190, compatible: pinctrl-single
    DM: Ignoring disabled device: pinctrl@4301c190
    DM: device: pinctrl@40f04200
    DM: Processing node: pinctrl@40f04200, compatible: pinctrl-single
    DM: Ignoring disabled device: pinctrl@40f04200
    DM: device: pinctrl@40f04280
    DM: Processing node: pinctrl@40f04280, compatible: pinctrl-single
    DM: Ignoring disabled device: pinctrl@40f04280
    DM: device: interrupt-controller@42200000
    DM: Processing node: interrupt-controller@42200000, compatible: ti,sci-intr
    DM: Binding FDT for node: interrupt-controller@42200000
    DM: Binding result for interrupt-controller@42200000: 0
    DM: device: syscon@40f00000
    DM: Processing node: syscon@40f00000, compatible: syscon
    DM: Ignoring disabled device: syscon@40f00000
    DM: device: timer@40400000
    DM: Processing node: timer@40400000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40400000
    DM: device: timer@40410000
    DM: Processing node: timer@40410000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40410000
    DM: device: timer@40420000
    DM: Processing node: timer@40420000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40420000
    DM: device: timer@40430000
    DM: Processing node: timer@40430000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40430000
    DM: device: timer@40440000
    DM: Processing node: timer@40440000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40440000
    DM: device: timer@40450000
    DM: Processing node: timer@40450000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40450000
    DM: device: timer@40460000
    DM: Processing node: timer@40460000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40460000
    DM: device: timer@40470000
    DM: Processing node: timer@40470000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40470000
    DM: device: timer@40480000
    DM: Processing node: timer@40480000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40480000
    DM: device: timer@40490000
    DM: Processing node: timer@40490000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@40490000
    DM: device: serial@42300000
    DM: Processing node: serial@42300000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@42300000
    DM: device: serial@40a00000
    DM: Processing node: serial@40a00000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@40a00000
    DM: device: gpio@42110000
    DM: Processing node: gpio@42110000, compatible: ti,j721e-gpio
    DM: Binding FDT for node: gpio@42110000
    DM: Binding result for gpio@42110000: 0
    DM: device: gpio@42100000
    DM: Processing node: gpio@42100000, compatible: ti,j721e-gpio
    DM: Ignoring disabled device: gpio@42100000
    DM: device: i2c@42120000
    DM: Processing node: i2c@42120000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@42120000
    DM: device: i2c@40b00000
    DM: Processing node: i2c@40b00000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@40b00000
    DM: device: i2c@40b10000
    DM: Processing node: i2c@40b10000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@40b10000
    DM: device: can@40528000
    DM: Processing node: can@40528000, compatible: bosch,m_can
    DM: Ignoring disabled device: can@40528000
    DM: device: can@40568000
    DM: Processing node: can@40568000, compatible: bosch,m_can
    DM: Ignoring disabled device: can@40568000
    DM: device: spi@40300000
    DM: Processing node: spi@40300000, compatible: ti,am654-mcspi
    DM: Ignoring disabled device: spi@40300000
    DM: device: spi@40310000
    DM: Processing node: spi@40310000, compatible: ti,am654-mcspi
    DM: Ignoring disabled device: spi@40310000
    DM: device: spi@40320000
    DM: Processing node: spi@40320000, compatible: ti,am654-mcspi
    DM: Ignoring disabled device: spi@40320000
    DM: device: bus@28380000
    DM: Processing node: bus@28380000, compatible: simple-bus
    DM: Ignoring disabled device: bus@28380000
    DM: device: mailbox@2a480000
    DM: Processing node: mailbox@2a480000, compatible: ti,am654-secure-proxy
    DM: Ignoring disabled device: mailbox@2a480000
    DM: device: ethernet@46000000
    DM: Processing node: ethernet@46000000, compatible: ti,j721e-cpsw-nuss
    DM: Ignoring disabled device: ethernet@46000000
    DM: device: tscadc@40200000
    DM: Processing node: tscadc@40200000, compatible: ti,am3359-tscadc
    DM: Ignoring disabled device: tscadc@40200000
    DM: device: tscadc@40210000
    DM: Processing node: tscadc@40210000, compatible: ti,am3359-tscadc
    DM: Ignoring disabled device: tscadc@40210000
    DM: device: bus@47000000
    DM: Processing node: bus@47000000, compatible: simple-bus
    DM: Binding FDT for node: bus@47000000
    DM: Scanning FDT node: bus@47000000
    DM: device: spi@47040000
    DM: Processing node: spi@47040000, compatible: ti,am654-ospi
    DM: Binding FDT for node: spi@47040000
    DM: Scanning FDT node: spi@47040000
    DM: device: flash@0
    DM: Processing node: flash@0, compatible: jedec,spi-nor
    DM: Binding FDT for node: flash@0
    DM: Binding result for flash@0: 0
    DM: Binding result for spi@47040000: 0
    DM: device: spi@47050000
    DM: Processing node: spi@47050000, compatible: ti,am654-ospi
    DM: Ignoring disabled device: spi@47050000
    DM: Binding result for bus@47000000: 0
    DM: device: temperature-sensor@42040000
    DM: Processing node: temperature-sensor@42040000, compatible: ti,j7200-vtm
    DM: Binding FDT for node: temperature-sensor@42040000
    DM: Binding result for temperature-sensor@42040000: 0
    DM: device: r5fss@41000000
    DM: Processing node: r5fss@41000000, compatible: ti,j721s2-r5fss
    DM: Binding FDT for node: r5fss@41000000
    DM: Binding result for r5fss@41000000: 0
    DM: device: esm@40800000
    DM: Processing node: esm@40800000, compatible: ti,j721e-esm
    DM: Binding FDT for node: esm@40800000
    DM: Binding result for esm@40800000: 0
    DM: device: esm@42080000
    DM: Processing node: esm@42080000, compatible: ti,j721e-esm
    DM: Binding FDT for node: esm@42080000
    DM: Binding result for esm@42080000: 0
    DM: device: watchdog@40600000
    DM: Processing node: watchdog@40600000, compatible: ti,j7-rti-wdt
    DM: Ignoring disabled device: watchdog@40600000
    DM: device: watchdog@40610000
    DM: Processing node: watchdog@40610000, compatible: ti,j7-rti-wdt
    DM: Ignoring disabled device: watchdog@40610000
    DM: Binding result for bus@28380000: 0
    DM: device: sram@70000000
    DM: Processing node: sram@70000000, compatible: mmio-sram
    DM: Binding FDT for node: sram@70000000
    DM: Binding result for sram@70000000: 0
    DM: device: syscon@104000
    DM: Processing node: syscon@104000, compatible: ti,j721e-system-controller
    DM: Ignoring disabled device: syscon@104000
    DM: device: pwm@3000000
    DM: Processing node: pwm@3000000, compatible: ti,am654-ehrpwm
    DM: Ignoring disabled device: pwm@3000000
    DM: device: pwm@3010000
    DM: Processing node: pwm@3010000, compatible: ti,am654-ehrpwm
    DM: Ignoring disabled device: pwm@3010000
    DM: device: pwm@3020000
    DM: Processing node: pwm@3020000, compatible: ti,am654-ehrpwm
    DM: Ignoring disabled device: pwm@3020000
    DM: device: pwm@3030000
    DM: Processing node: pwm@3030000, compatible: ti,am654-ehrpwm
    DM: Ignoring disabled device: pwm@3030000
    DM: device: pwm@3040000
    DM: Processing node: pwm@3040000, compatible: ti,am654-ehrpwm
    DM: Ignoring disabled device: pwm@3040000
    DM: device: pwm@3050000
    DM: Processing node: pwm@3050000, compatible: ti,am654-ehrpwm
    DM: Ignoring disabled device: pwm@3050000
    DM: device: interrupt-controller@1800000
    DM: Processing node: interrupt-controller@1800000, compatible: arm,gic-v3
    DM: Binding FDT for node: interrupt-controller@1800000
    DM: Binding result for interrupt-controller@1800000: 0
    DM: device: interrupt-controller@a00000
    DM: Processing node: interrupt-controller@a00000, compatible: ti,sci-intr
    DM: Binding FDT for node: interrupt-controller@a00000
    DM: Binding result for interrupt-controller@a00000: 0
    DM: device: pinctrl@11c000
    DM: Processing node: pinctrl@11c000, compatible: pinctrl-single
    DM: Binding FDT for node: pinctrl@11c000
    DM: Binding result for pinctrl@11c000: 0
    DM: device: pinctrl@104200
    DM: Processing node: pinctrl@104200, compatible: pinctrl-single
    DM: Binding FDT for node: pinctrl@104200
    DM: Binding result for pinctrl@104200: 0
    DM: device: pinctrl@104280
    DM: Processing node: pinctrl@104280, compatible: pinctrl-single
    DM: Binding FDT for node: pinctrl@104280
    DM: Binding result for pinctrl@104280: 0
    DM: device: crypto@4e00000
    DM: Processing node: crypto@4e00000, compatible: ti,j721e-sa2ul
    DM: Binding FDT for node: crypto@4e00000
    DM: Binding result for crypto@4e00000: 0
    DM: device: timer@2400000
    DM: Processing node: timer@2400000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2400000
    DM: device: timer@2410000
    DM: Processing node: timer@2410000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2410000
    DM: device: timer@2420000
    DM: Processing node: timer@2420000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2420000
    DM: device: timer@2430000
    DM: Processing node: timer@2430000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2430000
    DM: device: timer@2440000
    DM: Processing node: timer@2440000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2440000
    DM: device: timer@2450000
    DM: Processing node: timer@2450000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2450000
    DM: device: timer@2460000
    DM: Processing node: timer@2460000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2460000
    DM: device: timer@2470000
    DM: Processing node: timer@2470000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2470000
    DM: device: timer@2480000
    DM: Processing node: timer@2480000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2480000
    DM: device: timer@2490000
    DM: Processing node: timer@2490000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2490000
    DM: device: timer@24a0000
    DM: Processing node: timer@24a0000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@24a0000
    DM: device: timer@24b0000
    DM: Processing node: timer@24b0000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@24b0000
    DM: device: timer@24c0000
    DM: Processing node: timer@24c0000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@24c0000
    DM: device: timer@24d0000
    DM: Processing node: timer@24d0000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@24d0000
    DM: device: timer@24e0000
    DM: Processing node: timer@24e0000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@24e0000
    DM: device: timer@24f0000
    DM: Processing node: timer@24f0000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@24f0000
    DM: device: timer@2500000
    DM: Processing node: timer@2500000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2500000
    DM: device: timer@2510000
    DM: Processing node: timer@2510000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2510000
    DM: device: timer@2520000
    DM: Processing node: timer@2520000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2520000
    DM: device: timer@2530000
    DM: Processing node: timer@2530000, compatible: ti,am654-timer
    DM: Ignoring disabled device: timer@2530000
    DM: device: serial@2800000
    DM: Processing node: serial@2800000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2800000
    DM: device: serial@2810000
    DM: Processing node: serial@2810000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2810000
    DM: device: serial@2820000
    DM: Processing node: serial@2820000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2820000
    DM: device: serial@2830000
    DM: Processing node: serial@2830000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2830000
    DM: device: serial@2840000
    DM: Processing node: serial@2840000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2840000
    DM: device: serial@2850000
    DM: Processing node: serial@2850000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2850000
    DM: device: serial@2860000
    DM: Processing node: serial@2860000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2860000
    DM: device: serial@2870000
    DM: Processing node: serial@2870000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2870000
    DM: device: serial@2880000
    DM: Processing node: serial@2880000, compatible: ti,j721e-uart
    DM: Binding FDT for node: serial@2880000
    DM: Binding result for serial@2880000: 0
    DM: device: serial@2890000
    DM: Processing node: serial@2890000, compatible: ti,j721e-uart
    DM: Ignoring disabled device: serial@2890000
    DM: device: gpu@4e20000000
    DM: Processing node: gpu@4e20000000, compatible: ti,j721s2-pvr
    DM: Binding FDT for node: gpu@4e20000000
    DM: Binding result for gpu@4e20000000: 0
    DM: device: gpio@600000
    DM: Processing node: gpio@600000, compatible: ti,j721e-gpio
    DM: Ignoring disabled device: gpio@600000
    DM: device: gpio@610000
    DM: Processing node: gpio@610000, compatible: ti,j721e-gpio
    DM: Ignoring disabled device: gpio@610000
    DM: device: gpio@620000
    DM: Processing node: gpio@620000, compatible: ti,j721e-gpio
    DM: Ignoring disabled device: gpio@620000
    DM: device: gpio@630000
    DM: Processing node: gpio@630000, compatible: ti,j721e-gpio
    DM: Ignoring disabled device: gpio@630000
    DM: device: i2c@2000000
    DM: Processing node: i2c@2000000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@2000000
    DM: device: i2c@2010000
    DM: Processing node: i2c@2010000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@2010000
    DM: device: i2c@2020000
    DM: Processing node: i2c@2020000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@2020000
    DM: device: i2c@2030000
    DM: Processing node: i2c@2030000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@2030000
    DM: device: i2c@2040000
    DM: Processing node: i2c@2040000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@2040000
    DM: device: i2c@2050000
    DM: Processing node: i2c@2050000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@2050000
    DM: device: i2c@2060000
    DM: Processing node: i2c@2060000, compatible: ti,j721e-i2c
    DM: Ignoring disabled device: i2c@2060000
    DM: device: video-codec@4210000
    DM: Processing node: video-codec@4210000, compatible: ti,j721s2-wave521c
    DM: Binding FDT for node: video-codec@4210000
    DM: Binding result for video-codec@4210000: 0
    DM: device: mmc@4f80000
    DM: Processing node: mmc@4f80000, compatible: ti,j721e-sdhci-8bit
    DM: Binding FDT for node: mmc@4f80000
    

    Below are the dtb comparison results:

    On the left is the DTB in memory, and on the right is the compiled DTB.

    BR.

  • HI xie,

    The TI EVM stress test is still in preparation. Are there any other suggestions?

    Sure. we can wait for the TI EVM stress test results. In the meantime, can you check if the same issue is occuring if u-boot is feteched from another boot media. If yes, where is it getting stuck. Is it at the same place you had seen while booting uboot from emmc?

    Regards

    Gokul

  • Hi Gokul,

    we can wait for the TI EVM stress test results.

    We conducted boot stress testing on the j721s2 EVM board using SDK10.1 perbuild software via `reboot -f`. We have now reproduced the issue where uboot fails to boot properly. 

    As shown in the figure, when trying to connect via CCS, mcu-r5f, main-r5f, c7x, and mcu-r5f can all connect. If I continue running and then pause, the PC address of the main-r5f and c7x changes, while the PC addresses of the mcu-r5f and a72 remain unchanged. 

    This differs from the issue we encountered. When our circuit board experienced a U-Boot failure, only the MCU-R5F and A72 could connect via CCS, while the Main-R5F and C7X remained unreachable.

    Here are the logs:

    #1955-evm-251107.log

    BR.

  • Hi xie,

    I have requested the corresponding expert to have a look into this query. Thanks in advance for your patience.

    Regards

    Gokul

  • Hello Xie,

    During your stress tests whenever you see a hang is the hang consistent in the same place during boot? 

    Best Regards,

    Keerthy 

  • Hi Keerthy,

    During your stress tests whenever you see a hang is the hang consistent in the same place during boot? 

    The point where it gets stuck varies each time, but most occur before or during the execution of the initf_dm function.

    We observed that do_sync() was being entered after each hang. Subsequently, we added a restart function inside do_sync() to prevent continuous hangs. This measure initially worked fine, but recently an exception occurred where do_sync() was not entered, as shown below:

    U-Boot is stuck in `lists_uclass_lookup()`, continuously failing to match the correct value and getting stuck in the for loop. The value of the `entry` pointer keeps increasing without triggering an error to enter `do_sync()`. We suspect the previous U-Boot hang was caused by a data read error. Typically, such errors occur when the pointer lands in an inaccessible region, triggering a data abort that enters `do_sync()`. However, in this case, the pointer occasionally landed in an accessible region, preventing the data abort and causing the system to hang in a for loop instead. 

    Additionally, we observed an unusual phenomenon In this case. Our DDR configuration consists of DDR0 (2GB) and DDR1 (1GB), totaling 3GB, with interleaving mode enabled. As shown in the figure, we found that the initialization values of DDR0 and DDR1 differ significantly: Within the interleaved region, DDR0—covering the address range from 0x0080000000 to 0x008000007F—has its data initialized to 0xFF. In contrast, the subsequent DDR1 segment (spanning addresses 0x0080000080 to 0x00800000FF) has its initialization data set to 0x00.
    We have two questions:
    1. Can we confirm that the U-Boot boot issue is caused by DDR read problems?
    2. Is it normal for DDR interleave region values to be different?
    Best Regards

  • Hello Xie,

    The failure is in A72 SPL stage. We have seen similar failure in A72 SPL stage during OSPI boot.

    The fix: https://lore.kernel.org/all/20250325053420.4wuenxmlnqsojuyt@prasanth-server/T/#u)

    Could you try the above patch and let us know if it helps with MMC2 boot as well.

    - Keerthy

  • Hi Keerthy,

    This patch resolved our issue. 

    Best Regards