I am using Keystone II device with a setup that currently uses only L1D and L1P as cache and L2 as SRAM. This setup is fully functional and IPC with MessageQ is working fine between ARM and DSP cores.
I am now trying to enable cache also on L2 but changing the platform configuration (L2 cache from 0k to something else) seems to break everything. The sw is compiled and linked correctly but Ipc_start() fails with -1 and the /tmp/LAD/lad.txt has the following messages:
Initializing LAD...
opening FIFO: /tmp/LAD/LADCMDS
Retrieving command...
LAD_CONNECT:
client FIFO name = /tmp/LAD/2253
client PID = 2253
assigned client handle = 0
FIFO /tmp/LAD/2253 created
FIFO /tmp/LAD/2253 opened for writing
sent response
DONE
Retrieving command...
LAD_MULTIPROC_GETCONFIG: calling MultiProc_getConfig()...
MultiProc_getConfig() - 9 procs
Proc 0 - "HOST"
Proc 1 - "CORE0"
Proc 2 - "CORE1"
Proc 3 - "CORE2"
Proc 4 - "CORE3"
Proc 5 - "CORE4"
Proc 6 - "CORE5"
Proc 7 - "CORE6"
Proc 8 - "CORE7"
status = 0
DONE
Sending response...
Retrieving command...
LAD_NAMESERVER_SETUP: calling NameServer_setup()...
NameServer_setup: entered, refCount=0
NameServer_setup: created send socket: 5
NameServer_setup: connect failed: 22, Invalid argument
closing send socket: 5
NameServer_setup: created recv socket: 5
NameServer_setup: created send socket: 6
NameServer_setup: connect failed: 22, Invalid argument
closing send socket: 6
NameServer_setup: created recv socket: 6
NameServer_setup: created send socket: 7
NameServer_setup: connect failed: 22, Invalid argument
closing send socket: 7
NameServer_setup: created recv socket: 7
NameServer_setup: created send socket: 8
NameServer_setup: connect failed: 22, Invalid argument
...
In DSP cache user guide (http://www.ti.com/lit/ug/sprugy8/sprugy8.pdf) it says:
Note—Do not define memory that is to be used or boots up as cache under the
MEMORY directive. This memory is not valid for the linker to place code or
data in. If L1D SRAM and/or L1P SRAM is to be used, it must first be made
available by reducing the cache size. Data or code must be linked into L2 SRAM
or external memory and then copied to L1 at run-time.
Does this also mean that if I have configured a part of L2 as cache e.g. 128kB, I can not link code or data sections into L2? If so, that might be the reason for the failure since I have mapped msgq_heap in L2SRAM in sysbios app.cfg file.
regards,
Marko