What is the proper way of accessing a specific chip select from the DSP? Does DSP Link provide any convenient functions for doing so?
Thanks,
Ernast
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.
Hi Tsvetolin!
At the moment I have followed a this thread (http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/29500/987081.aspx#987081) without much success.
I am attempting to read/write chip select 2 from the DSP. I have verified that I can access this chip select from the ARM side which means the chip select is configured properly in the hardware and in the kernel. The chip select address ends up being 0x0200 0000.
I have also made the following changes to the dsp configuration. In file CFG_OMAP3530_SHMEM.c I added
the following:
{
10, /* ENTRY : Entry number */
"CS2", /* NAME : Name of the memory region */
0x02000000, /* ADDRPHYS : Physical address */
0x02000000, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1, /* ADDRGPPVIRT : GPP virtual address (if known) */
0xFF, /* SIZE : Size of the memory region */
FALSE, /* SHARED : Shared access memory? */
FALSE /* SYNCD : Synchornized? */
},
In dsplink-omap3530-base.tci I added the following:
var CS2 = prog.module("MEM").create("CS2");
CS2.base = 0x02000000;
CS2.len = 0xFF;
CS2.space = "data";
CS2.createHeap = false;
CS2.comment = "CS2 Mem";
I have also set a blinking light to inform me whenever CS2 has been accessed which I have confirmed works whenever I access CS2 from the ARM side. When I run my executable CS2 is not accessed as there is no blinking light. I cant figure out what I am missing.
Thanks for the help,
Ernast
Ernast,
What version of DSP Link are you using?
EDITED : It appears you are using DspLink Version 1_65_00_03 based on your post on the same topic in the TI-RTOS forum.
Also, it would be helpful to know the version of the Linux BSP you are using as well.
Have you attempted to run a quick experiment with CCS and a JTAG debugger connected to the DSP side to see if things like the DSP MMU are getting in the way?
Brandon,
We are not using the TI BSP as it is not currently being updated by TI for the DM3730. The kernel in it is pretty old and does not have most of the newer features we need. We are using Yocto 1.5 with Linux kernel 3.2.28. We are stuck at 3.2.28 because TI stopped supporting the DM3730 + DSP and the 3.2.28 is the last version you can get DSPlink working. Syslink stopped working at 3.0 or 3.1 and RPMsg does not support the DM3730.
We currently do not have a JTAG debugger for the DSP but we can look into this. I personally think it will be pretty complex to get it up and running? Is there more debugging we can do with out the JTAG?
Shane
Hello Shane,
I am currently working to get an EVM setup so that I can exercise CS2 with both the ARM and DSP. It really sounds like an MMU issue since the hardware seems to be working (ARM can make CS2 toggle when accessing 0x02000000).
Have you double checked your DSP MMU settings for the GPMC address space? Are you able to access the DDR from the DSP?
Hi Jeff!
How can we check the DSP MMU settings? We have tried removing the CS request from the kernel and tried to access CS2 again but without success. Do we need to make CS request in DSP Link? Is there a function in DSP Link analogous to the linux kernels gpmc_cs_request that is necessary to be called before we can attempt to access 0x02000000?
Thanks,
Ernast