Hi
I'm experiencing a problem when using both watchdog timer and TSK_Sleep function on the DSP on OMAP-L138. Here is a similar problem for OMAP-L137:
http://e2e.ti.com/support/embedded/f/355/t/69643.aspx.
My problem is a little bit different though. From what I established, DSP/BIOS uses TIMER1 for its CLK module:
prog.module("CLK").TIMERSELECT = "Timer 1"; //line from bios_5_41_00_06/packages/ti/bios/config/bios_6748.tci
Unfortunately, TIMER1 is also used for watchdog timer in Linux. Up until now I did not use the watchdog code in Linux and everything was going smoothly. But when I call davinci_wdog_init() and start kicking it with davinci_wdog_kick(), the first call of TSK_Sleep on the DSP hangs. I posted this on BIOS forum, because I'm looking for a solution that would not involve altering Linux code. Linux is using TIMER0 internally, and I don't want to be forced to change that.
I tried changing:
prog.module("CLK").TIMERSELECT = "Timer 1"; TO prog.module("CLK").TIMERSELECT = "Timer 2"; OR prog.module("CLK").TIMERSELECT = "Timer 3";
but my code doesn't compile and issues an error:
js: "./cct_omap_dsp.tcf", line 127: Can't set field
Also, I do not know how to populate the field right above:
prog.module("ISRC").instance("Timer_1").iIntrSelectNum = 40;
How should this be populated for TIMER2 or TIMER3? Their DSP Interrupt descriptions are somewhat different from those of TIMER0 and TIMER1.
The main question: is it feasible to achevie a working internal watchdog timer and have a fully-functional DSP/BIOS system at the same time?
Kind regards
Szymon