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.

TCI6638K2K: MCSDK Linux and Processor sdk Linux/rtos

Part Number: TCI6638K2K
Hi Everyone, On k2k platform we are using MCSDK Linux earlier and now we have migrated to processor SDK Linux for ARM, Do we need to move from mcsdk to processor SDK rtos for DSP? Currently our MCDK based DSP image is stoping at bios start.(at the same time ARM is running on Linux, based on latest processor SDK Linux 06.01.00.8 Regards, Snehal
  • Hi, Snehal,

    Theorectically, the RTOS binary built from MCSDK should also run regardless the Linux Kernel version running on ARM. It shouldn't stuck at bios_start. Bios_start actually will jump to the highest priority task which created earlier. Have you tried to set a breakpoint at one of the function created before bios_start?

    If there is anything caused by the migration, It may be the memory usage changed between 2 SDKs. The memory configured to be used by remoteproc, cmem, etc. I assume these were preserved though.

    Rex

  • Hi Rex,

    DSP application is stopping before BIOS start, our DSP app is multicore based and we are checking this part.

    Below are the memory configuration between MSCDK and P-SDK Linux,

    MCSDK PDK
    MPM.JSON
    Start addr 0xA0000000 0x90000000
    length 0x1FFFFC00 0x30000000
    Device Tree Reserved
    MSMC (start) 0xc000000 0xc000000
    length 0x600000 0x600000
    dspmem(start) 0xa0000000 0x820000000 *
    length 0x20000000 0x20000000

    Note: *: 0x820000000 is aliased of 0xa0000000 as DDR3A_REMAP_EN is high during boot,

    Apart from this rproc mem l2sram l1sram reserve address remain same in both MCSDK and PDK,

    CMEM is not being used in MCSDK but in P-SDK CMEM is being used, please find below are logs,

    We have tried with align MCSDK memory configuration in mpm.json, cmem and dts to PDK but observation remains same, DSP is stoping.

    Logs:

    MCSDK
    root@k2hk-evm:~# cat /proc/cmem
    Block 0: Pool 0: 1 bufs size 0x57000000 (0x57000000 requested)
    Pool 0 busy bufs:
    Pool 0 free bufs:
    id 0: phys addr 0x829000000
    root@k2hk-evm:~#

    PDK
    root@k2hk-evm:~# cat /proc/cmem
    Block 0: Pool 0: 1 bufs size 0x18000000 (0x18000000 requested)
    Pool 0 busy bufs:
    id 0: phys addr 0x840000000 (cached)
    Pool 0 free bufs:
    root@k2hk-evm:~#

    Regards,

    Snehal

  • Hi,

    Do you have the .map file of the old DSP application from MCSDK? The Linux must be able to parse the DSP image in ELF format, then download it to DSP memory and instruct the DSP core start to run. Do you see any obvious conflict with Linux kernel? E.g, Linux may use the first 512MB of DDR? Linux may use a small region in MSMC?

    Do you know if the DSP code can go main()? where is the Program Counter if you found the BIOS_start() is not executed? Do you have the source code if we want to add some debug code and rebuild?  

    Regards, Eric

  • Hi Rex and Eric,

    DSP application was stopping at PA_setup,

    PA_setup fails for Pa_addMac() api.

    If we bypass packet accelerator setup and usage than the DSP application is running fine.

    Is there anything that needs to enable related to PA on Linux kernel?

    I have found a note in this link that: Keystone-2: PA/PA2 is not supported in NetCP driver. Is this the reason for PA_setup() fails?

    Note: We are running DSP on MCSDK and ARM on SDK Linux 06.01.00.8.

    We have a DSP source code for debugging further.

    Thanks & Regards,

    Snehal

  • Hi,

    If the Pa_addMac() returned an error, what is the error code? Please check the ti\drv\pa\pa.h for error code enumeration. 

    Keystone-2: PA/PA2 is not supported in NetCP driver. ======> This meant the PA is not supported by Linux. I assume in Linux the PA is not powered on and no firmware download. And in your DSP application, as it is in ARM SPI boot mode (Not DSP no-boot mode), will you DSP application download the PA firmware? If not, will Linux download PA firmware?

    In your DSP side code, do you have Init_PASS()?

    if (no_bootMode == TRUE)

    {
    if (Download_PAFirmware ()) ============>Is this executed properly?
    {
    return -1;
    }
    }

    Regards, Eric