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.

OMAP-L138: Inquiry about ListMP_barrier() in IPC

Part Number: OMAP-L138

Hi Experts,

Our customer developed their system with OMAP-L138 for a long time ago, and they’re developing the next generation with OMAP-L138. Customer is using the latest CCS and tools for this project, but, they encountered some built-error with the following message.

      unresolved symbol _mfence, first referenced in C:\Project\D410base\Program\trunk\L138\DspMain\src\ipc\ipc.ae674<Ipc.obj> DspMain C/C++ Problem

it seems that _mfence() is undefined in ListMp.c file.

static inline void ListMP_barrier(void)
{
#if defined(xdc_target__isaCompatible_64P)
    /* Use _mfence to make sure memory transactions are complete */
    _mfence();
    /* Second mfence needed due to errata: See C6670 Advisory 32 */
    _mfence();
#endif
}

Customer is asking follwing inquiries.

  1. As far as customer investigated it, _mfence() processing seems to be necessary only for C66 cores, so, customer is considering that this processing is unnecessary for C674x cores. Is that correct?
  2. Customer believes, this issue occurs because xdc_target__isaCompatible_64P is defined. How should customer remove xdc_target__isaCompatible_64P definition?

Customer is using IPC(v3.50.04.08) now. For previous model, they were using IPC(v3.46.00.02). it seems this old IPC version did not have ListMP_barrier()

It will be really appreciated if you will share any advice/comments on this issue.

Best regards,

Miyazaki