Other Parts Discussed in Thread: BEAGLEBOARD-X15,
Tool/software: Linux
Hi!
We have a setup with a couple of Beagleboard-X15 that is used in a Continous Integration setup where we use the boards to run unit tests both on one of the ARM A15 cores and on one of the TI C66 DSPs.
Running ARM unittests remotely using SSH works flawless.
Running on the DSP works most of the time, but the load of the DSP firmware sometimes intermittently fails with the following traces in dmesg:
[13082.619143] omap-rproc 40800000.dsp: assigned reserved memory node dsp1_cma@88c00000 [13082.634519] remoteproc remoteproc2: 40800000.dsp is available [13082.653586] remoteproc remoteproc2: powering up 40800000.dsp [13082.661259] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 4550324 [13082.676767] omap_hwmod: mmu0_dsp1: _wait_target_disable failed [13082.682661] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0 [13082.688629] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0 [13082.706083] alloc_contig_range: 4 callbacks suppressed [13082.706088] alloc_contig_range: [88c00, 88c03) PFNs busy [13082.719361] alloc_contig_range: [88c00, 88c03) PFNs busy [13082.725893] alloc_contig_range: [88d00, 89100) PFNs busy [13082.731932] alloc_contig_range: [88e00, 89200) PFNs busy [13082.738122] alloc_contig_range: [88e00, 89300) PFNs busy [13082.743757] alloc_contig_range: [89000, 89400) PFNs busy [13082.754792] alloc_contig_range: [89500, 8c500) PFNs busy [13082.761321] alloc_contig_range: [89600, 8c600) PFNs busy [13082.767575] alloc_contig_range: [89600, 8c700) PFNs busy [13082.773787] alloc_contig_range: [89800, 8c800) PFNs busy [13082.781919] omap-rproc 40800000.dsp: failed to allocate dma memory: len 0x3000000 [13082.789479] remoteproc remoteproc2: Failed to process resources: -12 [13082.803299] omap_hwmod: mmu1_dsp1: _wait_target_disable failed [13082.815916] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
All unit tests are compile with the same config.bld and resource table (we are using a custom resource table).
In total we run ~120 unittests and in a normal run of those, 0-5 of them fails during load with similar messages as above. (The trace "Failed to process resources: -12" is always there!).
We use the remoteproc filesystem interface to load the firmware meaning that:
- Copy firmware binary to /lib/firmware/dra7-dsp1-fw.xe66
- bind firmware by echoing "40800000.dsp" to /sys/bus/platform/drivers/omap-rproc/bind
- Poll /sys/kernel/debug/remoteproc/remoteproc2/state until it's "running", if it isn't within 15 seconds, unbind firmware (same echo but to unbind), wait 20 seconds and then continue from 1 again. (We do maximum 5 retries like this)
- Monitor trace0 until some "end-string" is received.
- Unbind by echoing "40800000.dsp" to /sys/bus/platform/drivers/omap-rproc/unbind
All of the above commands are executed from a remote server using SSH.
Most out of all 120 unittests works flawless, and sometimes one retry is enough, but at too many occasions, all of the 5 retries fails...
We are using Processor SDK 04.03.00.05 with CMEM enabled and CMA for DSP1 CMA reconfigured via a DTSI-file to 64 MiB starting at 0x88c00000.