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.

AM4378: Inconsistent u-boot results after upgrading from v4.03.00.05 to v8.02.00.24

Part Number: AM4378
Other Parts Discussed in Thread: AM4372

Hi,

We have a custom board based off the general purpose evaluation module for the am4372. We have a working image using the v4.03.00.05 of the SDK.Here is the example boot output.

U-Boot SPL 2017.01-00319-g33a324a-dirty (Jun 28 2018 - 09:47:14)
Trying to boot from MMC1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
reading u-boot.img
reading u-boot.img
reading u-boot.img
reading u-boot.img


U-Boot 2017.01-00319-g33a324a-dirty (Jun 28 2018 - 09:47:14 -0700)

CPU  : AM437X-GP rev 1.2
Model: TI AM437x GP EVM
DRAM:  2 GiB
PMIC:  TPS65218
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0
reading uboot.env

** Unable to read "uboot.env" from mmc0:1 **
Using default environment

Net:   <ethaddr> not set. Validating first E-fuse MAC
Could not get PHY for cpsw: addr 0
cpsw, usb_ether
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading boot.scr
** Unable to read file boot.scr **
reading uEnv.txt
** Unable to read file uEnv.txt **
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
3642680 bytes read in 762 ms (4.6 MiB/s)
49338 bytes read in 58 ms (830.1 KiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8fff0000, end 8ffff0b9 ... OK

Starting kernel ...


We recently tried to upgrade to v8.02.00.24 because we need support for a new ethernet PHY.  We are experience strange results when u-boot starts. Using an FDTI cable we can see the boot output and it appears u-boot is not always making it as far through the startup process. Using the same image if I reboot several times I can see u-boot make it to different places in the startup sequence. Only once was I able to get to a u-boot prompt after dozens of reboots. We have added lots of print statements and it is a roll of the dice if the print statement is printed from boot to boot.

*************** Boot 1 *************************

U-Boot SPL nw 2021.01-00001-g6048603-dirty (Oct 10 2022 - 16:22:20 -0400)
SPL: nw boot_from_devices
Trying to boot from MMC1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
SPL: nw load success
SPL: jump_to_image_no_args


U-Boot 2021.01-00001-g6048603-dirty NW (Oct 10 2022 - 16:22:20 -0400)

CPU  : AM437X-GP rev 1.2
Model: TI AM437x GP EVM
DRAM:  After dram
2 GiB


*************** Boot 2 *************************

U-Boot SPL nw 2021.01-00001-g6048603-dirty (Oct 10 2022 - 16:22:20 -0400)
SPL: nw boot_from_devices
Trying to boot from MMC1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
SPL: nw load success
SPL: jump_to_image_no_args
▒


*************** Boot 3 *************************


U-Boot SPL nw 2021.01-00001-g6048603-dirty (Oct 10 2022 - 16:22:20 -0400)
SPL: nw boot_from_devices
Trying to boot from MMC1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
SPL: nw load success
SPL: jump_to_image_no_args


U-Boot 2021.01-00001-g6048603-dirty NW (Oct 10 2022 - 16:22:20 -0400)

CPU  : AM437X-GP rev 1.2
Model: TI AM437x GP EVM
DRAM:  After dram
2 GiB
Some drivers failed to bind
Error binding driver 'simple_bus': -34387168
Some drivers failed to bind
Error binding driver 'simple_bus': -34387168

In v4.03.00.05 of the SDK we had to modify about 12 files to customize it to our board. We merged those changes into our v8.02.00.24 of the SDK as best we could. At a high level they were...

- Updated RAM timings

- Short circuited board detect to always return the same value

- Changed the PMIC to I2C bus 1 from bus 0

Are there any large changes between the two different versions of the SDK which we may need to pay special attention to? Are there any tools which may help us debug what is happening with u-boot? Currently we are debugging with lots of "puts()" entries to see how far through u-boot we are getting.

Thanks,

Tim

  • After writing this post I did see this dump during u-boot if it is of any help.

    U-Boot SPL 2021.01-00001-g6048603-dirty (Oct 10 2022 - 20:33:15 -0400)
    TIMT-DEBUG count is 5
    Trying to boot from MMC1
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    TIMT-DEBUG device 0 looks good
    
    
    U-Boot 2021.01-00001-g6048603-dirty TT (Oct 10 2022 - 20:33:15 -0400)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  After dram
    2 GiB
    TIMT-DEBUG - inside power_init_board
    TIMT-DEBUG - before init call
    TIMT-DEBUG - rc after init
    NAND:  0 MiB
    MMC:
    Loading Environment from FAT... TIMT leaving initr_env
    TIMT inside initr_secondary_cpu
    TIMT leaving initr_secondary_cpu
    TIMT inside stdio_add_devices
    TIMT leaving stdio_add_devices
    TIMT leaving initr_jumptable
    TIMT inside console_init_r
    TIMT leaving console_init_r
    TIMT Leaving interrupt_init
    Net:   No ethernet found.
    Hit any key to stop autoboot:  0
    data abort
    pc : [<fff6a374>]          lr : [<fff6ab41>]
    reloc pc : [<80814374>]    lr : [<80814b41>]
    sp : fdf34898  ip : 00000000     fp : fffc5968
    r10: 00000018  r9 : fdf45ec0     r8 : fdf47ac8
    r7 : 00000010  r6 : fdf47aa8     r5 : 00000011  r4 : fffc5968
    r3 : fdf47a80  r2 : 00000000     r1 : 00000020  r0 : 6e766564
    Flags: nzcv  IRQs off  FIQs off  Mode SVC_32 (T)
    Code: e7d1 2201 e7cf 68f5 (60c5) 60a8
    Resetting CPU ...
    
    resetting ...
    

  • Hello Tim,
    Out of many SPL/u-boot changes from SDK 4.x to SDK 8.x, additional SPL/u-boot drivers move onto Driver Model (DM) comparing SDK 4.x vs SDK 8.x, and specifically you may want to review the previous board porting work done on SDK 4.x.
    There's an general u-boot board porting guide for your reference:
    software-dl.ti.com/.../U-Boot.html
    If you have JTAG debugger access on your board, it is helpful to load u-boot to pinpoint the exception as noted in your last log.
    Best,
    -Hong