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: Booting u-boot from a TFTP setver through ethernet bootmode

Part Number: EVMK2EX

Hi,

I tried booting the Keystone 2 66AK2Ex dev board by ethernet bootmode via TFTP server and built the uboot binary from MCSDK for ethernet bootmode.

I used the first image from Keystone 2 boot examples from link below and booted from UART first(since there is an errata) and then the device switched to ethernet bootmode and the uboot image was TFTPd suucessfully.

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

But after that, the uboot is stuck and I am not seeing any messages on serial port console. 

I booted the uboot from UART bootmode using uboot uart binary but found the same issue.

I have got reply from TI SW expert that he too could reproduce this issue and that this issue was not found in older MCSDK releases:

https://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/600663/2209187#2209187

Can you please provide me the older MCSDK version wherein the uboot worked fine? I need a proper uboot image to boot up Keystone 2 device from ethernet bootmode and its urgent.

Please help.

  • Part Number: EVMK2EX

    Hi,

    I tried using the steps in link below to boot u-boot from TFTP server:

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

    I downloaded the package as given in this link below and built uboot binary for ethernet mode:

    processors.wiki.ti.com/.../KeystoneII_Boot_Examples

    After I built uboot binary, I saw uboot_eth.bin generated in below folder:

    boot_examples_1/examples/k2e/uboot/bin/

    I used the first image to boot K2E device through UART bootmode(as there is an errata for K2E device as mentioned in the link above) and then placed the above uboot_eth.bin in tftp server.

    The K2E device sent bootp packet and the uboot_eth.bin image is also sent via tftp. But, I am not seeing Uboot loading on Keystone. There are no msgs displayed on serial console and it is blank.

    Can you please tell me if I am using proper uboot binary or should I build it in a different way?

    Regards,

    Ashwini

  • Hi,

    I've notified the sw team. Their feedback will be posted here.

    Best Regards,
    Yordan
  • Hi,

    Can you please tell me if I am missing something.
  • Ashwini,

    I am able to reproduce this issue at my end. I am able to boot the second stage example that is part for the Keystone II boot examples where it boots and shows UART outputs but when Uboot transfers over tftp it is unable to send logs to the serial console. The uboot has booted as the PC is in the region where memory map resides but there is code in uboot which hangs after the second stage boot. This was working with older version of MCSDK when we released the package but the newer u-boots seem to be hung.

    Have you tried to load the symbols and see what function in uboot is not executing? I believe the boot image for ethernet boot of uboot is correct as the uboot is loading on the SOC and wireshark shows TFTP transfer of the full binary. Have you tested this using the first stage from I2C? 

    Regards,
    Rahul

  • Hi Rahul,

    Thanks a lot for the reply.
    Yes, even I am able to boot the second stage example successfully. I am seeing the issue only on Uboot image.

    Can you please let me know where can I download older versions of MCSDK where uboot was working, so that I can use it?
  • Hi Rahul,

    I also tried booting up uboot from UART bootmode using uboot_uart.bin by sending the image through serial port. Even through this image, I saw the same issue, i.e., uboot hung.

    It would be helpful if you let me know the MCSDK version where in the uboot binary was tested and worked properly.

    Thanks,
    Ashwini
  • Ashwini,

    I am trying to look through my notes to find the version number but this was done in 2014 and published in 1Q15. This aligns with MCSDK 3.12 and MCSDK 3.1.3 release.

    Could you clarify why you need ethernet boot of u-boot even if the silicon has an errata associated with it? One issue that I am wondering is u-boot uses boot monitor code to perform some supervisor level configuration so without the boot monitor will it be able to perform these supervisor functions. Earlier versions of MCSDK had 2 stage uboot as you can see from here:
    processors.wiki.ti.com/.../MCSDK_UG_Chapter_Exploring

    also, one other thing that I looked at is that the uboot entry point is configured as 0x0c001000 while the Ethernet boot loads the image starting 0x0c000000 so you need to concatenate 4k zeros to the binary as shown here as shown here:

    dd if=/dev/zero of=4k_zeros bs=4096 count=1
    > cat 4k_zeros u-boot.bin > u-boot.uart

    Refer: processors.wiki.ti.com/.../MCSDK_UG_Chapter_Exploring


    Please give this a try this with uart boot as described here and you can then use the same image for TFTP boot over ethernet.


    Regards,
    Rahul

  • Hi Rahul,
    Thanks. We needed K2E board to be booted up by another board. So, right now, we need to use ethernet bootmode on K2E.
    I tried the older MCSDK version 3.1.2 (software-dl.ti.com/.../index_FDS.html) and still saw that when Uboot image was TFTPd successfully, I didn't see the Uboot messages coming on serial port.

    But, I found that with both the newer TI-Processor SDK for K2E(software-dl.ti.com/.../index_FDS.html) and older MCSDK 3.1.2 version, once I send the Keystone 2 boot examples first image through UART to apply the fix for the silicon errata, K2E sends bootp and tftp request and gets the Uboot image and I am not able to see any Uboot messages on console. But, after that, if I set ethernet bootmode on BMC and do a reboot, I am seeing that Uboot image is again TFTPd and I am able to see Uboot messages on console.
    So, is this how it is supposed to work? In the Keystone 2 boot examples, the device itself switched to ethernet bootmode after applying UART first image fix and booted up and displayed messages on console and I did not have to change the bootmode to ethernet bootmode and reboot.

    Can't I get the Uboot messages on serial port without changing the bootmode on BMC and rebooting the board?

    Thanks,
    Ashwini