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.

UBL + u-boot from IPNC_RDK V5 hangs

Hi ,

I am facing problem problem in booting custom board based which is made keeping Appro DM365 IPNC board as referance.

I have changed UBL for DM365 IPNC board(as Appro board used UART1 and custom board has UART0 as debug port). And it seems UBL is booting fine but it gets stuck at the end and u-boot doesnt boot,

here is a log for the same

DM36x initialization passed!
TI UBL Base Version: 1.50
Boot Loader BootMode = NAND
Starting NAND Copy...
Valid magicnum, 0xA1ACED66, found in block 0x00000020.
DBG:Nandboot:Gentrypoint:0x81080000Boot Mode Task Completed

IPNC UBL Version: 2.2.0
Platform: DM365-297

Reset RTC Fail..

UBL Executed Sucessfully

Jumping to entry point at 0x81080000 --> Hangs hereCan someone please suggest where should i look to solve this error ?

What might cause u-boot to not boot afer UBL ?

Should i look into u-boot code or UBL code for the same ? Which part of the code ?

Thank you,

Regards,

Ankur

  • Hi,

    • can you share your bot args?
    • Where is your kernel Image sitting? Is it sitting at 0x81080000? 
    • If not change the boot arg. accordingly so that uboot can find kernelImage without any problem .
  • Hi Ravikiran,

    Thank you for reply,

    • I think u-boot image is sitting at 0x81080000, i will check it once again.
    • I am expecting u-boot to boot after UBL is executed.
    • In my view, after UBL boots , U-boot is expected and after u-boot boots kernel boot args comes into picture, let me know if i am wrong.
    • I think there is something wrong in either UBL or u-boot because of that u-boot is not booting.

    Thank you,

    Regards,

    Ankur

  • Ankur Tank,

    I think I mis interpreted the issue. actually I read  it as kernel hang, instead of uboot hang. sorry for the inconvenience caused.

    Please go through the dm36x software developer guide if you have one. (available for download from TI web also.). Flashing procedure is explained in that user guide. Also make sure that, u-boot is sitting at correct location.

  • Hi Ravikiran,

    Thank you for reply,

    I too thought that you misinterpreted the issue. No problem.

    I am using UART boot mode to flash the UBL and u-boot.

    using below command,

    sfh_DM36x.exe -nandflash -p "COM1" ubl_297arm_270ddr_ipnc_dm365.bin u-boot-1.3.4-dm365_ipnc.bin

    How do i check if u-boot is sitting at correct position or not ? Any pointers/indicators ?

    Thank you,

    Regards,

    Ankur

  • Hi Ankur,

    If you are using sfh_DM36x.exe, You have to blindly believe the tool !.   This can happen due to mismatch in versions b/w tool/UBL/UBOOT.  confirm on this.

    Next thing is, instead of using sfh_DM36x.exe tool, we can use ccs to flash this binaries. Here you have little more exposure on things how it is done.  IPNC user guide should tell you the flash procedures using CCS.

  • Hi Ravikiran,

    Finally i got it working.

    Problem was as follows,
    I was using IPNC_DM365 UBL. That UBL source code was modified by Appro as required in their board.
    There is a function NANDBOOT_copy() in the nandboot.c file, this function copies the u-boot source code to RAM. And then UBL passes control to u-boot.

    sfh_DM36x.exe flashes u-boot starting from block 25 of the NAND.

    But Appro board has diganostic utility also in the NAND, they use SD_Card flashing mechanism to flash UBL,uboot, diagnosis utility***
    the place where u-boot was copied in my case was in block 25 of the NAND and place where UBL  NANDBOOT_copy() function copying it from NAND was 8. So after copying u-boot from NAND to RAM and passing control to it, u-boot was not booting because it was not copied properly.

    I changed start block and end block of uboot to what is sfh_DM365.exe is flashing at.
    i.e. i used following defines in the NANDBOOT_copy() function.
    DEVICE_NAND_UBL_SEARCH_START_BLOCK     (25)
    DEVICE_NAND_UBL_SEARCH_END_BLOCK       (50)

    And now my UBL could jump to u-boot entry and executes it

    There was minor problem I faced after that, which others might also face if they are facing this kind of problem.

    I am using dm365_ipnc uboot code for custom board, I changed configuration of UART1 to UART0 in include/configs/davinci_dm365_ipnc.h file
    After that u-boot executed fine but console was showing all junk characters instead of proper messages. I could confirm that uboot is executing fine by glowing LED connected to GPIO.
    I was almost sure that junk characters in console is because of baudrate mismatch. but baudrate what i had set in davinci_dm365_ipnc.h was proper.
    Later I  found out that in serial driver file based on the IPNC_DM365 compiler switch different clock was being set.
    I changed that back to what TI Evm board used, and now u-boot works fine and it displays proper strings on console.

    ***In IPNC_RDK_V5 SDCard flashing is not supported, Appro suggests to flash V3 and then from uboot they suggest to flash the V5 UBL, U-boot & diagnosis.

    Regards,
    Ankur