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.

TDA4VM: How to optimize boot time on A72

Part Number: TDA4VM
Other Parts Discussed in Thread: UNIFLASH, SYSBIOS

Hi experts,

I'm working on a custom board of TDA4VM and the boot flow is SBL -> SPL(Main A72) -> U-Boot - > Linux. 

Due to product demand of AVM, linux boot time need to be reduced to 4s and now is about 15s.

I find that it takes a long time(about 6s) for A72 to communicate with R5fs and DSPs. My question is how to optimize it or is there any reference design? Log is attached.

BTW, I'm using SDK 7.2.

Thanks.

2046.log
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@buildroot:~#
root@buildroot:~# reboot
[ OK ] Stopped target Multi-User System.
[ Stopping Serial Getty on ttyS2...
Stopping OpenSSH server daemon...
[ OK ] Stopped D-Bus System Message Bus.
[ OK ] Stopped System Logging Service.
[ OK ] Stopped Serial Getty on ttyS2.
[ OK ] Stopped OpenSSH server daemon.
[ OK ] Removed slice system-serial\x2dgetty.slice.
[ OK ] Stopped target Basic System.
[ OK ] Stopped target Network.
[ OK ] Stopped target Paths.
[ OK ] Stopped Dispatch Password ��ts to Console Directory Watch.
[ OK ] Stopped Forward Password R��uests to Wall Directory Watch.
[ OK ] Stopped target Slices.
[ OK ] Stopped target Sockets.
[ OK ] Closed D-Bus System Message Bus Socket.
[ OK ] Stopped target System Initialization.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi,

    The time you measure is with SD boot, correct?

    SDK7.2 supports SD boot for Linux and OSPI and eMMC boot are broken due to an architectural change in the SW which when in. These bootmodes are supported as a part of SDK7.3 again.

    1. Will it be possible for you to migrate to SDK7.3? Booting from a faster boot media will help your use case finally.

    2. Are the timing requirements strictly related to Linux boot to promp or also for remote core firmwares being up?

    3. What features are you looking for in Linux? We can trim the DTB to remove modules that are not needed.

    Regards,

    Karan

  • Hi Karan,

    Time is measured with OSPI boot, SBL/SPL/U-Boot are in OSPI Flash and kernel is in eMMC. For your question,

    1. Since our product is going to SOP soon, we will not follow SDK7.3. I think our boot media is correct now.

    2. Our application relys on remote cores being up. 

    3. Unused peripherals are already deleted in dts.

    I think we can get most benefit by optimizing time for A72 communicating with other cores, since it takes really a long time.

    Thanks.

  • Hi Jianhyu huo,


    Our application relys on remote cores being up. 

    What are all the remote cores that you want to load?

    Can you add more details on your end use case?

    Best Regards,
    Keerthy

  • Hi Keerthy,

    We are making a project of valet parking where DSPs are used for CNN and other CV algorithms, R5Fs are used for networking, camera and some parallel tasks. So applications on A72 relys on them to speed up the calculation.

    Thanks.

  • Hi Jianyu huo,

    Can you please send the device tree you are using, preferably a patch on top of the SDK? I was able to use SBL to boot Kernel directly and launch the vision_apps use cases so that would give us some benefit in terms of boot time as we are skipping A72 SPL and A72 u-boot.

    I want to use the same stripped down version of the DTB as you, to get some more bump wrt to boot time.

    Regards,

    Karan

  • Hi Karan,

    Thank you for your information. I'm trying to let SBL boot Kernel directly, and patch of dts is attached. 

    Is there any updates on optimizing communications between A72 and other cores?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    diff --git a/board-support/linux-5.4.74+gitAUTOINC+9574bba32a-g9574bba32a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts b/board-support/linux-5.4.74+gitAUTOINC+9574bba32a-g9574bba32a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
    index d1a2eb415..006e5040a 100644
    --- a/board-support/linux-5.4.74+gitAUTOINC+9574bba32a-g9574bba32a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
    +++ b/board-support/linux-5.4.74+gitAUTOINC+9574bba32a-g9574bba32a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
    @@ -17,56 +17,56 @@
    bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
    };
    - gpio_keys: gpio-keys {
    - compatible = "gpio-keys";
    - autorepeat;
    - pinctrl-names = "default";
    - pinctrl-0 = <&sw10_button_pins_default &sw11_button_pins_default>;
    -
    - sw10: sw10 {
    - label = "GPIO Key USER1";
    - linux,code = <BTN_0>;
    - gpios = <&main_gpio0 0 GPIO_ACTIVE_LOW>;
    - };
    -
    - sw11: sw11 {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     

    Thanks

  • Hi Jianyu huo,

    With some modification to the DT and by using eMMC for File System and skipping u-boot from the boot flow. I am able to get to linux in ~11sec. With limited validation I can say vision_apps is functional. (ran app_tidl demo).

    Logs: (match global time stamps to get timing)

    mcu_uart.log
    Fullscreen
    1
    2
    SBL Revision: 01.00.10.00 (May 11 2021 - 15:57:27)
    [2021-05-13 04:30:26.819] TIFS ver: 21.1.1--v2021.01a (Terrific Lla
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    main_uart.log

    I will keep you posted on further development here.

    Regards,

    Karan

  • Hi Karan,

    We are also working on skipping u-boot. Waiting for your good news.

  • Hi Jianyu huo,

    The ~11s boot time I got was by skipping u-boot. I can send you patches on how to do that later today.

    Regards,

    Karan

  • Hi Jianyu huo,

    Not sure if you were able to get the combined optimized image from SBL (without u-boot). So sending patches. This will let you boot to prompt in ~11sec.

    Patch on Linux: 0001-baidu-fast-boot.patch

    Patch on PDK: 0001-combined-image-opt-Add-vision_apps-FWs-and-Linux-DTB.patch

    Logs as attached in this response: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/995417/tda4vm-how-to-optimize-boot-time-on-a72/3698226#3698226

    Regards,

    Karan

  • Hi Karan,

    Thank you for your updates, we will try your patch soon. 11s is a big step forward but there is still a long way to go.

    I think you will do further optimizations on communications between A72 and other cores, right?

    Thanks.

  • Hi Jianyu Hua,

    11s was with still a lot of non essential DT nodes still in. We can knock them off and then look at reduction of some prints from Kernel. That should save us some time again. Will keep you posted, let me know when you are able to consume these patches and are at the same baseline as me.

    Regards,

    Karan

  • Hi Jianyu Huo,

    Yes we are continuing to optimize the time. We are around 8.8S right now. Further optimizations will take more time.
    In the mean time can you feedback on the 11S patches? Are you able to get to what we are seeing?

    Karan will be sharing a patch to further reduce to 8.8 Seconds.

    Best Regards,
    Keerthy

  • Hi Jianyu Huo,

    Please use that patches attached here to get to 8.8s to Linux prompt.

    Also, do confirm when you are able to replicate these numbers on your side. These are with OSPI (boot) + eMMC (filesystem).

    Patches:

    Linux:

    6607.0001-baidu-fast-boot.patch

    0002-Make-loglevel-0-in-bootargs.patch

    0003-Trim-DT-further.patch

    PDK:

    0842.0001-combined-image-opt-Add-vision_apps-FWs-and-Linux-DTB.patch

    The commit messages are self explanatory, but let me know if you want more details.

    Regards,

    Karan

  • Hi ,

    I have a questions about your PDK patch: 0001-combined-image-opt-Add-vision_apps-FWs-and-Linux-DTB.patch

    To test  your patch, we should use "combined image" (sbl+app fws+atf+kernel+dtb)  ? How to get it?

  • Hi, Wenguang Qui,

    You can follow the section "Using the combined_appimage tooling to boot a HLOS+RTOS appimagein https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/07_03_00_07/exports/docs/pdk_jacinto_07_03_00_29/docs/userguide/jacinto/boot/boot_k3.html 

    Essentially how you were building the combined app with SPL, you need to apply the patch I send and then do the same.

    Regards,

    Karan

  • Hi, ,

    According to the guide you mentioned, I got a build error:

    ================================

    qiuwenguang@sixi:~/Projects/baidu/acu/sixi_sdk/ti/ti-processor-sdk-rtos-j721e-evm-07_02_00_06/pdk_jacinto_07_01_05_14/packages/ti/boot/sbl/tools/combined_appimage$ make BOARD=j721e_evm GCC_LINUX_ARM_PATH=/home/qiuwenguang/Projects/baidu/acu/sixi_sdk/ti/ti-processor-sdk-rtos-j721e-evm-07_02_00_06/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf


    make: *** No rule to make target '/home/qiuwenguang/Projects/baidu/acu/sixi_sdk/ti/ti-processor-sdk-rtos-j721e-evm-07_02_00_06/pdk_jacinto_07_01_05_14/packages/ti/binary/ipc_echo_testb/bin/j721e_evm/ipc_echo_testb_mcu1_0_release_strip.rprc', needed by '/home/qiuwenguang/Projects/baidu/acu/sixi_sdk/ti/ti-processor-sdk-rtos-j721e-evm-07_02_00_06/pdk_jacinto_07_01_05_14/packages/ti/boot/sbl/tools/combined_appimage/bin/j721e_evm/combined.appimage'. Stop.

    ================================

    The combined appimage is built from a number of RPRC files,  but I can not find them.

    Thank you.

  • Hi Keerthy,

    11s version is still under developing. My colleague Wenguang Qiu is working on it.

    Is there any updates on how to reduce communications between A72 and other cores, or is it feasible?

    I think that is more important, since we also have the ability to do some general optimization on linux, but communication optimization strongly relys on TI.

    So please give us more details about that if possible.

    Thanks.

  • Hi Wenguang,

    You have probably not built the SDK before running this command. You need to have the vision_apps and the pdk built before you run compile the combine image.

    Can you please take a look at the vision_apps user guide here https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/07_03_00_07/exports/docs/vision_apps/docs/user_guide/BUILD_INSTRUCTIONS.html to build the SDK?

    Regards,

    Karan

  • Hi 

    Actually,before running the command(compile combined image), I already had vision_apps and pdk built. but I still got the build error(no rprc files)

    you can check our build script.

    =======================

    case ${os_platform} in
    linux*aarch64)
        target_os=linux
        target_OS=LINUX
        target_platform=AARCH64

        _LINUX_A72=yes
        _QNX_A72=no
        _OS=Linux
        _EMULATION_MODE=no
        _TARGET_MODE=yes
        ;;
    function build_vision_apps() {
        cp -Rv modules/vision_apps/* ti/${ti_psdkra_version}/vision_apps/
        cd ti/${ti_psdkra_version}/vision_apps/
        if [ "${make_clean_flag}" != "q" ];then
            make vision_apps_clean
        fi
        make vision_apps -j16 BUILD_EMULATION_MODE=${_EMULATION_MODE} BUILD_TARGET_MODE=${_TARGET_MODE} \
                        BUILD_LINUX_A72=${_LINUX_A72} BUILD_QNX_A72=${_QNX_A72} BUILD_OS=${_OS} \
                        BUILD_CPU_MCU1_0=${_CPU_MCU1_0} BUILD_CPU_MCU3_0=${_CPU_MCU3_0} BUILD_CPU_MCU3_1=${_CPU_MCU3_1} \
                        BUILD_CONFORMANCE_TEST=${_CONFORMANCE_TEST} BUILD_TUTORIAL=${_TUTORIAL} PROFILE=${_PROFILE}
        cd -
    }
    function build_pdk() {
        cp -Rv modules/pdk/* ti/${ti_psdkra_version}/${pdk_version}/
        cd ti/${ti_psdkra_version}/vision_apps/
        if [ "${make_clean_flag}" != "q" ];then
            make pdk_clean
        fi
        make pdk -j16 BUILD_EMULATION_MODE=${_EMULATION_MODE} BUILD_TARGET_MODE=${_TARGET_MODE} \
                        BUILD_LINUX_A72=${_LINUX_A72} BUILD_QNX_A72=${_QNX_A72} BUILD_OS=${_OS} \
                        BUILD_CPU_MCU1_0=${_CPU_MCU1_0} BUILD_CPU_MCU3_0=${_CPU_MCU3_0} BUILD_CPU_MCU3_1=${_CPU_MCU3_1} \
                        BUILD_CONFORMANCE_TEST=${_CONFORMANCE_TEST} BUILD_TUTORIAL=${_TUTORIAL} PROFILE=${_PROFILE}
        cd -
    }

    =======================

    Thank you.

  • Hi Wenguang,

    The combined appimage is built from a number of RPRC files,  but I can not find them.

    The rprc files are not there in the SDK by default when you build the app. As a part of the combined image generation, the rprc files are generated by using the out2rprc utility. See makefile in the combined_appimage directory.

    Regards,

    Karan

  • Hi,

    make: *** No rule to make target '/home/qiuwenguang/Projects/baidu/acu/sixi_sdk/ti/ti-processor-sdk-rtos-j721e-evm-07_02_00_06/pdk_jacinto_07_01_05_14/packages/ti/binary/ipc_echo_testb/bin/j721e_evm/ipc_echo_testb_mcu1_0_release_strip.rprc', needed by '/home/qiuwenguang/Projects/baidu/acu/sixi_sdk/ti/ti-processor-sdk-rtos-j721e-evm-07_02_00_06/pdk_jacinto_07_01_05_14/packages/ti/boot/sbl/tools/combined_appimage/bin/j721e_evm/combined.appimage'. Stop.

    Do you have /home/qiuwenguang/Projects/baidu/acu/sixi_sdk/ti/ti-processor-sdk-rtos-j721e-evm-07_02_00_06/pdk_jacinto_07_01_05_14/packages/ti/binary/ipc_echo_testb/bin/j721e_evm/ipc_echo_testb_mcu1_0_release.xer5f file? This would be needed to create the .rprc.

    Regards,

    Karan

  • Hi ,

    After I modified the "IMG" path in config.mk, I can get "combined.appimage".

    How to flash it onto OSPI device?

    Thank you.

  • Hi Wenguang,

    You need to flash the:

    sbl_ospi_img_hlos_mcu1_0_release.tiimage at 0x0.

    tifs.bin at 0x80000

    combined.appimage at 0x100000

    You can use UNIFLASH to flash to the OSPI flash or I would recommend use u-boot to flash which will be much faster.

    Time is measured with OSPI boot, SBL/SPL/U-Boot are in OSPI Flash and kernel is in eMMC. For your question,

    You can also probably do the same way Jianyu Hua did as he has done this flashing to OSPI when reporting the baseline number.

    Regards,

    Karan

  • Hi, Karan,

       I take over this case now and I'm studying the history and documentation of this case. 

       I will try your solution about "11sec " , The size of combined.appimage  is 100M and our ospi size is 32M. 

       Could we boot the system with : 

       sbl_ospi_img_hlos_mcu1_0_release.tiimage(ospi) -> tifs.bin(ospi) -> combined.appimage(emmc) ?

  • Hi,

    The image which I built was 31MB. Are you using the latest set of patches?

       Could we boot the system with : 

       sbl_ospi_img_hlos_mcu1_0_release.tiimage(ospi) -> tifs.bin(ospi) -> combined.appimage(emmc) ?

    This would be a custom implementation not supported by the SBL combined image boot you are trying without u-boot.

    Without u-boot, all the remote core firmwares are now a part of the combined.appimage and are loaded by SBL. That is why the image is larger.

    The SBL will only initialize the boot media, the boot media will be the media from where the ROM code has picked up the SBL from. This in the this case is OSPI. So eMMC will not be initialized by default from SBL.

    Lets first see why the image you are building is larger than expected and then look for alternatives if needed.

    Regards,

    Karan

  • Hi, 

       You are right,  according  to the config.mk at ti-processor-sdk-rtos-j721e-evm-07_02_00_06/pdk_jacinto_07_01_05_14/packages/ti/boot/sbl/tools/combined_appimage ,  

     IMG_LIST ?= $(IMG1) $(IMG2) $(IMG3) $(IMG4) $(IMG5) $(IMG6) $(IMG7) $(IMG8) $(HLOS_IMGS)

    136 #IMG1 ?= mcu1_0,$(SDK_INSTALL_PATH)/targetfs/lib/firmware/pdk-ipc/ipc_echo_testb_mcu1_0_release_strip.xer5f
    137 #IMG2 ?= mcu2_0,$(VISION_APPS_FW_PATH)/R5F/SYSBIOS/release/vx_app_tirtos_linux_mcu2_0.out
    138 #IMG3 ?= mcu2_1,$(VISION_APPS_FW_PATH)/R5F/SYSBIOS/release/vx_app_tirtos_linux_mcu2_1.out
    139 #IMG4 ?= c66xdsp_1,$(VISION_APPS_FW_PATH)/C66/SYSBIOS/release/vx_app_tirtos_linux_c6x_1.out
    140 #IMG5 ?= c66xdsp_2,$(VISION_APPS_FW_PATH)/C66/SYSBIOS/release/vx_app_tirtos_linux_c6x_2.out
    141 #IMG6 ?= c7x_1,$(VISION_APPS_FW_PATH)/C71/SYSBIOS/release/vx_app_tirtos_linux_c7x_1.out

    So the combined.appimage is large.  

    Without u-boot, all the remote core firmwares are now a part of the combined.appimage and are loaded by SBL. That is why the image is larger.

    Is there any way to remove these part?  Since our ospi size is 32M and we need to store another data to the emmc,  so the avaliable size for combined.appimage is about 10M,  is there any solution about it?

    Regards

    Wang Hongjie

  • Hi,

    So to improve boot time, we removed the u-boot stage from the boot flow.

    What is your flash layout? Can you please help me understand that? How is the 32 MB getting use?

    Even for a 32 MB flash, the images I build should work, as the tiboot3.bin + tifs.bin + app is slightly less than 32MB. But again, this is on the margin.

    Regards,

    Karan

  • The following is our OSPI flash partition table,  in order to support FastBoot, corresponding adjustments should be made ,but the total size is 32G , and we need to support AB partition for OTA , so the avaliable space should be around 10G. 

    mtdparts=mtdparts=47040000.spi.0:512k(ospi.sbl),512k(ospi.tifs_a),512k(ospi.tifs_b),4m(ospi.mcufw_a),4m(ospi.mcufw_b),2m(ospi.atf_optee_a),2m(ospi.atf_optee_b),1m(ospi.u-boot-spl_a),1m(ospi.u-boot-spl_b),2m(ospi.u-boot_a),2m(ospi.u-boot_b),128k(ospi.misc_a),128k(ospi.misc_b),128k(ospi.factory),4325376(ospi.reserved),8m(ospi.mcudata)

    Now I am tring  your suolution with only one IMG ( only include IMG1 , linux Image and dtbs ) , it is 17M ,   and i will report the result ASAP. 

    By the way , since linux boot time should be 4s and the mcu1_0 boot time should be 100ms,  how about the mcu1_0 in your solution?

  • Hi,

    SBL booting linux in the manner we are discussing on this thread, can not give you an early MCU1_0 (<100ms).

    As far as I know, your use case was surround view, has that changed?

    For an early MCU1_0 app, we need to go via a different route which involves an intermediate application on MCU1_0 which runs some task early (~50ms) and then boots the rest of the cores (including Linux on A72) by acting like a tertiary boot loader. See http://downloads.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/mcusw/mcal_drv/docs/drv_docs/demo_boot_app_mcu_rtos_top.html 

    Regards,

    Karan

  • Hi, Karan,

        The kernel boot successfully now,  do you know how to add the parameter of kernel in the combined mode ? 

  • Hi Wang,

    Are you able to run vision_apps from the kernel now?

    - Keerthy

  • Hi Wang,

    What do you mean by parameter for kernel in combined mode? Are you looking for a way to pass the kernel boot args?

    Regards,

    Karan

  • Hi, Karan,

      About your questions:

      Are you able to run vision_apps from the kernel now?

           No,  since we couldn't  send kernel’s command-line parameters to kernel ,  there isn't rootfs . the kernel is running now and panic without rootfs. 

      Are you looking for a way to pass the kernel boot args?

           Yes,  please  show me how ot pass the  kernel’s command-line parameters to kernel  in combined mode.  build the parameters into kernel is not a good way.

    Wang Hongjie

           

  • Hi,

    In this response from me (https://e2e.ti.com/support/processors-group/processors/f/processors-forum/995417/tda4vm-how-to-optimize-boot-time-on-a72/3710306#3710306 ), I have attached the Linux patches. In the 0001 patch I am passing the bootargs via the chosen node. This is where I specify where the root file system is (root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait). I had changed this to /dev/mmcblk0p2 which is the file system in eMMC. You need to flash the file system in eMMC, have you done that?

    Regards,

    Karan

  • Hi,Karan,
    Maybe I didn’t clarify my issues, so please allow me to explain again.
    linux boot time need to be reduced to 4s, use the "combined.appimage" sulotion which you provided, we can run the kernel now. but there are still some problems not clear.
    1. Our ospi flash is 32M , if we compile all fws into a combined file(combined.appimage), the file size will be 100M, according to your answer, the follow files are necessary for the combined mode:
    a. sbl_ospi_img_hlos_mcu1_0_release.tiimage
    b. tifs.bin
    c. combined.appimage
    so the question is : Can we put file a&b into ospi and file c into emmc to complete the boot?

    2. It is not a good way to compile the kernel boot args into dtb or kernel, it will affect our ota , can we pass kernel startup args to kernel as uboot in combined mode.

    3. I find that it takes a long time(about 6s) for A72 to communicate with R5fs and DSPs. how to optimize it or is there any reference design?

    Please help us to make them clear, we will consider our design based on your information


    Thanks

  • Hi,


    . I find that it takes a long time(about 6s) for A72 to communicate with R5fs and DSPs. how to optimize it or is there any reference design?

    This is the limitation of Linux remoteproc driver as it needs to read & load the firmware from resource table in the filesystem.
    This will not be straight forward as the driver needs filesystem to be up which takes around 6 seconds to read the resource table
    from the firmware. This is by design & i am in touch with the IPC experts. This will be a complicated exercise to bypass the need
    to read the firmware from filesystem. So this part will be needing more time to work around.

    Best Regards,
    Keerthy

  • Hi, Keerthy and Karan. 

       Thank you very much for your attention , is there any information on questions 1 and 2 ?

       About the work around , can  you estimate the time required for implementation ?

    Best Regards,

    Wang Hongjie

  • Hi,

    1. Our ospi flash is 32M , if we compile all fws into a combined file(combined.appimage), the file size will be 100M, according to your answer, the follow files are necessary for the combined mode:
    a. sbl_ospi_img_hlos_mcu1_0_release.tiimage
    b. tifs.bin
    c. combined.appimage
    so the question is : Can we put file a&b into ospi and file c into emmc to complete the boot?

    SBL can only load images from the boot media where it has come up from. So of you are loading SBL from OSPI, it can boot the application only from OSPI hence the combined.appimage with this boot flow can be picked up from OSPI only.

    If there was something like A72 SPL and A72 u-boot in the boot flow then there was a liberty of booting firmwares from eMMC and SBL inn that case will only load a small A72 SPL image from OSPI. But this will add to the boot time.

    2. It is not a good way to compile the kernel boot args into dtb or kernel, it will affect our ota , can we pass kernel startup args to kernel as uboot in combined mode.

    With SBL combined image, you can only pass the boot args via the DTB which is a part of the combined.appimage. You can pass the bootargs via the chosen node in the DTB and then create the combined.appimage with the new DTB.

    In the current boot flow you are using, there is no u-boot.

    Regards,

    Karan

  • It seems that this limitation of SBL will block the solution, does Ti have any solution to reduce the size of combined.appimage? 

  • Hi Wang,

    The other boot flow is SPL/u-boot based boot flow and if you need the flexibility of u-boot then we can not achieve the timing
    we get with SBL as we bypass the uboot altogether with SBL boot flow.

    - Keerthy

  • Hi, Keerthy, 

        Thanks for your comfirmation,   anyway,  we hope to reduce starup time on the whole tda4vm system.

    For the combined mode :

         Does Ti support compression of combined.appimage to reduce the size?

    For other solution:

         Are there any other suggestions to reduce the startup time?

    For optimizing time for A72 communicating with other cores:

        According to your reply, this part will be needing more time to work around, Do you think how to time can finish the workaround?

    Regard

    WangHongjie

        

       

  • Anyupdate about this issue?

  • Hi Keerthy, 

    Since we are not sure if we can use the combined mode,  we want to optimizate other parts.

    I merge your patch and set loglevel=0 ,  the kernel boot time ("Starting kernel"  to "Run /sbin/init as init process") reduced by 2100ms, but the network cannot be used after startup, may be caused by timing changed.  

    log attached, please give some advice to fix this problem,  there are boot log and the print of dmesg.

    .normal_nodelay_loglevel0_dmesg.log

    Regards

    WangHongjie

  • Hi,

    Anyupdate about this issue?

    I heard that TI have reduced the startup time to 7 seconds, can you provide to us?

    Regards.

  • Wang,

    No updates after 8.8S. We are brainstorming internally as communicated over the call. We will keep you
    posted on further optimizations planned early next week.

    Thanks,
    Keerthy

  • Wang,

    I have a question of your OSPI memory size. Will you have 32MB fully available for appImage?
    With removal of c7x/c6x firmware we see the combined appImage size is 24MB. Is that okay for you?

    - Keerthy

  • Hi, keerthy,

         I think 24MB is too large ,  I  share  the layout about the ospi flash to   "Han, Tao <tao-han@ti.com>"  by email and ask him to forward it to you.

    The following is the size of the firmwares and kernel
    [2021-07-08 09:42:02.305] -rwxr--r-- 1 root root 22787812 Apr 19 2021 j7-main-r5f0_0-fw*
    [2021-07-08 09:42:02.305] -rwxr--r-- 1 root root 13976760 Apr 19 2021 j7-main-r5f0_1-fw*
    [2021-07-08 09:42:11.842] -rwxr-xr-x 1 root root 16797704 Sep 12 21:07 Image*

    Regards

  • Wang,

    I want you to be doubly sure on the firmware size.


    [2021-07-08 09:42:02.305] -rwxr--r-- 1 root root 22787812 Apr 19 2021 j7-main-r5f0_0-fw*

    Is it the stripped version?

    Look at the below from vision_apps:
    ls -l /home/keerthy/work/ti-processor-sdk-rtos-j721e-evm-07_03_00_07/vision_apps/out/J7/R5F/SYSBIOS/release/vx_app_tirtos_linux_mcu2_0.out


    -rw-rw-r-- 1 keerthy keerthy 22971980 Jul  8 23:30 /home/keerthy/work/ti-processor-sdk-rtos-j721e-evm-07_03_00_07/vision_apps/out/J7/R5F/SYSBIOS/release/vx_app_tirtos_linux_mcu2_0.out

    But what we load finally is a stripped version:

    ls -l /tmp/tivision_apps_targetfs_stage/lib/firmware/vision_apps_evm/vx_app_tirtos_linux_mcu2_0.out


    -rw-rw-r-- 1 keerthy keerthy 5265752 Jul  8 23:30 /tmp/tivision_apps_targetfs_stage/lib/firmware/vision_apps_evm/vx_app_tirtos_linux_mcu2_0.out

    Only 5MB. Can you confirm the size of the firmware on your system?

    Regards,
    Keerthy

  • Hi, 

       The j7-main-r5f0_0-fw is not stripped on our side.  but we can only take out 10M storage in ospi flash at most for the combined binary.

    Regards

1 2