Hi,
Our project is trying to utilise DSP for a different task while running real-time video encoding on HDVICP&HDVPSS.
Following Ansari and _Ralph_'s suggestion (http://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/t/226819.aspx#), the memory map conflict seems to be solved and the sample program from ex01_universal_copy_remote (codec_engine_3_23_00_07) can run with HDVICP firmware loaded.
But after running the universal_copy for a few times (normally below 10), the sample will fail with an error message: App-> ERROR: can't open engine remote_copy_dsp. If it is running, the video encoder will hang. The log file for universal_copy with CE_DEBUG=3 says:
[t=0x00007fc3] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Loading server_dsp.xe674 on DSP (0 args)...
[t=0x00012126] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> calling Ipc_control(LOADCALLBACK)...
[t=0x000123c3] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Ipc_control(LOADCALLBACK) status: 0
[t=0x000123fb] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Starting DSP ...
[t=0x03a434d4] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+2] Processor_create_d> Ipc_control(STARTCALLBACK) status: -1
[t=0x03a43518] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: Processor_create_d> Ipc_control(STARTCALLBACK) failed: -1
[t=0x03a43558] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+7] Processor_create_d> Loading and starting DSP server 'server_dsp.xe674' FAILED, status=[0xffffffff]
[t=0x03a4359b] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+E] Processor_delete_d> Enter (proc=0x137f18)
[t=0x03a435c4] [tid=0x4002d490] ti.sdo.ce.ipc.Processor: [+2] Processor_delete_d> Not calling Ipc_control(STOPCALLBACK) because startCallBackStatus = 0xffffffff [-1
If HDVICP&HDVPSS firmware is not loaded, there is no problem with this universal_copy even if running 200+ times.
Before calling universal_copy, the following script is run:
/etc/init.d/pvr-init stop
/etc/init.d/matrix-gui-e stop
echo 0 > /sys/devices/platform/vpss/graphics0/enabled
echo 0 > /sys/devices/platform/vpss/graphics1/enabled
echo 0 > /sys/devices/platform/vpss/graphics2/enabled
#/etc/init.d/load-hd-firmware.sh stop
modprobe syslink
modprobe cmemk phys_start=0x94000000 phys_end=0x947fffff pools=20x4096,10x131072,2x1048576
My linux memory setting is 169M and the memory map is set to be:
var TI816X_DSP_ExtMemMap = {
DDR3_HOST: {
comment: "DDR3 Memory reserved for use by the A8",
name: "DDR3_HOST",
base: 0x80000000,
len: 0x0B000000 /* 176 MB */
},
DDR3_DSP: {
comment: "DDR3 Memory reserved for use by the C674",
name: "DDR3_DSP",
base: 0x99500000,
len: 0x00C00000 /* 24 MB */
},
DDRALGHEAP: {
comment: "DDR3 Memory reserved for use by algorithms on the C674",
name: "DDRALGHEAP",
base: 0x98000000,
len: 0x01400000 /* 8 MB */
},
DDR3_SR1: {
comment: "DDR3 Memory reserved for use by SharedRegion 1",
name: "DDR3_SR1",
base: 0x9A100000,
len: 0x00100000 /* 12 MB */
},
DDR3_SR0: {
comment: "DDR3 Memory reserved for use by SharedRegion 0",
name: "DDR3_SR0",
25,2 13%
comment: "DDR3 Memory reserved for use by SharedRegion 0",
name: "DDR3_SR0",
base: 0x9F700000,
len: 0x00200000 /* 16 MB */
},
};
The CMEM has been check by cat /proc/cmem, all the buffers have been successfully freed.
Is there some idea/hint on how to solve this problem? Thanks in advance for any input.
Regards,
Robert