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.

AM62A7: Question related to u-boot falcon mode and tiboot3.bin

Part Number: AM62A7

Dear Ti experts,

I'm following this link to try out the falcon mode on the am62a7 evm board. The psdk version is 08.06.

Everything seems to be fine, but when I boot the board there is nothing printed via UART.

Then I found that the tiboot3.bin I built is much smaller than the one provided in the prebuilt-images directory(191kB to 352KB).

For building this binary I was referring to  this link, and only modifications in 0001-ti-k3-am62x_evm-Enable-demo-R5-SPL-to-Linux-Kernel-b.patch are manually applied to am62ax files.

Could you please provide me with some support? I think it's important to make sure that the initial build is correct.

Regards,

Huang Jingjie

  • Hi, 

    This FAQ has documented step-by-step instructions to Falcon boot on 8.6 SDK. Please refer to it and let me know if you have any questions.

    Link: (4) [FAQ] AM625: How to boot from R5 U-Boot SPL directly into the Linux Kernel, skipping A53 SPL and A53 U-Boot (Falcon Mode) - Processors forum - Processors - TI E2E support forums

    Regards,
    Aparna

  • Hi Aparna,

    Thanks for the reply. This link is exactly the one I was referring to.

    I figured out that by using the tiboot3.bin (actually tiboot3-am62ax-hs-fs-evm.bin) generated by make u-boot sysfw-image, the falcon boot worked.

    And I have another question: Current falcon approach seems to affect the OTA functionality, can you provide some hint for developing a workaround?

    Regards,

    Huang Jingjie

  • I figured out that by using the tiboot3.bin (actually tiboot3-am62ax-hs-fs-evm.bin) generated by make u-boot sysfw-image, the falcon boot worked.

    So no more help needed on this aspect?

    And I have another question: Current falcon approach seems to affect the OTA functionality, can you provide some hint for developing a workaround?

    What are you using for OTA?

    Regards, Andreas

  • Hi Andreas,

    Thank you for the reply, and let me explain the reason.

    The reason for us to try falcon is that we want to cut down boot time, so that customer requirement can be fulfilled.

    On the other hand, the requirements for this implementation also include the ability to OTA. If by using falcon boot the board can no longer be upgraded by OTA, we then have to choose other approaches. We'll be appreciated if you could provide some tips on reducing boot time.

    Regards,

    Huang Jingjie

  • Sorry I misread the question in the last reply.

    Our current approach is relying on the Android Verified Boot. So without u-boot we cannot use the env "ab_select <env_name> <device> <part>" to swap the boot region.

    My understanding for falcon mode is that, as tiboot3 is fixed to access the atf-tee-dm-kernel-fdt.bin, OTA can be achieved by updating this file. But it would be hard to recover if the Image within this bin is broken.

  • The reason for us to try falcon is that we want to cut down boot time, so that customer requirement can be fulfilled.

    Using Falcon boot mode, does this bring the boot time to an acceptable level? Or are you looking for additional optimizations?

    My understanding for falcon mode is that, as tiboot3 is fixed to access the atf-tee-dm-kernel-fdt.bin, OTA can be achieved by updating this file. But it would be hard to recover if the Image within this bin is broken.

    Perhaps you could add another custom layer of  verification to make sure the new OTA image got written correctly. But it's difficult to implement an OTA mechanism that is 100% bullet proof.

    Perhaps those three projects below could be another option? I've not used them but they look like available in open source form. Something you should look into more closely.

    https://rauc.io/

    https://swupdate.org/

    https://mender.io/

    Regards, Andreas

  • Hi Andreas,

    Our previous project on 8.6 has the best result of 5.8s end2end boot time, which starts from turning on the ECU and ends with screen showing video. The desired boot time would be within 5s. Recently we are migrating to 9.1, so we haven't done much about measuring and analyzing the time cost for falcon boot yet.

    Since the critiria includes many parts and I don't think falcon boot itself can save us that much time, any suggestion for u-boot and kernel optimization would be useful. 

    For OTA I'm thinking if A/B region switch logic can be added to ATF. Unfortunately we have zero experience on developing ATF, thus can't judge whether the idea is doable or not.

    Regards,

    Huang Jingjie

  • Since the critiria includes many parts and I don't think falcon boot itself can save us that much time, any suggestion for u-boot and kernel optimization would be useful. 

    Please have a look at https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1307243/sk-am62a-lp-boot-time-less-than-5-sec to see if that helps.

    Also what is your boot media? eMMC and OSPI are usually the fastest, but you would want to double-check that they are operating at peak performance/throughput (like by probing the clock signals during boot). For example, OSPI you want to make sure you use "PHY Mode", and for eMMC you want to make sure you use one of the high frequency modes.

    Regards, Andreas