Part Number: OMAP-L138
Tool/software: TI-RTOS
Hi to Everybody!
I'm using OMAP-L138. DSP is running on BIOS using Syslink feature. There are shared regions (SR0, SR1) defined in *.cfg file:
/* shared region configuration */
var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
/* configure SharedRegion #0 (IPC) */
var SR0Mem = Program.cpu.memoryMap["SR_0"];
SharedRegion.setEntryMeta(0,
new SharedRegion.Entry({
name: "SR0",
base: SR0Mem.base,
len: SR0Mem.len,
ownerProcId: MultiProc.getIdMeta("HOST"),
cacheEnable: false,
isValid: true
})
);
/* configure SharedRegion #1 (program shared region) */
var SR1Mem = Program.cpu.memoryMap["SR_1"];
SharedRegion.setEntryMeta(1,
new SharedRegion.Entry({
name: "Shared region",
base: SR1Mem.base,
len: SR1Mem.len,
ownerProcId: MultiProc.getIdMeta("HOST"),
cacheEnable: false,
isValid: true
})
);
On LINUX-side (in the kernel module), information about Shared Regions is read from each slave executable when loaded from the host.
But I can't see my regions within a such code:
UInt16 regid;
regid = SharedRegion_getIdByName("SR0");
pr_info("SR0 ID: %d\n", regid);
regid = SharedRegion_getIdByName("Shared region");
pr_info("Shared region ID: %d\n", regid);
if (SharedRegion_getEntry(1, &entry) != SharedRegion_S_SUCCESS) {
pr_err("can't get shared region\n");
} else {
pr_info("SharedRegion #1: base 0x%X, len 0x%X, valid %d, name %s, owner %d\n", entry.base, entry.len, entry.isValid, entry.name, entry.ownerProcId);
}
I only get a such return:
SR0 ID: 65535 Shared region ID: 65535 SharedRegion #1: base 0x0, len 0x0, valid 0, name (null), owner 0
Thus I get only SharedRegion_INVALIDREGIONID (0xFFFF).
Linux (HOST) boot configuration is valid: shared regions are defined to use only by DSP.
What I should also to do to get access to shared regions from linux kernel?
shared region configuration