Other Parts Discussed in Thread: OMAP-L138, OMAPL138
Tool/software: Linux
Hi,
So I have a problem being able to load compiled TI-RTOS DSP Firmware from my Linux.
This DSP firmware is a modified TI-RTOS example, it's the USB Audio Example that is compiled for the OMAP-L138.
I have a added a custom resource table to the project and tried to modify the .bld file and the RTSC configuration file using some settings from the MessageQSingle example but the end results in the Linux kernel locking up completely after loading the firmware and the firmware doesn't actually work when loaded this way.
The Firmware works when loaded through the CCS Debug directly into the C6748 inside the chip through a JTAG Debugger.
root@omapl138-lcdk:~/Projects# cd /lib/firmware/ root@omapl138-lcdk:/lib/firmware# ls ipc rproc-dsp-fw root@omapl138-lcdk:/lib/firmware# unlink rproc-dsp-fw root@omapl138-lcdk:/lib/firmware# ln -s ipc/ti_platforms_evmOMAPL138_DSP/omapl138_usb_audio_dsp.out rproc-dsp-fw root@omapl138-lcdk:/lib/firmware# ls -l drwxr-xr-x 3 root root 4096 Jun 4 2018 ipc lrwxrwxrwx 1 root root 59 Mar 26 15:31 rproc-dsp-fw -> ipc/ti_platforms_evmOMAPL138_DSP/omapl138_usb_audio_dsp.out root@omapl138-lcdk:/lib/firmware# cd /sys/bus/platform/drivers/davinci-rproc/ root@omapl138-lcdk:/sys/bus/platform/drivers/davinci-rproc# echo davinci-rproc.0> unbind remoteproc remoteproc0: releasing dsp root@omapl138-lcdk:/sys/bus/platform/drivers/davinci-rproc# echo davinci-rproc.0> bind davinci-rproc davinci-rproc.0: assigned reserved memory node dsp_cma@c3000000 remoteproc remoteproc0: dsp is available root@omapl138-lcdk:/sys/bus/platform/drivers/davinci-rproc# remoteproc remoteproc0: powering up dsp remoteproc remoteproc0: Booting fw image rproc-dsp-fw, size 5462468 virtio_rpmsg_bus virtio0: rpmsg host is online remoteproc remoteproc0: registered virtio0 (type 7) remoteproc remoteproc0: remote processor dsp is now up
This is the set of commands executes to copy the built .out file I compiled in the CCS, linking it to the system link file and then using remoteproc to execute it.
Following this, the Linux kernel locks up and the LCDK Boards has to be restarted. The Linux kernel is running from an SD Card.
In order to get the IPC source table to work, I had to modify the RTSC board settings file for the evmOMAPL138.
I had to modify the DDR to be 0xC100000 since IPC uses 0xC0000000 to 0xC1000000.
I attached the configuration, build and the project files.
I want to just be able to load the firmware via the remoteproc and the later attach Shared Memory support to be able utilize the 128 KB of ARM/DSP shared
memory to share data buffers.