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.

AM625: Cust PCB with 512M SPI NAND Flash on the PCB , problem to load the kernel

Part Number: AM625
Other Parts Discussed in Thread: SK-AM62-LP

Tool/software:

Champs:

#1. My Cust PCB with 512M SPI NAND Flash, but they failed to load the kerenel.

#2. Please check the log below, how to fix this?

BR Rio

U-Boot 2024.04-dirty (Aug 06 2025 - 09:53:08 +0800)

 

SoC:   AM62X SR1.0 HS-FS

Model: Texas Instruments AM625 SK

EEPROM not available at 0x50, trying to read at 0x51

Reading on-board EEPROM at 0x51 failed -121

DRAM:  475 MiB (effective 512 MiB)

Core:  81 devices, 31 uclasses, devicetree: separate

NAND:  0 MiB

MMC:   mmc@fa10000: 0, mmc@fa00000: 1

Loading Environment from NAND... OK

In:    serial

Out:   serial

Err:   serial

EEPROM not available at 0x50, trying to read at 0x51

Reading on-board EEPROM at 0x51 failed -121

Net:   Could not get PHY for mdio@f00: addr 0

am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed

No ethernet found.

 

Hit any key to stop autoboot:  0

=> mw.l 0x43000030 0x00000273; reset

  • Hi Rio,

    The core issue is that U-Boot is failing to recognize and utilize the 512MiB SPI NAND flash on your custom PCB. 

    Additionally, the log shows issues with I2C (EEPROM not available at 0x50, trying to read at 0x51, Reading on-board EEPROM at 0x51 failed -121) and Ethernet (No ethernet found.). While these are separate issues, they point to potential problems in the device tree or hardware configuration on your custom board.

    1. Check the board's devicetree spi-nand configurations (e.g, k3-am625-sk.dts or a custom one for your PCB).

    2. The U-Boot defconfig file for your board (configs/am62x_evm_a53_defconfig configs/am62x_evm_r5_defconfig, or similar) might be missing the necessary components to support the SPI NAND flash.

    Please refer the below Links:- 

    1. https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1545656/sk-am62b-p1-how-to-change-defconfig-files-for-spi-nand-boot

    2. https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-QSPI.html

    Regards,

    Dilna K

  • Hi K:

    I read your posted link, do we need to change the OSPI NAND flash size?

    I cannot find the place related with the Size?

    Or, we don't need to change the SPI NAND Flash size?

    BR Rio

  • Hi Rio,

    In case of AM62A which supports OSPI-NAND flash uses -1Gbit OSPI memory device from Cypress Part# W35N01JWTBAG 

    Please refer the section '4.5.10.2 OSPI Interface' of AM62A EVM board userguide

    Link:- https://www.ti.com/lit/ug/spruj66a/spruj66a.pdf?ts=1754544286840&ref_url=https%253A%252F%252Fwww.google.com%252F

    As per my understanding we need to use 1Gb size SPI NAND Flash. Let me double check with our hardware expert and get back to you.

    Regards,

    Dilna K

  • Hi K:

    This is AM62x , not am62A.

    More questions:

           Q1. ==> NAND:  0 MiB

                 Where is the code to print this log? 

           Q2. ==> Customer's S-Flash is "QSPI - NAND".

                  And the AM62 is using the Cadence driver to adapt it?

           Q3. ==> Where is the SPI NAND speed I can change?

                  I'm not saying the SPI clock.

    BR Rio

  • Hi Rio,
    The following is from the latest email from the customer on Wednesday, August 6, 2025 10:12 AM
    >>>>
    但是目前我們的板子,
    SD卡開機到kernel後,
    進行spi nand image的寫入,
    寫入後會讀出來跟原檔進行md5sum確認,
    之後切換spi nand 開機。 =>開機沒有任何訊息
    <<<<
    1/. what is the serial nand device used in the testing? is it the GD device?
    2/. will you share the serial nand device datasheet?
    3/. what is BOOTMODE[15:0]? when booting from serial nand on the customer board?
    Best,
    -Hong

  •   

    1/. what is the serial nand device used in the testing? is it the GD device?
    2/. will you share the serial nand device datasheet?
    3/. what is BOOTMODE[15:0]? when booting from serial nand on the customer board?

    Can you please get the above information as per Hong's request, then we can proceed further.

    Thanks,

    Vaibhav

  • Hi Vaibhav:

    #1. Please help me to change this E2E as internal, thus, I will port the DS / Report onto this ticket.

    #2. I have sent you the off-line detail info report for this.

    THanks.

    BR Rio

  • Hi Rio,
    Thanks for sharing the two data sheets via offline email.

    3/. what is BOOTMODE[15:0]? when booting from serial nand on the customer board?

    Best,
    -Hong

  • Hi Hong / Vaib:

    1/. what is the serial nand device used in the testing? is it the GD device?

         (Rio: As the summarized report showing, they used ESMT / WinBond QSPI Nand.


    2/. will you share the serial nand device datasheet?

         (Rio: As the off-line email.)


    3/. what is BOOTMODE[15:0]? when booting from serial nand on the customer board?

         (Rio: I will get the answer soon.)

    BR Rio

  • Boot mode setting is here. 

     

  • Hi Rio,
    1/. do we have the detailed steps (log file would help) on how the customer flashed the serial nand on the customer board?
    2/. have the customer verified the serial nand content after flashing?
    3/. do we have the full boot log when booting from serial nand?

    FYI. this is the FAQ on how to flash/boot from serial nand on SK-AM62-LP board
    [FAQ] How to flash and boot u-boot from serial-NAND on AM62x/AM62Ax 
    Best,
    -Hong

  • Hi Hong / Vaib:

    Here is the uboot log.

    We have tested the newest uboot which has many OSPI related patch,

    however, you can see the bytes are missing: (Input 16 bytes, but only see 14 bytes.

    BR Rio


    U-Boot SPL 2024.04-dirty (Aug 20 2025 - 13:32:11 +0800)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    SPL initial stack usage: 13456 bytes
    CTRL_MMR0 (BootMode): 0x243
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...

    NOTICE: BL31: v2.11.0(release):v2.11.0-906-g58b25570c9-dirty
    NOTICE: BL31: Built : 04:20:32, Nov 1 2024

    U-Boot SPL 2024.04-dirty (Aug 20 2025 - 13:32:21 +0800)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    SPL initial stack usage: 1904 bytes
    CTRL_MMR0 (BootMode): 0x243
    Trying to boot from MMC2
    i2c_write: error waiting for data ACK (status=0x116)
    pca953x gpio@22: Error reading output register
    Authentication passed
    Authentication passed


    U-Boot 2025.01 (Aug 20 2025 - 14:14:39 +0800)

    SoC: AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    DRAM: 475 MiB (total 512 MiB)
    Core: 83 devices, 32 uclasses, devicetree: separate
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In: serial
    Out: serial
    Err: serial
    Net: Could not get PHY for mdio@f00: addr 0
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed
    No ethernet found.


    Hit any key to stop autoboot: 0
    => mmc dev 1
    __omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
    omap_i2c_xfer: errored out at msg 0: -121
    pca953x gpio@22: Error reading output register
    switch to partitions #0, OK
    mmc1 is current device
    => mmcinfo
    Device: mmc@fa00000
    Manufacturer ID: 3
    OEM: 5344
    Name: SE32G
    Bus Speed: 50000000
    Mode: SD High Speed (50MHz)
    Rd Block Len: 512
    SD version 3.0
    High Capacity: Yes
    Capacity: 29.7 GiB
    Bus Width: 4-bit
    Erase Group Size: 512 Bytes
    => mtd list
    List of MTD devices:
    * spi-nand0
    - device: flash@0
    - parent: spi@fc40000
    - driver: spi_nand
    - path: /bus@f0000/bus@fc00000/spi@fc40000/flash@0
    - type: NAND flash
    - block size: 0x20000 bytes
    - min I/O: 0x800 bytes
    - OOB size: 128 bytes
    - OOB available: 56 bytes
    - 0x000000000000-0x000010000000 : "spi-nand0"
    - 0x000000000000-0x000000080000 : "tiboot3"
    - 0x000000080000-0x000000280000 : "tispl"
    - 0x000000280000-0x000000680000 : "UBOOT"
    - 0x000000680000-0x000000700000 : "ENV0"
    - 0x000000700000-0x000000780000 : "ENV1"
    - 0x000000780000-0x000000800000 : "RAWDATA"
    - 0x000000800000-0x000000880000 : "DTB0"
    - 0x000000880000-0x000000900000 : "DTB1"
    - 0x000000900000-0x000001300000 : "KERNEL0"
    - 0x000001300000-0x000001d00000 : "KERNEL1"
    - 0x000001d00000-0x000002700000 : "ROOTFS0"
    - 0x000002700000-0x000003100000 : "ROOTFS1"
    - 0x000003100000-0x000003500000 : "BOOT_BAK"
    - 0x000003500000-0x000010000000 : "HMI"
    => fatload mmc 1:1 0x88080000 test.bin
    16 bytes read in 0 ms
    => md.b 0x88080000
    88080000: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ................
    88080010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
    88080020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
    88080030: ff ff ff ff ff ff ff ff bf ff ff ff ff ff ff ff ................
    => mtd write tispl 0x88080000
    Writing 2097152 byte(s) (1024 page(s)) at offset 0x00000000
    => mtd dump tispl
    Reading 2048 byte(s) (1 page(s)) at offset 0x00000000
    Failure while reading at offset 0x0
    Read on tispl failed with error -74
    => mtd erase
    spi-nand0 tiboot3 tispl UBOOT ENV0 ENV1 RAWDATA DTB0 DTB1 KERNEL0 KERNEL1
    ROOTFS0 ROOTFS1 BOOT_BAK HMI
    => mtd erase tispl
    Erasing 0x00000000 ... 0x001fffff (16 eraseblock(s))
    => mtd write tispl 0x88080000
    Writing 2097152 byte(s) (1024 page(s)) at offset 0x00000000
    => mtd dump tispl
    Reading 2048 byte(s) (1 page(s)) at offset 0x00000000

    Dump 2048 data bytes from 0x00000000:
    0x00000000: 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ff ff
    0x00000010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000030: ff ff ff ff ff ff bf ff ff ff ff ff ff ff ff ff
    0x00000040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000060: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000000a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000000b0: ff ff ff 7f ff ff ff ff ff ff ff ff ff ff ff ff
    0x000000c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000000d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000000e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000000f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000110: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000120: ff ff ff ff ff ff ff ff ff ff ff ff df ff ff ff
    0x00000130: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000140: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000150: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000160: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000170: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000190: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000001a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000001b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000001c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000001d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000001e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000001f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000200: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000210: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000220: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000230: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000240: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000250: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000260: ff ff ff 7f ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000270: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000280: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000290: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000002a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000002b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000002c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000002d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000002e0: ff ff ff ff ff ff ff ff ff ff bf ff ff ff ff ff
    0x000002f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000300: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000310: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000320: df ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000330: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000340: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000350: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000360: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000370: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000380: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000390: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000003a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000003b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000003c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000003d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000003e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000003f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000400: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000410: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000420: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000430: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000440: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000450: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000460: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000470: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000480: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000490: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000004a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000004b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000004c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000004d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000004e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000004f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000500: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000510: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000520: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000530: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000540: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000550: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000560: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000570: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000580: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000590: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000005a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000005b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000005c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000005d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000005e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000005f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000600: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000610: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000620: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000630: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000640: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000650: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000660: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000670: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000680: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000690: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000006a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000006b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000006c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000006d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000006e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000006f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000700: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000710: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000720: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000730: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000740: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000750: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000760: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000770: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000780: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x00000790: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000007a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000007b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000007c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000007d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000007e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    0x000007f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    =>

  • Hi Rio,
    The following was from the offline email you shared.
    My offline email reading is the two bytes shift was not observed with the GD device.
    Can we try changing one line below on booting from the GD device after flashing to see if tiboot3.bin boots up...
    FROM
    => mw.l 0x43000030 0x00000273; reset
    TO
    => mw.l 0x43000030 0x00000103; reset

    >>>>>>>> the offline email you shared
    Aug-04
    目前我們又換上另外一個GD的qspi nandflash,
    也是可以正常燒寫(沒有位移現象),但是切換到spi nand 無法開機,沒有訊息。

    >> Aug-06
    根據link的方式使用reset

    1. SD卡開機到kernel後,進行spi nand image的寫入,寫入後會讀出來跟原檔進行md5sum確認
    2. SD 卡開機停在uboot,執行mw.l 0x43000030 0x00000273; reset

    結果還是沒有任何訊息如下:
    U-Boot 2024.04-dirty (Aug 06 2025 - 09:53:08 +0800)

    SoC: AM62X SR1.0 HS-FS
    Model: Texas Instruments AM625 SK
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    DRAM: 475 MiB (effective 512 MiB)
    Core: 81 devices, 31 uclasses, devicetree: separate
    NAND: 0 MiB
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from NAND... OK
    In: serial
    Out: serial
    Err: serial
    EEPROM not available at 0x50, trying to read at 0x51
    Reading on-board EEPROM at 0x51 failed -121
    Net: Could not get PHY for mdio@f00: addr 0
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed
    No ethernet found.

    Hit any key to stop autoboot: 0
    => mw.l 0x43000030 0x00000273; reset
    resetting ...
    >>>>>>>>

  • Hi all:

    #1. plz note: We only focus on ESMT / WB QSPI Flash boot.

    #2. The cust RD already verified the LP EVM (NAND Flash boot.) by using the "Serial NAND" boot mode.

    ************** Below is the SD card boot, and we use the sf probe to check the Nand flash status *******************

    U-Boot SPL 2024.04-dirty (Aug 21 2025 - 15:41:57 +0800)

    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')

    SPL initial stack usage: 13456 bytes

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    CTRL_MMR0 (BootMode): 0x243

    Trying to boot from MMC2

    tony add spl_load_image

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    Authentication passed

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    Authentication passed

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    Authentication passed

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    Authentication passed

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    Authentication passed

    Starting ATF on ARM64 core...

     

    NOTICE:  BL31: v2.11.0(release):v2.11.0-906-g58b25570c9-dirty

    NOTICE:  BL31: Built : 04:20:32, Nov  1 2024

     

    U-Boot SPL 2024.04-dirty (Aug 21 2025 - 15:42:10 +0800)

    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')

    SPL initial stack usage: 1904 bytes

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    CTRL_MMR0 (BootMode): 0x243

    Trying to boot from MMC2

    tony add spl_load_image

    i2c_write: error waiting for data ACK (status=0x116)

    pca953x gpio@22: Error reading output register

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    Authentication passed

    am625_init: spl_boot_device: devstat = 0x243 bootmedia = 0x8 bootindex = 0

    Authentication passed

     

     

    U-Boot 2024.04-dirty (Aug 21 2025 - 15:42:10 +0800)

     

    SoC:   AM62X SR1.0 HS-FS

    Model: Texas Instruments AM625 SK

    EEPROM not available at 0x50, trying to read at 0x51

    Reading on-board EEPROM at 0x51 failed -121

    DRAM:  475 MiB (effective 512 MiB)

    Core:  81 devices, 31 uclasses, devicetree: separate

    NAND:  tony board_nand_init dev-name:<NULL>

    0 MiB

    MMC:   mmc@fa10000: 0, mmc@fa00000: 1

    Loading Environment from NAND... tony add spinand_detect

    unknown raw ID ef aa 22 00

    tony add add_mtd_device mtd->name:spi-nand0 mtd->size:268435456else mtd: Giving out device 0 to spi-nand0 mtd->size:0x10000000

    tony add add_mtd_device mtd->name:tiboot3 mtd->size:524288else mtd: Giving out device 1 to tiboot3 mtd->size:0x80000

    tony add add_mtd_device mtd->name:tispl mtd->size:2097152else mtd: Giving out device 2 to tispl mtd->size:0x200000

    tony add add_mtd_device mtd->name:UBOOT mtd->size:4194304else mtd: Giving out device 3 to UBOOT mtd->size:0x400000

    tony add add_mtd_device mtd->name:ENV0 mtd->size:524288else mtd: Giving out device 4 to ENV0 mtd->size:0x80000

    tony add add_mtd_device mtd->name:ENV1 mtd->size:524288else mtd: Giving out device 5 to ENV1 mtd->size:0x80000

    tony add add_mtd_device mtd->name:RAWDATA mtd->size:524288else mtd: Giving out device 6 to RAWDATA mtd->size:0x80000

    tony add add_mtd_device mtd->name:DTB0 mtd->size:524288else mtd: Giving out device 7 to DTB0 mtd->size:0x80000

    tony add add_mtd_device mtd->name:DTB1 mtd->size:524288else mtd: Giving out device 8 to DTB1 mtd->size:0x80000

    tony add add_mtd_device mtd->name:KERNEL0 mtd->size:10485760else mtd: Giving out device 9 to KERNEL0 mtd->size:0xa00000

    tony add add_mtd_device mtd->name:KERNEL1 mtd->size:10485760else mtd: Giving out device 10 to KERNEL1 mtd->size:0xa00000

    tony add add_mtd_device mtd->name:ROOTFS0 mtd->size:10485760else mtd: Giving out device 11 to ROOTFS0 mtd->size:0xa00000

    tony add add_mtd_device mtd->name:ROOTFS1 mtd->size:10485760else mtd: Giving out device 12 to ROOTFS1 mtd->size:0xa00000

    tony add add_mtd_device mtd->name:BOOT_BAK mtd->size:4194304else mtd: Giving out device 13 to BOOT_BAK mtd->size:0x400000

    tony add add_mtd_device mtd->name:HMI mtd->size:212860928else mtd: Giving out device 14 to HMI mtd->size:0xcb00000

    *** Warning - bad CRC, using default environment

     

    In:    serial

    Out:   serial

    Err:   serial

    EEPROM not available at 0x50, trying to read at 0x51

    Reading on-board EEPROM at 0x51 failed -121

    Net:   Could not get PHY for mdio@f00: addr 0

    am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed

    No ethernet found.

     

    Hit any key to stop autoboot:  0

    => sf probe

    tony add spinand_detect

    unknown raw ID ef aa 22 00

    tony add add_mtd_device mtd->name:spi-nand1 mtd->size:268435456else mtd: Giving out device 15 to spi-nand1 mtd->size:0x10000000

    =>

    *************************************************************** Below is we switch to Serial Nand boot ********************

    U-Boot SPL 2024.04-dirty (Aug 21 2025 - 15:41:57 +0800)

    SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')

    SPL initial stack usage: 13456 bytes

    am625_init: spl_boot_device: devstat = 0x283 bootmedia = 0x10 bootindex = 0

    CTRL_MMR0 (BootMode): 0x283

    Trying to boot from SPINAND

    tony add spl_load_image

    tony add spinand_detect

    unknown raw ID ef aa 22 00

    tony add add_mtd_device mtd->name:spi-nand0 mtd->size:268435456else mtd: Giving out device 0 to spi-nand0 mtd->size:0x0

    SPL: failed to boot from all boot devices

    ### ERROR ### Please RESET the board ###

    You can see the SPI nand is switch to 0 and the size is 0, why?

    BR Rio

  • Hi Rio,
    "sf" cmd @u-boot in TI SDK is only for spi-nor, but not for spi-nand.
    "mtd" cmd @u-boot is for spi-nand, and "mtd list" does the serial-nand probe -> see do_mtd_list() function in u-boot.

    On the log segment <Below is we switch to Serial Nand boot>,
    it looks like "tiboot3.bin" is booted from serial-nand.
    Based on "unknown raw ID ef aa 22 00", it looks like the WB serial-nand device is used in the testing?
    If it is the WB device, we'll need to check if the WB serial-nand device is configured correctly
    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/drivers/mtd/nand/spi/winbond.c?h=11.01.10#n301
    Best,
    -Hong

  • Hi Hong:

    Again:

    #1. Their PCB used WB + ESMT flash.

    #2. We already studied the winbond.c + esmt.c for several days.

    #3. GD Flash is just for cross check.

    Thanks.

    BR Rio

  • Hi Hong:

    For WB, we already resolve it.

    As the Patch, plz ask the platform team to merge the patch.

    We are debugging the GD now.

    My cust will ignore the ESMT flash now.

  • When Power on with the GD device, why the Console has no any log?

    This is wired.

    Bcz, by using the SD card booting, everything is fine, this proves the DDR has no issue.

    BTW, the uboot has no support for this part in our SDK uboot: GD5F2GM7UEYIC.

    elixir.bootlin.com/.../gigadevice.c

  • Hi Rio,
    It is good to know serial-nand works on the customer board with the WB device.
    On the GD device, have we tried my feedback once the u-boot flashing to the GD device is done?

    My offline email reading is the two bytes shift was not observed with the GD device.
    Can we try changing one line below on booting from the GD device after flashing to see if tiboot3.bin boots up...
    FROM
    => mw.l 0x43000030 0x00000273; reset
    TO
    => mw.l 0x43000030 0x00000103; reset

    Best,
    -Hong

  • Hi Hong:

    #1. Obviously, TI SDK has not verify the Serial - Nand boot.

    #2. Thanks for your new update, the GD flash issue resolved, plz have a detail explain, my Cust needs to know why.

    BR Rio

  • Hi Rio,

    It is good to know serial-nand boot works on the customer board with the GD device.

    Here're some details on serial-nand boot with the GD device (requiring QE bit).
    Serial-nand doesn’t have a JEDEC standard which specify the memory configuration, protocol, and modes... for example,
    - There're serial-nand devices (i.e, Winbond, Micron), where run-time QE bit operation is not needed for 4S mode.
    - On the other hand, run-time QE bit operation is required for 4S mode in some serial-nand devices, i.e.Gigadevice one.

    It is challenge for ROM to support serial-nand device(s) considering flash vendor variability, and AM62x ROM currently doesn't support the serial-nand device (i.e. GD one) requiring the explicit run-time QE bit configuration for 4s mode operations.

    The workaround to boot from the serial-nand (requiring QE bit) is configuring BOOTMODE pin to start with 1S-1S-1S for ROM to load "tiboot3.bin" from serial-nand, and re-configure in u-boot to switch from 1S to 4S mode for next stage SW executions (u-boot/kernel/rootfs...).

    For example, “SPINAND_HAS_QE_BIT” needs to be configured in u-boot for the GD device.
    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/drivers/mtd/nand/spi/gigadevice.c?h=11.01.11#n271
    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/drivers/mtd/nand/spi/core.c?h=11.01.11#n215

    Best,
    -Hong

  • Hi Hong:

    Thanks, My cus agrees to close this issue.

    BR Rio