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.

NAND Boot with Processor SDK on custom 66AK2E05 board

Expert 1010 points
Other Parts Discussed in Thread: 66AK2E05

Hi,

We have one custom 66AK2E05 board on which I flashed the whole Linux Image with the last version of MCSDK. I want now to migrate from MCSDK to Processor SDK but I am stucked at the U-Boot on NAND part. As soon as I set "Free Run" in CCS (see step 8 below), I cannot type anything on the u-boot prompt and cannot go further.

What did I do wrong?

I followed this workflow for MCSDK which worked:

1) Flash the EVM Image on board with program_evm.js

2) Compile the NAND U-Boot Image on host

$ make k2e_evm_config
$ make u-boot-nand.gph

3)  Connect the TI Debug Probe XDS200 with JTAG Interface to the board and start the board with U-Boot for UART and stop the autoboot by pressing any key before end of countdown,

4) Start CCS on the host right click on the Target Configuration file for 66AK2E05 with XDS200 probe and select “Launch Selected Configuration”

5) Right click on “Texas Instruments XDS2xx USB Debug Probe_0/CortexA15_0 core” at the debug window and select “Connect Target”,

6) Once target connection is successful, suspend Target if necessary (Select Run --> Suspend from the top level menu)

7) Choose Tools --> Load Memory option from the top level menu. At the Load Memory Window, choose the u-boot binary file for NAND boot (previously compile U-Boot-nand.gph) through “Browse” button and click “Next” button. In the next window, enter start address as 0x87000000 (DDR address), choose Type-size “32 bits” and click “Finish” button.

8) From the “Run” top level menu, , select “Free Run”.

9) Under u-boot prompt on the target, enter the following commands:

$ nand ecclayout set 1

$ nand erase.part bootloader

$ nand write 0x87000000 bootloader 0x60000

$ nand ecclayout set 0

10) Shutdown board and set boot mode to NAND

11) Power up the board

Steps 1 to 7 seem to work with Processor SDK with the following changes:

  • I used u-boot.bin file from the /boad-Support/u-boot-* Folder to start with UART
  • I compiled the MLO Image (u-boot for NAND) with
$ make k2e_evm_defconfig
$ make MLO

  

  • Hi,

    I've forwarded this to the design team. Feedback will be posted here.

    Best Regards,
    Yordan
  • Do you have EVM board with you ?
    Let me try to update the Processor SDK u-boot into K2E board and confirm you.
  • Hi, dpa,

    I am confused with your steps. When using proc sdk images, do you use ccs or uart to bring up the u-boot? or you using the same steps to bring up MCSDK and Proc SDK? Did you reset teh u-boot env variables? Code has been changed. Please refer to Migration Guide for the u-boot changes. You can also refer to thread, e2e.ti.com/.../1997550
    for more info.


    Rex
  • Thanks all for you answers.

    I have also EVM board but I did not try with it.

    @Rex Chang:

    I used uart to bring up U-Boot after flashing default image with processor sdk (program_evm.js). For uart I used the u-boot.bin file from the /boad-Support/u-boot-* folder. It seems to work well, environment variable corresponds to what I expect from processor SDK (for example name_mon from skern-<soc>-evm.bin to skern-<soc>.bin like described in Migration guide). I tried to follow exactly the same process for Processor SDK as for MCSDK but with new compiled files. Below the steps that I succeded to make with Processor SDK:

    1) Flash the EVM Image on board with program_evm.js

    2) Compile the NAND U-Boot Image on host

    $ make k2e_evm_defconfig
    
    $ make MLO

    3)  Connect the TI Debug Probe XDS200 with JTAG Interface to the board and start the board with U-Boot for UART (u-boot.bin from Processor SDK, u-boot Folder) and stop the autoboot by pressing any key before end of countdown,

    4) Start CCS on the host right click on the Target Configuration file for 66AK2E05 with XDS200 probe and select “Launch Selected Configuration”

    5) Right click on “Texas Instruments XDS2xx USB Debug Probe_0/CortexA15_0 core” at the debug window and select “Connect Target”,

    6) Once target connection is successful, suspend Target if necessary (Select Run --> Suspend from the top level menu)

    7) Choose Tools --> Load Memory option from the top level menu. At the Load Memory Window, choose the MLO file for NAND boot (previously compiled) through “Browse” button, choose "Binary" (TI RAW Data does not work)  and click “Next” button. In the next window, enter start address as 0x87000000 (DDR address), and click “Finish” button.

    8) From the “Run” top level menu, , select “Free Run”.

    9) Under u-boot prompt on the target, I cannot enter any command. It is frozen.

  • Hi, dpa,

    Before you load memory of MLO binary, record the address in PC register. After download, the PC address will be changed to 0x87000000. You need to restore the original PC address at where you pause the system. then resume.

    If this solves the problem, please close this thread.

    Rex
  • In addition to Rex suggestions,
    Instead of loading the u-boot using CCS, try to load the u-boot into RAM via network.
    You can try to get the latest processor SDK's u-boot via network (tftp) then you can update the u-boot.

    u-boot $ setenv ipaddr 10.100.1.5
    u-boot $ setenv serverip 10.100.1.50 (Linux host PC IP address where you have u-boot-nand.gph file with TFTP setup)
    u-boot $ tftpboot 0x87000000 u-boot-nand-k2e-evm.gph
    u-boot $ nand ecclayout set 1
    u-boot $ nand erase.part bootloader
    u-boot $ nand write 0x87000000 bootloader 0x60000
    u-boot $ nand ecclayout set 0

    If any issues, please let us know.
  • Thanks Rex Chang,

    I did no tnotice that when loading binary instead of TI Raw Data that it is setting PC register. It works now.

  • Just want to add a comment on Titus' command to burn the NAND. the "nand ecclayout" command does not exist in ProcSDK uboot any more. Burning from ProcSDK, just simply execute "run burn_uboot_nand", it takes care of it.

  • Thanks Rex Chang for this comment.
    It is true. I did not mention that I am not using this command with Processor SDK since it is not existing anymore.