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.

H264HPVCENC sample run failed with multicore, call ipcBarOpen always failed

Other Parts Discussed in Thread: 66AK2H14

Hi:

I running H264HPVCENC example (

C66x_h264hpvenc_01_00_01_03_ELF

) on 66AK2H14 CPU, when set to multicore mode, it always runs failed when call ipcAttach, ipcOpen, Could someone can give any suggestion? thanks.

debug steps:

        /*--------------------------------------------------------------------*/
        /* When ncores > 1, attach owner core with other cores                */
        /*--------------------------------------------------------------------*/
        // Change sync mode to ProcSync_ALL
        if(ncores > 1)
           ipcAttachOwner(ncores); // will failed here, trace the code, this function will call Ipc_attach(), and this call will failed

        if(create_share_once) {
            if(lParams.ividmc->core_task_ID == IVIDMC_TASK_MASTER) {
                /* Master core creates barrier */
                ipcBarCreate(ncores);
                ipcCreateShare(sizeof(H264HPVENC_Shared_MemTab), (void**)&codecShm);
            } else {
                /* Slave core opens barrier created by master core */
                ipcBarOpen(lParams.ividmc->coreID);
                ipcOpenShare((void**)&codecShm);
            }
            create_share_once = 0;
        }

then I set Ipc Ipc.procSync = Ipc.ProcSync_ALL; in config file, and remove Ipc_Attach call

master core call ipcBarCreate(ncores) will success, but when slave core call ipcBarOpen(lParams.ividmc->coreID) will failed, return value is -11(IPC_E_NOTREADY)

Could someone give suggestion??

 

  • Welcome to the TI E2E forum. I hope you will find many good answers here and in the TI.com documents and in the TI Wiki Pages (for processor issues). Be sure to search those for helpful information and to browse for the questions others may have asked on similar topics (e2e.ti.com). Please read all the links below my signature.

    We will get back to you on the above query shortly. Thank you for your patience.

  • hi e-way,

    As you might know, C66x H264 encoder has been develop/test on C6678 platform. I got some high level steps on how to migrate codecs from Shannon (C6678) to Hawking (K2H). Please see attached doc. I hope this helps.

    2275.StepsMigrateCodec_Shannon2Hawking.txt
    *********************
    For migration from Shannon to Hawking
    -------------------------------------
    1. Update version of tools:
    
    CodeGen DSP compiler 7.4.2
    framework_components_3_24_01_12
    XDAIS 07.23.00.06
    XDCTools DSP RTSC packaging and build tools 3.25.2.70
    EDMA3 LLD Enhanced Direct Memory LLD 2.11.9.8
    SYS/BIOS DSP real-time operating system 6.35.04.50
    IPC DSP inter-process communication 3.0.2.26
    
    -------------------------------------
    2. Update XDCTools version in RTSC tab, select "ti.platforms.evmTCI6636K2H",
    and remove custom platform package for Shannon from "Other Repositories"
    
    -------------------------------------
    3. Copy alg.h and _alg.h (if needed) from FC to codec unit test inc folder, and update include path in source files
    
    -------------------------------------
    4. Update EDMA config to use region config for Hawking
    
    -------------------------------------
    5. Update .cfg to include the following as FC is not built with the matching EDMA3LLD
    environment['xdc.cfg.check.fatal'] = 'false';
    
    -------------------------------------
    6. Update .cfg and/or linker.cmd to use memory sections defined in XDC for K2H platform
    
    -------------------------------------
    7. Check MAR registers for cache settings. Modify if needed.
    
    
    *********************
    For testing on Hawking EVM
    
    Do CPU reset for the cores before loading and running the codec unit test.
    
    
    

    thank you,

    Paula

  • Hi e-way, I found a modified package that a colleague did some time back. No sure if this can help you, but attached for your reference.

    C66x_h264hpvenc_01_00_01_03_ELF_32bit.exe

    C66x_h264hpvenc_01_00_01_03_ELF_Hawking.zip

    Thank you,

    Paula

  • Hi Paula,

    I updated the package "C66x_h264hpvenc_01_00_01_03_ELF_Hawking.zip" to make it build for "ti.platforms.evmTCI6638K2K" platform.

    In this, I got linking error "h264hpvenc_ti.le66" not found.
    This is because "File Search Path for linker is configured to "../../../../../Lib" path. Which is actually 'lib' instead of 'Lib'.

    Regards,
    Hemanth, P
  • Hi Hermanth, thanks for point it out.

    Paula

  • Hi Paula,

    After compiling for TCI6638K2K platform, I loaded the "h264hpvenc_ti_c66x.out" file and ran.
    I am getting "RMAN init failed" error in int stage itself.
    Please suggest me where I done the mistake.

    I used the following suggested packages only for compiling:
    CodeGen DSP compiler 7.4.2
    framework_components_3_24_01_12
    XDAIS 07.23.00.06
    XDCTools DSP RTSC packaging and build tools 3.25.2.70
    EDMA3 LLD Enhanced Direct Memory LLD 2.11.9.8
    SYS/BIOS DSP real-time operating system 6.35.04.50
    IPC DSP inter-process communication 3.0.2.26

    And updated the XDCTools version in RTSC tab and selected "ti.platforms.evmTCI6636K2K".

    Regards,
    Hemanth, P
  • Now, H.264 encoder running fine on TCI6638K2K platform without any issues.
    This is because of EDMA3 lib mismatch with FC 3.24
    Earlier I used EDMA3 LLD 2.11.5 instead of 2.11.9

    Regards,
    Hemanth, P