PROCESSOR-SDK-J721E: How to start the avp4 demo as fast as possible

Part Number: PROCESSOR-SDK-J721E


Tool/software:

Dear TI experts,

I am developing a custom app based on the AVP4 demo.
I have registered it as a systemctl service to automatically launch the demo app, but it takes more than 50 seconds for the image to appear.

Is there any guide on how to optimize this startup time?

Our SDK : ti-processor-sdk-rtos-j721e-evm-10_01_00_04

Regards,
Daigo

(f9445f37-438b-42ac-b6f9-bf57b2f2621e)

  • Hi Daigo,

    Can you refer to this appnote https://www.ti.com/lit/an/sprade5/sprade5.pdf?ts=1750407608218&ref_url=https%253A%252F%252Fwww.google.com%252F

    which has quick bring up of surround view demo. Refer to it and modify for your application as well.

    Regards,
    Gokul

  • Hi Gokul,

    I cannot access all patches in this document.

    Regards,

    Daigo

  • Hi Daigo,

    Attaching the file here,

    Surround View System ECU.zip

    Regards,
    Gokul

  • HI Gokul,

    Thank you for your support.

    If I have any questions, I will create another thread.

    Regards,
    Daigo

  • Sure Daigo, Closing this thread.

    Regards,
    Gokul

  • Hi Gokul,

    Customer is using following versions. Could you create the patch for SDKVer. 10.01.00.04 (Linux+RTOS)?

    SDKVer. 10.01.00.04 (Linux+RTOS)

    Camera : D3-DISCOVERY-WIDE (D3-DISCOVERY-NARROW is selected automaticaly)

    Base Application : tidl_avp4 Demo

    Best regards,

    Ito

  • Hi Ito,

    The application contains lot of patches which will take time to create for 10.1.

    Can you specify exactly what issues customer is facing in applying this patch ?

    Regards,
    Gokul

  • Hi Gokul,

    Here is feedback from customer. 

    [Status]

    The boot up took 50sec from turn on the power to showed an application customer made( it is based on TIDL_AVP4) on the display. 

    [Break down]

    It took 33 sec from turn on the power to showed Linux login prompt.

    And it took 17sec to showed their application.

    Total 50sec.

    [Boot method currently]

    - Boot loader is u-boot.(It is not changed SDK(Linux+RTOS).

    - Systemd service executed their application.

    - Camera modeul is intialized in their application.

    [Target time]

    We would like to disply their application within 10sec. (Best case is less than 5sec).

    Could you give them any idea to reduce boot up time?

    Best regards,

    ito

  • Hi Ito,

    As i replied earlier there is a appnote which explains the steps to optimize the boot time for surround view application, you can refer to that approach and apply it for customer's application.
    https://www.ti.com/lit/an/sprade5/sprade5.pdf?ts=1750407608218&ref_url=https%253A%252F%252Fwww.google.com%252F

    This is not a straightforward approach and this involves changes in multiple components, the appnote has patches for all the steps and it was created for sdk 8.6 version, some of the patch might apply directly while some needs some additional efforts to make it to 10.1 sdk. Please refer to the appnote once and let me know if you have any further queries on appnote.

    Regards,
    Gokul

  • Hi Gokul

    My customer understood how to change the boot mode(UBOOT->SBL) and load device from SD to eMMC. And they understand that linux dts optimise but there is difference H/W between SRV demo and customer's application. We will try to boot optimise.

    But there is big issue regarding Imaging Framework.

    So customer can't move next and solve about Camere driver because the driver is different between UB960/UB953 and D3 camera on customer's application. Could you help them how to consider the different driver .

    Best regards,

    Ito

  • Hi Ito,

    So customer can't move next and solve about Camere driver because the driver is different between UB960/UB953 and D3 camera on customer's application. Could you help them how to consider the different driver .

    Can you ask which serdes are they using and the sensor I think you mentioned previously about the sensor, D3-DISCOVERY-WIDE

    Basic idea is the initialization of serializer/deserializer and sensor takes lot of time in the default implementation, so the appnote has some optimizations for that to bring that time from 3sec to 600milli sec. This might vary from the serdes and the sensor they are using. Ask them to check the default time it takes to initialize.

    Also instead of configuring the serdes and sensors after linux boot and application start, it can be moved to r5f init code so it saves time by configuring the sensor simultaneously as the linux boots up.
    Customers need to figure out the api's responsible for configuring serdes and sensor.
    Once linux boots up and after starting the application they can just run one command to start sensor stream.

    Regards,
    Gokul

  • Hi Gokul,

    ALAP is using D3-Discovery-Wide x 4. It seems that initial time of 4 careras takes 11 sec. As following log.

    Could you provide any idea to reduce the initial time?

    [2025-10-17 17:13:18.207] [MCU2_0]  11304.517351 s: IMX390_PowerOn : chId = 0x0

    [2025-10-17 17:13:18.207]

    [2025-10-17 17:13:18.207] [MCU2_0]  11304.517420 s: IMX390_PowerOn : chId = 0x1

    [2025-10-17 17:13:18.219]

    [2025-10-17 17:13:18.219] [MCU2_0]  11304.517462 s: IMX390_PowerOn : chId = 0x2

    [2025-10-17 17:13:18.219]

    [2025-10-17 17:13:18.219] [MCU2_0]  11304.517496 s: IMX390_PowerOn : chId = 0x3

    [2025-10-17 17:13:18.219]

    [2025-10-17 17:13:18.219]  11304.517669 s: ISS: Initializing sensor [IMX390-UB953-DISCOVERY-NARROW], doing IM_SENSOR_CMD_CONFIG ... !!!

    [2025-10-17 17:13:18.244] fovh = 0.000000, fovv = 0.000000, near_l = -300, far_l = -40000

    [2025-10-17 17:13:18.523] [MCU2_0]  11305.029706 s: Configuring Alias on UB960 CHID: 0, aliasing 0x21 to 0x40

    [2025-10-17 17:13:18.523]

    [2025-10-17 17:13:18.523] [MCU2_0]  11305.031692 s: Configuring Alias on UB960 CHID: 0, aliasing 0x70 to 0x50

    [2025-10-17 17:13:18.545]

    [2025-10-17 17:13:18.732] [MCU2_0]  11305.233610 s: Configuring Alias on UB960 CHID: 0, aliasing 0x18 to 0x74

    [2025-10-17 17:13:18.732]

    [2025-10-17 17:13:18.732] [MCU2_0]  11305.233610 s: Configuring Alias on UB960 CHID: 0, aliasing 0x18 to 0x74

    [2025-10-17 17:13:18.732]

    [2025-10-17 17:13:18.876] [MCU2_0]  11305.379374 s: Configuring Alias on UB960 CHID: 0, aliasing 0x18 to 0x74

    [2025-10-17 17:13:18.876]

    [2025-10-17 17:13:18.876] [MCU2_0]  11305.381693 s: Configuring Alias on UB960 CHID: 0, aliasing 0x21 to 0x40

    [2025-10-17 17:13:18.892]

    [2025-10-17 17:13:19.020] [MCU2_0]  11305.526696 s:  Configuring IMX390 imager 0x40.. Please wait till it finishes

    [2025-10-17 17:13:19.020]

    [2025-10-17 17:13:19.020] [MCU2_0]  11305.526696 s:  Configuring IMX390 imager 0x40.. Please wait till it finishes

    [2025-10-17 17:13:19.036]

    [2025-10-17 17:13:21.181] [MCU2_0]  11307.678560 s:  IMX390 config done

    [2025-10-17 17:13:21.181]

    [2025-10-17 17:13:21.181] [MCU2_0]  11307.680685 s:  Action mode...  AD bit: 1, HAMX: 4400,

    [2025-10-17 17:13:21.181]

    [2025-10-17 17:13:21.181] [MCU2_0]  11307.680761 s: Configuring Alias on UB960 CHID: 1, aliasing 0x21 to 0x42

    [2025-10-17 17:13:21.197]

    [2025-10-17 17:13:21.197] [MCU2_0]  11307.682697 s: Configuring Alias on UB960 CHID: 1, aliasing 0x70 to 0x51

    [2025-10-17 17:13:21.197]

    [2025-10-17 17:13:21.197] [MCU2_0]  11307.682697 s: Configuring Alias on UB960 CHID: 1, aliasing 0x70 to 0x51

    [2025-10-17 17:13:21.213]

    [2025-10-17 17:13:21.372] [MCU2_0]  11307.884610 s: Configuring Alias on UB960 CHID: 1, aliasing 0x18 to 0x76

    [2025-10-17 17:13:21.392]

    [2025-10-17 17:13:21.530] [MCU2_0]  11308.030373 s: Configuring Alias on UB960 CHID: 1, aliasing 0x18 to 0x76

    [2025-10-17 17:13:21.530]

    [2025-10-17 17:13:21.530] [MCU2_0]  11308.032689 s: Configuring Alias on UB960 CHID: 1, aliasing 0x21 to 0x42

    [2025-10-17 17:13:21.541]

    [2025-10-17 17:13:21.680] [MCU2_0]  11308.177708 s:  Configuring IMX390 imager 0x42.. Please wait till it finishes

    [2025-10-17 17:13:21.680]

    [2025-10-17 17:13:21.680] [MCU2_0]  11308.177708 s:  Configuring IMX390 imager 0x42.. Please wait till it finishes

    [2025-10-17 17:13:21.700]

    [2025-10-17 17:13:23.814] [MCU2_0]  11310.332562 s:  IMX390 config done

    [2025-10-17 17:13:23.844]

    [2025-10-17 17:13:23.844] [MCU2_0]  11310.334682 s:  Action mode...  AD bit: 1, HAMX: 4400,

    [2025-10-17 17:13:23.844]

    [2025-10-17 17:13:23.844] [MCU2_0]  11310.334682 s:  Action mode...  AD bit: 1, HAMX: 4400,

    [2025-10-17 17:13:23.844]

    [2025-10-17 17:13:23.844] [MCU2_0]  11310.334756 s: Configuring Alias on UB960 CHID: 2, aliasing 0x21 to 0x44

    [2025-10-17 17:13:23.845]

    [2025-10-17 17:13:23.845] [MCU2_0]  11310.334756 s: Configuring Alias on UB960 CHID: 2, aliasing 0x21 to 0x44

    [2025-10-17 17:13:23.845]

    [2025-10-17 17:13:23.845] [MCU2_0]  11310.336706 s: Configuring Alias on UB960 CHID: 2, aliasing 0x70 to 0x52

    [2025-10-17 17:13:23.863]

    [2025-10-17 17:13:24.031] [MCU2_0]  11310.538619 s: Configuring Alias on UB960 CHID: 2, aliasing 0x18 to 0x78

    [2025-10-17 17:13:24.047]

    [2025-10-17 17:13:24.047] [MCU2_0]  11310.538619 s: Configuring Alias on UB960 CHID: 2, aliasing 0x18 to 0x78

    [2025-10-17 17:13:24.047]

    [2025-10-17 17:13:24.170] [MCU2_0]  11310.684373 s: Configuring Alias on UB960 CHID: 2, aliasing 0x18 to 0x78

    [2025-10-17 17:13:24.187]

    [2025-10-17 17:13:24.187] [MCU2_0]  11310.684373 s: Configuring Alias on UB960 CHID: 2, aliasing 0x18 to 0x78

    [2025-10-17 17:13:24.187]

    [2025-10-17 17:13:24.187] [MCU2_0]  11310.686695 s: Configuring Alias on UB960 CHID: 2, aliasing 0x21 to 0x44

    [2025-10-17 17:13:24.203]

    [2025-10-17 17:13:24.332] [MCU2_0]  11310.831700 s:  Configuring IMX390 imager 0x44.. Please wait till it finishes

    [2025-10-17 17:13:24.332]

    [2025-10-17 17:13:24.332] [MCU2_0]  11310.831700 s:  Configuring IMX390 imager 0x44.. Please wait till it finishes

    [2025-10-17 17:13:24.348]

    [2025-10-17 17:13:26.460] [MCU2_0]  11312.969561 s:  IMX390 config done

    [2025-10-17 17:13:26.481]

    [2025-10-17 17:13:26.481] [MCU2_0]  11312.971675 s:  Action mode...  AD bit: 1, HAMX: 4400,

    [2025-10-17 17:13:26.481]

    [2025-10-17 17:13:26.481] [MCU2_0]  11312.971750 s: Configuring Alias on UB960 CHID: 3, aliasing 0x21 to 0x46

    [2025-10-17 17:13:26.481]

    [2025-10-17 17:13:26.481] [MCU2_0]  11312.973701 s: Configuring Alias on UB960 CHID: 3, aliasing 0x70 to 0x53

    [2025-10-17 17:13:26.497]

    [2025-10-17 17:13:26.668] [MCU2_0]  11313.175613 s: Configuring Alias on UB960 CHID: 3, aliasing 0x18 to 0x7a

    [2025-10-17 17:13:26.668]

    [2025-10-17 17:13:26.668] [MCU2_0]  11313.175613 s: Configuring Alias on UB960 CHID: 3, aliasing 0x18 to 0x7a

    [2025-10-17 17:13:26.684]

    [2025-10-17 17:13:26.811] [MCU2_0]  11313.321442 s: Configuring Alias on UB960 CHID: 3, aliasing 0x18 to 0x7a

    [2025-10-17 17:13:26.827]

    [2025-10-17 17:13:26.827] [MCU2_0]  11313.323715 s: Configuring Alias on UB960 CHID: 3, aliasing 0x21 to 0x46

    [2025-10-17 17:13:26.827]

    [2025-10-17 17:13:26.956] [MCU2_0]  11313.468696 s:  Configuring IMX390 imager 0x46.. Please wait till it finishes

    [2025-10-17 17:13:26.971]

    [2025-10-17 17:13:26.971] [MCU2_0]  11313.468696 s:  Configuring IMX390 imager 0x46.. Please wait till it finishes

    [2025-10-17 17:13:26.971]

    [2025-10-17 17:13:29.087] [MCU2_0]  11315.597562 s:  IMX390 config done

    [2025-10-17 17:13:29.096]

    [2025-10-17 17:13:29.096]  11315.599809 s: ISS: Initializing sensor [IMX390-UB953-DISCOVERY-NARROW] ... Done !!!

    Best regards,

    Ito

  • Hi Ito,

    It seems that initial time of 4 careras takes 11 sec.

    This is huge, If they have imx390-ub953 ask them to check the initialization time of 4 cameras. As per the appnote it should take approximately 3 to 4 sec. 
    I am not sure this camera IMX390-UB953-DISCOVERY-NARROW will take 11 sec, let me try this with my setup and check the init time and update you by next week.

    By default the cameras are configured one by one. You can enable sensor Broadcast mode to configure all 4 sensors in parallel. This is mentioned in the appnote,


    and the corresponding patch files is available,

    Could you ask them to try this steps and see if they can reduce the sensor init time.

    Regards,
    Gokul