Hi All,
Note: Using BIOS 5.33.05 / DSPLink 1.65.00.03 on the OMAP-L138 with Linux on the ARM Core.
We have designed and developed a fairly large system on the OMAP-L138 C674x core using the aforementioned BIOS/DSPLink. Our simplified overall system architecture is as follow, ADCàMcASP->EDMA0_TC0->DSP. The EDMA0_TC0 HWI has a period of 10msec. Within the DSP have a series of SWI and TSK for computational purpose (using TI fir/biqads/fft/math functions) and the data is periodically moved to ARM core using DSPLink. Our program/data is kept in the DDR/L3, with caching enabled on DDR. Moreover, L2 cache space is 128kB.
We are having an issue where randomly we miss several EDMA0_TC0 HWI (generally happens back to back). This seems to happen once every day to once every several days. Here are some of things we have attempted to alleviate the problem:
Compiler Tuning:
- Our DSP Project, Optimization level are off, disabled SLOOP and set interrupt_threshold=1.
- DSPLink Recompiled with following flags: -g -d"_DEBUG" --no_compress -q -pdr -pdv -pden -ml3 -mv6740 --disable:sploop --interrupt_threshold=1
- RTS6470 Recompiled with the following flags: --extra_options="--interrupt_threshold=1 --opt_level=0"
- IQMath and DSPLib Instead of using a precompiled version, we requested the source from TI and integrated it directly into project. Therefore, we have control over the compiler options.
- Note: We are aware that with Optimization level off the compiler does not attempt to SLOOP or disabled interrupts. Those options are included so we can hopefully enabled –O2 once our problem is resolved.
System tuning:
- Restructured our HWIs such that The EDMA0_TC0 HWI is the highest priority.
- Set interruptMask = "all" for the EDMA0_TC0 HWI
- Moved DSPLink from HWI 4 and 5 to 14 and 15.
- Do very minimal work in our HWI before posing its corresponding SWI.
- Set SYSCFG MSTPRIX Registers with the following values:
- DA8XX_MSTPRI0_REG = 0x44441144;
- DA8XX_MSTPRI1_REG = 0x44420033;
- DA8XX_MSTPRI2_REG = 0x54604404;
- EDMA0_TC0, EDMA0_TC1, DSP, DSP, EDMA1_TC2, etc.
If anyone has any ideas what in the system might be disabling the HWI we would appreciate the help.
(Is there any way to cross post this into the compiler forum as well ? )
Thanks,
Arya B.