Other Parts Discussed in Thread: BQ40Z60
Tool/software: Linux
Background:
- Processor SDK 03.03.00.04
- DSP1 and DSP2 are dynamically started and stopped as the system is running using the bind/unbind nodes
Problem:
DSP periodically fails to load.
More Info:
Remote processor start-up looks fine:
[ 417.333737] omap-rproc 40800000.dsp: assigned reserved memory node dsp1_cma@e0000000
[ 417.341684] remoteproc2: 40800000.dsp is available
[ 417.346584] remoteproc2: Note: remoteproc is still under development and considered experimental.
[ 417.355991] remoteproc2: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[ 417.384513] remoteproc2: powering up 40800000.dsp
[ 417.389437] remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 15350528
[ 417.404130] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
[ 417.410032] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
[ 417.415976] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
[ 417.498260] remoteproc2: remote processor 40800000.dsp is now up
[ 417.504904] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 417.510484] remoteproc2: registered virtio0 (type 7)
IPC daemon log reveals some issues (no connection to DSP1 in this case - processor 4 - what I tried to start):
[835.080166] Retrieving command...
[836.080428] LAD_NAMESERVER_GETUINT32: calling NameServer_getUInt32(0x304d0, 'DSP1:MsgQ:01')...
[836.080474] NameServer_getLocal: entry key: 'DSP1:MsgQ:01' not found!
[836.080493] NameServer_getRemote: no socket connection to processor 1
[836.080510] NameServer_getRemote: no socket connection to processor 2
[836.080526] NameServer_getRemote: Sending request via sock: 5
[836.080542] NameServer_getRemote: requesting from procId 3, MessageQ: DSP1:MsgQ:01
[836.080574] NameServer_getRemote: pending on waitFd: 4
[836.080663] NameServer: back from select()
[836.080685] NameServer: Listener got NameServer message from sock: 6!
[836.080709] listener_cb: recvfrom socket: fd: 6
[836.080726] Received ns msg: nbytes: 484, from addr: 61, from vproc: 3
[836.080742] NameServer Reply: instanceName: MessageQ, name: DSP1:MsgQ:01, value: 0x13a8e
[836.080767] NameServer: waiting for unblockFd: 2, and socks: maxfd: 6
[836.080802] NameServer_getRemote: value for MessageQ:DSP1:MsgQ:01 not found.
[836.080822] NameServer_getRemote: no socket connection to processor 4
[836.080837] value = 0x80
[836.080852] status = -5
[836.080867] DONE
DSP emulator connection fails with this error:
"Error connecting to the target: (Error -1143 @ 0x0) Device core was hung. The debugger has forced the device to a ready state and recovered debug control, but your application's state is now corrupt. You should have limited access to memory and registers, but you may need to reset the device to debug further. Emulation package 6.0.407.6)"
It would appear that the remote processor framework thinks everything is OK but that in reality the DSP was not successfully loaded. Any ideas? Is this some sort of caching problem? The test was to start and stop the exact same firmware image over and over. Eventually this failure happens.
Thanks