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.

EVMK2EX: Procedure to build uboot image and load it from tftp server for ethernet boot mode for EVMK2EX device

Part Number: EVMK2EX

Hi,

I am using Keystone 2 66AK2Ex dev board and trying to run u-boot from a TFTP server through ethernet boot mode.

I tried the method described in the below link using the first UART bin and second stage binary present in the git repository for ethernet bootmode:

http://processors.wiki.ti.com/index.php/KeystoneII_Boot_Examples#Running_Ethernet_examples

I could see that the bootp packet was sent by the device and it could tftp the second stage binary. I also saw that the boot completed and I saw the below messages repeatedly on the serial port.

Core 0 standing by....
Core 1 standing by....
Core 2 standing by....
Core 3 standing by....

So, in order to boot u-boot via TFTP, what exactly is the procedure and from where should I get or build the uboot image for K2E EVM to boot from ethernet mode?
Should the u-boot image be placed in tftp server instead of ethernet second stage binary taken from above link git repository so that after booting from UART, the device will tftp the uboot and boot up?
I tried placing the uboot.img taken from the prebuilt images directory for the Keystone Processor SDK and did the above method but the device could not load u boot.

Can you please summarize the steps about from where and how I can build the uboot image for Keystone2 66AK2Ex dev board for ethernet boot mode and what are the exact steps to load it from tftp server?  Should a special uboot image be built for ethernet boot mode? If so, how it is to be built?

I could find the steps to build uboot image for ethernet boot for K2H devices in below link but I am little confused on the procedure for K2E devices.

http://processors.wiki.ti.com/index.php/Booting_uboot_on_K2H_over_ethernet

Can you please help?

Thanks,

Ashwini

  • Hi Ashwini,

    I've forwarded this to the software experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Ashwini,

    Have you downloaded the package from the git location here:

    If you download the package, you will see that there is a setup file that requires you to point to your uboot binary installation and creates the boot image for you to use with a TFTP server.

    On K2E devices, there is errata associated with ethernet boot which prevents the device to directly boot of ethernet. Refer to KeyStoneII.BTS_errata_advisory.25 in K2E device errata here The example included in the path examples/k2e/eth/multistage is an example of how to apply the fix to the Ethernet ROM code and PHY on the K2E EVM.  You can build the first stage for UART or I2C and then configure the EVM in UART boot mode. When the device comes up and you see ping character  "C" on the UART load the first stage using an XMODEM transfer  and have your uboot image in the TFTP server location.

    When the first stage boot is transferred, the work around is applied and the device re-enters the BOOTROM in ethernet boot mode and should be able to boot the uboot app.

    I recommend that you try the multi-stage boot example in the package to understand the process. We have provided detailed steps of how to set it up in the running ethernet examples. HEre is a screenshot :

    Hope this helps.

    Regards,

    Rahul

  • Thanks Rahul.
    I am trying to build the u-boot image from the downloaded package from the git.
    As per the link, for linux env, it says:
    Set the path to TI ARM compiler (ARM_COMPILER_FOLDER) and the platform development package(PDK_PACKAGES) and optionally to the uboot source directory.

    The path for ARM_COMPILER_FOLDER is the path of gcc arm compiler after downloading CCS, right?
    I found it as - $HOME/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-4_9-2015q3

    So, the UBOOT_DIR should be set as uboot source files path after installing MCSDK?

    What is the PDK package? I have installed only the MCSDK for Keystone. Should I install PDK package too? If so, where can I get it for Keystone 2 66AK2Ex ?

    Regards,
    Ashwini
  • You can ignore the PDK_PACKAGES but you will need the TI ARM compiler which comes as part of the Code composer studio environment. It is the ti-cgt-arm_xx compiler not the GCC one.

    MCSDK 3.x has been rebranded to Processor SDK Linux with many improvements.

    Regards,
    Rahul
  • Thanks Rahul.
    Also, what is the path for UBOOT_DIR? I built Uboot in MCSDK, but the makefile in the git repository is trying to access "uboot.hex" from /uboot directory. So, what exactly should I give as the path for uboot_dir?
  • In your uboot installation and build, there will be directory in which your uboot.bin and uboot files are generated, that should be the location specified in uboot_dir. If I remember this right it is in the root directory of u-boot.

    Regards,
    Rahul
  • Hi Rahul,

    I just gave "make u-boot-spl" as given in point no. 7 in below link:
    processors.wiki.ti.com/.../Processor_SDK_Linux_Getting_Started_Guide

    I saw u-boot.bin and other files in SDK u-boot path
    ashwini@ashwini-KJ169AA-ABA-a6332f:~/ti-processor-sdk-linux-rt-k2e-evm-03.03.00.04/board-support/u-boot-2016.05+gitAUTOINC+4db46a6bbd-g4db46a6bbd$ pwd
    /home/ashwini/ti-processor-sdk-linux-rt-k2e-evm-03.03.00.04/board-support/u-boot-2016.05+gitAUTOINC+4db46a6bbd-g4db46a6bbd

    ashwini@ashwini-KJ169AA-ABA-a6332f:~/ti-processor-sdk-linux-rt-k2e-evm-03.03.00.04/board-support/u-boot-2016.05+gitAUTOINC+4db46a6bbd-g4db46a6bbd$ ls
    api common doc fs lib Makefile README System.map u-boot u-boot-dtb.bin u-boot.map u-boot.sym
    arch config.mk drivers include Licenses MLO scripts test u-boot.bin u-boot-dtb.img u-boot-nodtb.bin
    board configs dts Kbuild MAINTAINERS net snapshot.commit TISDK-README u-boot.cfg u-boot.img u-boot-spi.gph
    cmd disk examples Kconfig MAKEALL post spl tools u-boot.dtb u-boot.lds u-boot.srec

    So, if I give uboot_dir as the path - "/home/ashwini/ti-processor-sdk-linux-rt-k2e-evm-03.03.00.04/board-support/u-boot-2016.05+gitAUTOINC+4db46a6bbd-g4db46a6bbd" where all uboot.bin files are located, it still does not have the "$(UBOOT_DIR)/uboot " that it is trying to copy to ./uboot.out( in makefile in above git repository). Should I rename the files u-boot.bin or u-boot.img to "uboot" ?

    Also, in the makefile in git repository, it is trying to execute "$(ARM_BIN_FOLDER)/armhex" but I am not seeing that in ARM_BIN_FOLDER. So, will it not result in error?

    ashwini@ashwini-KJ169AA-ABA-a6332f:~/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/bin$ ls -lrt
    total 157804
    -rwxrwxr-x 1 ashwini ashwini 3305022 Jan 20 16:27 ap6x
    -rwxrwxr-x 1 ashwini ashwini 49276652 Jan 20 16:27 acpll6x
    -rwxrwxr-x 1 ashwini ashwini 6104822 Jan 20 16:27 acp6x
    -rwxrwxr-x 1 ashwini ashwini 2581736 Jan 20 16:27 strip6x
    -rwxrwxr-x 1 ashwini ashwini 3262371 Jan 20 16:27 prelink6x
    -rwxrwxr-x 1 ashwini ashwini 3038190 Jan 20 16:27 pdd6x
    -rwxrwxr-x 1 ashwini ashwini 9974020 Jan 20 16:27 opt6x
    -rwxrwxr-x 1 ashwini ashwini 6021848 Jan 20 16:27 omps2s6x
    -rwxrwxr-x 1 ashwini ashwini 3165890 Jan 20 16:27 ofd6x
    -rwxrwxr-x 1 ashwini ashwini 2622416 Jan 20 16:27 nm6x
    -rwxrwxr-x 1 ashwini ashwini 5828560 Jan 20 16:27 lnk6x
    -rwxrwxr-x 1 ashwini ashwini 3685197 Jan 20 16:27 ilk6x
    -rwxrwxr-x 1 ashwini ashwini 2787266 Jan 20 16:27 embed6x
    -rwxrwxr-x 1 ashwini ashwini 3192703 Jan 20 16:27 dis6x
    -rwxrwxr-x 1 ashwini ashwini 1730883 Jan 20 16:27 dem6x
    -rwxrwxr-x 1 ashwini ashwini 3668864 Jan 20 16:27 cmp6x
    -rwxrwxr-x 1 ashwini ashwini 1719362 Jan 20 16:27 clt6x
    -rwxrwxr-x 1 ashwini ashwini 1019836 Jan 20 16:27 clist6x
    -rwxrwxr-x 1 ashwini ashwini 3374488 Jan 20 16:27 cl6x
    -rwxrwxr-x 1 ashwini ashwini 1762755 Jan 20 16:27 ci6x
    -rwxrwxr-x 1 ashwini ashwini 7883390 Jan 20 16:27 cg6x3
    -rwxrwxr-x 1 ashwini ashwini 6191681 Jan 20 16:27 cg6x
    -rwxrwxr-x 1 ashwini ashwini 3845976 Jan 20 16:27 asm6x
    -rwxrwxr-x 1 ashwini ashwini 2447393 Jan 20 16:27 ar6x
    -rwxrwxr-x 1 ashwini ashwini 3665888 Jan 20 16:27 ap6x3
    -rwxrwxr-x 1 ashwini ashwini 6136677 Jan 20 16:27 acpia6x
    -rwxrwxr-x 1 ashwini ashwini 2593496 Jan 20 16:27 abs6x
    -rwxrwxr-x 1 ashwini ashwini 2593156 Jan 20 16:27 xref6x
    -rwxrwxr-x 1 ashwini ashwini 2378305 Jan 20 16:27 pprof6x
    -rwxrwxr-x 1 ashwini ashwini 2720647 Jan 20 16:27 libinfo6x
    -rwxrwxr-x 1 ashwini ashwini 2956501 Jan 20 16:27 hex6x

    Can you please help?

    Thanks,
    Ashwini
  • Hi Rahul,

    I just needed procedure to build proper uboot image to load through TFTP server on Keystone, as the prebuilt uboot image in MCSDK didn't work.

    Anticipating your reply.

    Regards,
    Ashwini