Other Parts Discussed in Thread: OMAP-L137
I'm developing a Linux driver that communicates with the DSP. I've managed to map all DSP memory to userspace and I'm able to trigger and receive interrupts. I know that normally DSP Link is used to perform these actions but we are unable to use DSP Bios because it introduces a variable delay in the DSP application. Since we are not using DSP Bios the DSP Link is also not an option.
It's a known fact that the ARM UBL in it's normal behavior disables the DSP (put in wait-and-reset). In my assumption the DSP is reset and then the power to the device is cut using the Power Sleep Control. The DSP device is put in SwRstDisable so no clock and power goes to the device.
- Is this assumption about the DSP power and reset correct or not?
Does this mean that when I want to enable the DSP I have to write to PSC0 @ 0x01c0 0800 in register MDCTL15;
MDCTL[15] = ((MDCTL[15]) & (0xFFFFFFE0)) | (0x3); //0x3 stands for PSC_ENABLE
Then have to write in the PTCMD register of PSC0;
PTCMD |= (0x00000001 << 1); //shift 1 for domain 1
And then reset the DSP to start the execution by writing;
MDCTL[15] &= ~0x100;
- Is this correct what I'm writing here? I used the ARM UBL code as reference but could not figure out what the domain parameters is in the DEVICE_LPSCTransition() function.
- Is it better to first reset the DSP and then change the LPC or the other way around? I'm willing to enable the DSP.
I want to add this functionality to my Linux driver.
- Has anyone experience with controlling the PSC and LPSC registers from within a Linux driver? I assume I can approach these registers the same way I'm approaching CHIPSIG for the interrupts using ioremap( 0x...,1).
Next to this the code currently in the DSP is the DSP UBL. This code needs to be replaced with my own application. Has anyone here experience with programming the DSP from within Linux. I've already managed to map the memory to userspace.
- Has anyone experience with parsing the .out (coff) file and programming it into memory?
- Has anyone an idea how the DSP can be programmed the easy way. I've only thought about parsing the coff file and writing that to the DSP L2PRAM, but maybe there is an easier solution I'm missing.
Thanks in advance,