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.

TDA2EVM5777: Need help to improve QSPI read speed

Part Number: TDA2EVM5777

Hi,

We are reading some text files using QSPI and for that we have captured DSO screen shot for QSPI clock frequency measurement.

According to measurement clock frequency is 74Mhz but if you see the waveform, data reading take place in burst and than there is big gap and in each burst there is 8 clock cycle means it is reading one word(32bit) in each burst.

We have also analyzed our code execution and it takes approximately 2.288 second to read 2.2MB file means we are achieving 1.8Mhz in execution which is far less what we can see on DSO.

Please suggest a way to fix this issue and to improve QSPI file reading performance.

Regards,

  • Hi Rajesh,

    You didn's mention the QSPI memory chip details. Can you point to a datasheet, etc.?

    Regards,

    Stan

  • Hi,
    QSPI memory chip number is S25FL256SAGM.

    And we are not doing any settings anything for QSPI in code , meaning default settings are there.
    But from debugging we found that qspi mode is 0.

    Please let me know if you need more info.

    Regards,
  • Hi,

    one more point I would like to know is till now we are using System_qspiReadSector API for QSPI file reading and now I replaced that API with QSPI_ReadSectors_edma API call and compiled successfully but when I run the app image it freezes the application after 3 second, last log line is ..

    SYSTEM: UART: Interrupt mode is selected.

    Please guide me what could be the reason here.

    Thanks,

  • Hi,
    In addition to last question, where can I find some documentation for QSPI_ReadSectors_edma API usage and what are the settings required for this API.

    I can see one usage at path ti_components/drivers/pdk_01_08_00_16/packages/ti/boot/sbl_auto/sbl_utils/src/tda2xx/sbl_utils_tda2xx.c , but I can't figure out what is the settings required for this API usage.

    Thanks,
  • Hi Rajesh,

    Can you have a look at API SBLUtilsQspiBootRprc defined in ti_components/drivers/pdk_01_08_00_16/packages/ti/boot/sbl_auto/sbl_utils/src/tda2xx/sbl_utils_tda2xx.c .
    You need to initialize QSPI commands along with QSPI frequency and set memory mapped mode.
    On TDA2xx you should be able to achieve much better performance with proper settings.

    Regards,
    Rishabh
  • Hi,
    As you have suggested I added following code for QSPI initialization
    //======================== QSPI INITIALIZATION =======================
    uint32_t deviceId, mfgId, devId;
    qspi_DeviceType_e deviceType = DEVICE_TYPE_QSPI4;
    char devIdStr[10] = {0}, mfgIdStr[10] = {0};

    QSPI_Initialize(deviceType);

    /* Print the Device ID & Manufacturer ID */
    deviceId = QSPI_GetDeviceId();
    mfgId = deviceId & 0xFFU;
    devId = (deviceId & 0xFF0000U) >> 16U;

    SBLLibConvertHexToString(mfgId, mfgIdStr);
    SBLLibConvertHexToString(devId, devIdStr);

    SBLLibPrintf(SBLLIB_TRACE_LEVEL_INFO1, "\n Manufacturer ID - ");
    SBLLibPrintf(SBLLIB_TRACE_LEVEL_INFO1, mfgIdStr);
    SBLLibPrintf(SBLLIB_TRACE_LEVEL_INFO1, "\n Device ID - ");
    SBLLibPrintf(SBLLIB_TRACE_LEVEL_INFO1, devIdStr);

    QSPISetMAddrSpace(SOC_QSPI_ADDRSP0_BASE,
    (uint8_t) QSPI_SPI_SWITCH_REG_MMPT_S_SEL_MM_PORT);
    QSPI_ConfMAddrSpace((uint8_t) QSPI_SPI_SWITCH_REG_MMPT_S_SEL_MM_PORT,
    QSPI_CS0);
    //====================================================================

    and then I made a call of QSPI_ReadSectors_edma API, it is compiled successfully but when I ran application it freezes my application after 3.2 seconds log entries as I said earlier, please reply.

    I did clean build.

    Regards,
  • Hi Rajesh,

    Can you connect via CCS and see where the program is stuck.

    Also you should include only relevant calls for QSPI functionality i.e. QSPI_Initialize, QSPISetMAddrSpace and QSPI_ConfMAddrSpace.

    Regards,

    Rishabh

  • Hi,
    Unfortunately CCS in not working on my laptop and none of my team member has configured CCS.
    Is there any other way ? I can send you logs will it work for you?

    I also kept Vps_printf messages at the beginning of this function before any function call but I can't see any single printf message.

    Thanks,
  • Hi Rajesh,

    Unfortunately it will be very difficult to know why the hang/crash is occurring without CCS.
    Still go ahead and share the log. Also provide a description of the use case you are running and the changes you have made.

    Regards,
    Rishabh
  • Hi,

    We are using "lvds_vip_multi_cam_mirror_replacement" use case and in function "Void chains_lvdsVipMultiCamMirrorReplacement_SetAppPrms(" we are writing code for LUT file read from QSPI.

    Please see the attached file for logs, I have kept Vps_printf at the first line of function "Void chains_lvdsVipMultiCamMirrorReplacement_SetAppPrms(" but i don't see its entry in log file.

    Thanks,

    4341.logs.txt
    TDA2xx SBL Boot 
    
     DPLL Configuration Completed 
    
     Clock Domain Configuration Completed 
    
     Module Enable Configuration Completed 
    
     TI EVM PAD Config Completed 
    ERROR: HW-Leveling time-out
    
     DDR Config Completed 
    
     App Image Download Begins 
    
     SD Boot - file open completed successfully 
    
     MPU CPU0 Image Load Completed 
    
     IPU1 CPU0 Image Load Completed 
    
     IPU1 CPU1 Image Load Completed 
    
     IPU2 CPU0 and CPU1 Image Load Completed 
    
     DSP1 Image Load Completed 
    
     DSP2 Image Load Completed 
    
     EVE1 Image Load Completed 
    
     EVE2 Image Load Completed 
    
     EVE3 Image Load Completed 
    
     EVE4 Image Load Completed 
    
     App Image Download Completed 
    
     Putting MPU CPU1 in Off mode 
    
     EVE MMU configuration completed 
    
     EVE MMU configuration completed 
    
     EVE MMU configuration completed 
    
     EVE MMU configuration completed 
    
    *
    
     PMCCNTR counts once every 64 clock cycles, multiple by 64 to get actual CPU cycles 
    
     SBL Initial Config Cycles - 141621 (12.8 ms)
     SOC Init Cycles - 170854 (14.57 ms)
     DDR Config Clock Cycles - 116159 (9.91 ms)
     App Image Load Cycles - 25894671 (2209.67 ms)
     Slave Core Bootup Cycles - 208228 (17.76 ms)
     SBL Boot-up Cycles - 26532600 (2264.11 ms)
     Time at which SBL started IPU1_0 - 85850 (7.32 ms)
    *
    
     Jumping to MPU CPU0 App 
    [IPU1-0] 2.624229 s: * IPU1_0 Firmware build time 13:02:30 Feb 15 2018 
    [IPU1-0] 2.624443 s: * SYSTEM: CPU Frequency <ORG = 212800000 Hz>, <NEW = 212800000 Hz>
    [IPU1-0] 2.718599 s: SYSTEM: Notify register to [IPU1-1] line 0, event 15... 
    [IPU1-0] 2.718782 s: SYSTEM: Notify register to [IPU2] line 0, event 15... 
    [IPU1-0] 2.718904 s: SYSTEM: Notify register to [DSP1] line 0, event 15... 
    [IPU1-0] 2.719026 s: SYSTEM: Notify register to [DSP2] line 0, event 15... 
    [IPU1-0] 2.719148 s: SYSTEM: Notify register to [EVE1] line 0, event 15... 
    [IPU1-0] 2.719270 s: SYSTEM: Notify register to [EVE2] line 0, event 15... 
    [IPU1-0] 2.719392 s: SYSTEM: Notify register to [EVE3] line 0, event 15... 
    [IPU1-0] 2.719514 s: SYSTEM: Notify register to [EVE4] line 0, event 15... 
    [IPU1-0] 2.719605 s: SYSTEM: Notify register to [HOST] line 0, event 15... 
    [IPU1-0] 2.721435 s: * UTILS: CPU MHz = 20 Mhz *
    [IPU1-0] 2.721588 s: SYSTEM: System Common Init in progress !!!
    [IPU1-0] 2.735161 s: UTILS: CIO: Init Done !!!
    [IPU1-0] 2.735283 s: SYSTEM: IPC init in progress !!!
    [IPU1-0] 2.735344 s: SYSTEM: Notify init done !!!
    [IPU1-0] 2.737235 s: SYSTEM: MsgQ init done !!!
    [IPU1-0] 2.737326 s: SYSTEM: IPC init DONE !!!
    [IPU1-0] 2.741231 s: SYSTEM: Initializing TIOVX ...
    [IPU1-0] 2.741444 s: VX_ZONE_INIT:Enabled
    [IPU1-0] 2.741566 s: VX_ZONE_ERROR:Enabled
    [IPU1-0] 2.741688 s: VX_ZONE_WARNING:Enabled
    [IPU1-0] 2.745775 s: VX_ZONE_INIT:[tivxInit:48] Initialization Done !!!
    [IPU1-0] 2.745958 s: SYSTEM: Initializing TIOVX ... Done !!!
    [IPU1-0] 2.746050 s: SYSTEM: Initializing TIOVX HOST ...
    [IPU1-0] 2.746507 s: VX_ZONE_INIT:[tivxHostInit:22] Initialization Done for HOST !!!
    [IPU1-0] 2.746660 s: SYSTEM: Initializing TIOVX HOST ... Done !!!
    [IPU1-0] 2.746782 s: SYSTEM: System Common Init Done !!!
    [IPU1-0] 2.746843 s: SYSTEM: System Init in progress !!!
    [IPU1-0] 2.747178 s: SYSTEM: BSP Common Init in progress !!!
    [IPU1-0] 2.747392 s: SYSTEM: BSP Common Init Done !!!
    [IPU1-0] 2.747453 s: SYSTEM: BSP Platform Init in progress !!!
    [IPU1-0] 2.747605 s: SYSTEM: BSP Platform Init Done !!!
    [IPU1-0] 2.747697 s: SYSTEM: FVID2 Init in progress !!!
    [IPU1-0] 2.747849 s: SYSTEM: FVID2 Init Done !!!
    [IPU1-0] 2.747941 s: SYSTEM: VPS Init in progress !!!
    [IPU1-0] 2.748032 s: SYSTEM: VPDMA Descriptor Memory Address translation ENABLED [0xa0000000 -> 0x80000000]
    [IPU1-0] 2.752241 s: * VPDMA Firmware Loading... *
    [IPU1-0] 2.752363 s: VPDMA Firmware Address = 0x9fcfb240
    [IPU1-0] 2.752455 s: VPDMA Load Address = 0x4897d004
    [IPU1-0] 2.752546 s: VPDMA Firmware Version = 0x4d0001b8
    [IPU1-0] 2.752638 s: VPDMA List Busy Status = 0x00000000
    [IPU1-0] 2.752699 s: * VPDMA Firmware Load Success *
    [IPU1-0] 2.753187 s: * VPDMA Firmware Loading... *
    [IPU1-0] 2.753309 s: VPDMA Firmware Address = 0x9fcfb240
    [IPU1-0] 2.753400 s: VPDMA Load Address = 0x4899d004
    [IPU1-0] 2.753522 s: VPDMA Firmware Version = 0x4d0001b8
    [IPU1-0] 2.753675 s: VPDMA List Busy Status = 0x00000000
    [IPU1-0] 2.753766 s: * VPDMA Firmware Load Success *
    [IPU1-0] 2.754468 s: * VPDMA Firmware Loading... *
    [IPU1-0] 2.754590 s: VPDMA Firmware Address = 0x9fcfb240
    [IPU1-0] 2.754681 s: VPDMA Load Address = 0x489bd004
    [IPU1-0] 2.754803 s: VPDMA Firmware Version = 0x4d0001b8
    [IPU1-0] 2.754864 s: VPDMA List Busy Status = 0x00000000
    [IPU1-0] 2.755017 s: * VPDMA Firmware Load Success *
    [IPU1-0] 2.755444 s: * VPDMA Firmware Loading... *
    [IPU1-0] 2.755535 s: VPDMA Firmware Address = 0x9fcfb240
    [IPU1-0] 2.755627 s: VPDMA Load Address = 0x489dd004
    [IPU1-0] 2.755749 s: VPDMA Firmware Version = 0x4d0001b8
    [IPU1-0] 2.755840 s: VPDMA List Busy Status = 0x00000000
    [IPU1-0] 2.755962 s: * VPDMA Firmware Load Success *
    [IPU1-0] 2.820045 s: SYSTEM: VPS Init Done !!!
    [IPU1-0] 2.820990 s: UTILS: DMA: HWI Create for INT34 !!!
    [IPU1-0] 2.821265 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024 
    [IPU1-0] 2.821356 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 262144 B (256 KB), Free size = 252288 B (246 KB)
    [IPU1-0] 2.821539 s: SYSTEM: Heap = SR_OCMC @ 0x00000000, Total size = 0 B (0 KB), Free size = 0 B (0 KB)
    [IPU1-0] 2.821692 s: SYSTEM: Heap = SR_DDR_CACHED @ 0x89d03000, Total size = 368037888 B (350 MB), Free size = 368037888 B (350 M)
    [IPU1-0] 2.821966 s: SYSTEM: Heap = SR_DDR_NON_CACHED @ 0xbfc00000, Total size = 127360 B (0 MB), Free size = 92800 B (0 MB)
    [IPU1-0] 2.822149 s: SYSTEM: Initializing Links !!! 
    [IPU1-0] 3.085585 s: SYSTEM: Initializing Links ... DONE !!! 
    [IPU1-0] 3.178917 s: BOARD: Board Init in progress !!!
    [IPU1-0] 3.179314 s: BOARD: Board Init Done !!!
    [IPU1-0] 3.190355 s: Initializing Multi-Deserializer Setup ...!!
    [IPU1-0] 3.191728 s: MultiDes Board Init Done
    [IPU1-0] 3.191789 s: 
    [IPU1-0] 3.191850 s: Vision SDK Version : [PROCESSOR_SDK_VISION_03_01_00_00]
    [IPU1-0] 3.191941 s: FVID2 Version : [FVID_02_01_00_01]
    [IPU1-0] 3.192002 s: BSP Version : [PDK_01_08_00_xx]
    [IPU1-0] 3.192063 s: Platform : [EVM]
    [IPU1-0] 3.192124 s: SOC : [TDA2XX]
    [IPU1-0] 3.192185 s: SOC Revision : [ES2.0]
    [IPU1-0] 3.192246 s: Board Detected : [MULTIDES]
    [IPU1-0] 3.192429 s: 
    [IPU1-0] 3.192704 s: i2cMdSubmitChan: i2c0 transfer to slave address 0x50 failed
    [IPU1-0] 3.192795 s: src/bsp_deviceI2c.c @ Line 667: 
    [IPU1-0] 3.192887 s: I2C0: DEV 0x50: ERROR !!! 
    [IPU1-0] 3.192978 s: src/bsp_deviceI2c.c @ Line 689: 
    [IPU1-0] 3.193070 s: I2C0: Error timeout 1 ms!!!
    [IPU1-0] 3.198011 s: 
    [IPU1-0] 3.198285 s: i2cMdSubmitChan: i2c0 transfer to slave address 0x50 failed
    [IPU1-0] 3.198407 s: src/bsp_deviceI2c.c @ Line 478: 
    [IPU1-0] 3.198468 s: I2C0: DEV 0x50: RD ERROR !!!
    [IPU1-0] 3.198560 s: src/bsp_deviceI2c.c @ Line 504: 
    [IPU1-0] 3.198651 s: I2C0: Error timeout 0 ms!!!
    [IPU1-0] 3.198712 s: src/bsp_boardTda2xx.c @ Line 723: 
    [IPU1-0] 3.198773 s: EEPROM read failed!!
    [IPU1-0] 3.198834 s: Base Board Revision : [REV A]
    [IPU1-0] 3.198926 s: Daughter Card Revision: [REV D]
    [IPU1-0] 3.198987 s: 
    [IPU1-0] 3.202372 s: SYSTEM: UART: INTERRUPT Mode is Selected 
    [IPU1-1] 2.635667 s: * IPU1_1 Firmware build time 12:58:37 Feb 15 2018
    [IPU1-1] 2.635881 s: * SYSTEM: CPU Frequency <ORG = 212800000 Hz>, <NEW = 212800000 Hz>
    [IPU1-1] 2.721313 s: SYSTEM: Notify register to [IPU1-0] line 0, event 15... 
    [IPU1-1] 2.721557 s: SYSTEM: Notify register to [IPU2] line 0, event 15... 
    [IPU1-1] 2.721679 s: SYSTEM: Notify register to [DSP1] line 0, event 15... 
    [IPU1-1] 2.721801 s: SYSTEM: Notify register to [DSP2] line 0, event 15... 
    [IPU1-1] 2.721923 s: SYSTEM: Notify register to [EVE1] line 0, event 15... 
    [IPU1-1] 2.722015 s: SYSTEM: Notify register to [EVE2] line 0, event 15... 
    [IPU1-1] 2.722137 s: SYSTEM: Notify register to [EVE3] line 0, event 15... 
    [IPU1-1] 2.722229 s: SYSTEM: Notify register to [EVE4] line 0, event 15... 
    [IPU1-1] 2.722351 s: SYSTEM: Notify register to [HOST] line 0, event 15... 
    [IPU1-1] 2.724394 s: SYSTEM: System Common Init in progress !!!
    [IPU1-1] 2.725675 s: UTILS: CIO: Init Done !!!
    [IPU1-1] 2.725797 s: SYSTEM: IPC init in progress !!!
    [IPU1-1] 2.725889 s: SYSTEM: Notify init done !!!
    [IPU1-1] 2.727658 s: SYSTEM: MsgQ init done !!!
    [IPU1-1] 2.727749 s: SYSTEM: IPC init DONE !!!
    [IPU1-1] 2.731470 s: SYSTEM: Initializing TIOVX ...
    [IPU1-1] 2.731684 s: VX_ZONE_INIT:Enabled
    [IPU1-1] 2.731806 s: VX_ZONE_ERROR:Enabled
    [IPU1-1] 2.731958 s: VX_ZONE_WARNING:Enabled
    [IPU1-1] 2.735771 s: VX_ZONE_INIT:[tivxInit:48] Initialization Done !!!
    [IPU1-1] 2.735954 s: SYSTEM: Initializing TIOVX ... Done !!!
    [IPU1-1] 2.736045 s: SYSTEM: System Common Init Done !!!
    [IPU1-1] 2.736106 s: SYSTEM: System IPU1_1 Init in progress !!!
    [IPU1-1] 2.737021 s: UTILS: DMA: HWI Create for INT25 !!!
    [IPU1-1] 2.737265 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024 
    [IPU1-1] 2.737387 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 655360 B (640 KB), Free size = 645648 B (630 KB)
    [IPU1-1] 2.737540 s: SYSTEM: Initializing Links !!! 
    [IPU1-1] 2.856280 s: UTILS: PRF: ##### Cannot allocate Object for SYNC3 ####
    [IPU1-1] 2.859879 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM0 ####
    [IPU1-1] 2.863173 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM1 ####
    [IPU1-1] 2.866558 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM2 ####
    [IPU1-1] 2.870218 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM3 ####
    [IPU1-1] 2.873513 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM4 ####
    [IPU1-1] 2.877325 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM5 ####
    [IPU1-1] 2.880619 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM6 ####
    [IPU1-1] 2.884218 s: UTILS: PRF: ##### Cannot allocate Object for ALGORITHM7 ####
    [IPU1-1] 2.884340 s: SYSTEM: Initializing Links ... DONE !!! 
    [IPU1-1] 2.884432 s: SYSTEM: System IPU1_1 Init Done !!!
    [HOST ] 2.708137 s: * A15_0 Firmware build time 12:56:29 Feb 15 2018 
    [HOST ] 2.708168 s: * SYSTEM: CPU Frequency <ORG = 750000000 Hz>, <NEW = 750000000 Hz>
    [HOST ] 2.719788 s: SYSTEM: Notify register to [IPU1-0] line 0, event 15... 
    [HOST ] 2.719788 s: SYSTEM: Notify register to [IPU1-1] line 0, event 15... 
    [HOST ] 2.719819 s: SYSTEM: Notify register to [IPU2] line 0, event 15... 
    [HOST ] 2.719819 s: SYSTEM: Notify register to [DSP1] line 0, event 15... 
    [HOST ] 2.719849 s: SYSTEM: Notify register to [DSP2] line 0, event 15... 
    [HOST ] 2.719849 s: SYSTEM: Notify register to [EVE1] line 0, event 15... 
    [HOST ] 2.719849 s: SYSTEM: Notify register to [EVE2] line 0, event 15... 
    [HOST ] 2.719880 s: SYSTEM: Notify register to [EVE3] line 0, event 15... 
    [HOST ] 2.719880 s: SYSTEM: Notify register to [EVE4] line 0, event 15... 
    [HOST ] 2.722106 s: SYSTEM: System Common Init in progress !!!
    [HOST ] 2.722167 s: SYSTEM: IPC init in progress !!!
    [HOST ] 2.722167 s: SYSTEM: Notify init done !!!
    [HOST ] 2.722198 s: SYSTEM: MsgQ init done !!!
    [HOST ] 2.722229 s: SYSTEM: IPC init DONE !!!
    [HOST ] 2.722778 s: SYSTEM: Initializing TIOVX ...
    [HOST ] 2.722839 s: SYSTEM: Initializing TIOVX ... Done !!!
    [HOST ] 2.722839 s: SYSTEM: System Common Init Done !!!
    [HOST ] 2.722839 s: SYSTEM: System A15 Init in progress !!!
    [HOST ] 2.722900 s: UTILS: DMA: HWI Create for INT66 !!!
    [HOST ] 2.722900 s: SYSTEM: SW Message Box Msg Pool, Free Msg Count = 1024 
    [HOST ] 2.722930 s: SYSTEM: Heap = LOCAL_DDR @ 0x00000000, Total size = 6291456 B (6144 KB), Free size = 6247480 B (6101 KB)
    [HOST ] 2.722961 s: SYSTEM: Initializing Links !!!
    

  • Hi Rajesh,

    There is no obvious error that is evident from the log. Another pointer I can give is QSPI pin mux.
    Vps_printf adds print output to a buffer and crash/hang could be happening before the print statement is sent to UART.
    I would suggest you to use debugger/CCS to see what exactly is happening.

    Regards,
    Rishabh
  • Hi,
    We can successfully read the file from QSPI using "System_qspiReadSector" API but to improve QSPI read we are trying "QSPI_ReadSectors_edma", so pin mux can not be a issue.

    Let me see if I can do something with CCS.

    Thanks,
  • Hi,
    We are actually using custom board which is based on TDA2xx and we don't have debugging support on this board and we also don't have setup for that as well.
    I have one question which I would like to know is , can we call "QSPI_ReadSectors_edma" API directly from our use case , can you make sure on your end that making direct call to this API is working ?

    I saw that inside "System_qspiReadSector" it is making call to "QSPI_ReadSectors" than why my call is getting freeze if I am making call to "QSPI_ReadSectors_edma" after required QSPI init calls.

    Thanks,
  • Hi Rajesh,

    This API works directly from the SBL/PDK.
    This API won't work directly with Vision SDK as it uses EDMA CSL FL instead of EDMA LLD. You can modify this API to use EDMA LLD and then it will work for you.

    Regards,
    Rishabh
  • Hi,

    In "System_qspiReadSector" API I have replaced QSPI_ReadSectors call with QSPI_ReadSectors_edma and added last parameter values 1 as edma channel number.

    But no change in performance, I did clean build but how can I verify that changes I have made in "System_qspiReadSector" is really took effect ?

    Regards,

  • Hi,

    Have you set WRITE_MM_MODE_ to 1?

    Regards,
    Rishabh
  • Hi

    Do i need to set macro value to 1 in below file ?

    /home/vvdn-admin/Desktop/soltron_release/vision_sdk_custom_board/PROCESSOR_SDK_VISION_03_01_00_00/vision_sdk/links_fw/src/rtos/utils_common/src/utils_qspi.c

    Thanks,
  • Hi,

    Yes indeed. This is the same file where you are modifying System_qspiReadSector.

    Regards,
    Rishabh
  • Hi,
    After making last suggested changes behavior is same as yesterday, application gets freeze after 3 second at the same point(see yesterday's log attached in previous reply).

    Thanks,
  • Hi,
    As I had previously replied you need to change EDMA CSL FL calls to EDMA LLD. Did you make that change?

    Regards,
    Rishabh
  • Hi,
    I am sorry but I didn't understand how to do it.
    Thanks,
  • Hi,

    EDMA CSL FL and EDMA LLD are two separate drivers. EDMA CSL FL is used by SBL (without OS) and EDMA LLD is used by Vision SDK (with BIOS).
    You need to write an API similar to QSPI_ReadSectors_edma say QSPI_ReadSectors_edma_os using EDMA LLD and use it.
    You can refer to Utils_ddrReadEdma defined in vision_sdk\links_fw\src\rtos\utils_common\src\tda3xx\utils_boot_slaves.c as a reference.
    For more details you can refer to EDMA LLD documentation. EDMA LLD is part of Vision SDK package.

    Regards,
    Rishabh