Hi everyone.
I developing none OS application using OMAP3530 uC and have some problem.
I has adapted x-loader, that loading 2 elf files into SDRAM, one for ARM and another for DSP. ARM application started normally as jumping to it code from x-loader. But how to set DSP to start it's code?
I integrate the IVA2 gel file code in x-loader:
void release_dsp(void)
{
/* Enable DSP-ss functional clock (set bit 0) CM_FCLKEN_IVA2 */
(*(int*)0x48004000) |= 0x1;
/* IVA clk is bypassed CORE clock/2 CM_CLKSEL1_PLL_IVA2 */
(*(int*)0x48004040) = (2<<19);
/* Enable IVA2 DPLL (low power mode bybass -> 5) CM_CLKEN_PLL_IVA2 */
(*(int*)0x48004004) = (1<<4) | (5<<0);
/* Release DSPMMU reset (clear bit 1) -> RM_RSTCTRL_IVA2 */
(*(int*)0x48306050) &= ~(1 << 1);
(*(int*)0x48002400) = ((Elf_header->e_entry/4096) << 10);
/* Set DSP boot mode to WaitInDeadLoop -> CONTROL_IVA2_BOOTMODE */
//(*(int*)0x48002404) = 2;
(*(int*)0x48002404) = 0;
/* Release DSP from reset (clear bit 0) -> RM_RSTCTRL_IVA2 */
(*(int*)0x48306050) &= ~(1 << 0);
printf("C64x+ release from reset\n");
}
Here Elf_header->e_entry contain entry point into DSP code (0x83200000 in my case).
When I debug DSP application in CCS using jtag, it work normally.
Please help to resolve this problem. May be somebody has a work example code?