Part Number:LINUXSDK-OMAPL138
Tool/software: Linux
Hi,
Im trying to build and deploy the sample MessageQ application to a OMAPL138-LCDK board.
With the previous Processor SDK release (04.00.00.04) I could see messages between the ARM and DSP core... However, I have recently returned to this project, and have not been able to replicate these messages after an update to the new SDK version (04.02.00.09). I have also not been able to completely install the required RTOS package (I can install using `--mode text` and just CTRL-C when it gets stuck on 100%, otherwise the GUI helpfully undoes all changes. My installer gets stuck on extracting docs.zip for xdc)... That aside...
I am able to build all linux side libraries, including the required kernel modules... Build all and install to the target rootfs, prepare SD and boot etc... I do this all within the processor SDK makefile.
Software versions in use are:
- ipc_3_47_00_00
- bios_6_52_00_12
- pdk_omapl138_1_0_3
- processor_sdk_rtos_omapl138_4_02_00_09
- ti-cgt-c6000_8.2.2
- ti-cgt-arm_16.9.3.LTS
- xdctools_3_50_03_33_core
I load all required applications, libraries and firmware to my board then try and run the linux side application... This application is never able to find the Named MessageQ on the DSP core (DSP:MsgQ:01). I've added additional output to indicate the error, which shows `App_create: MessageQ Not found (DSP:MsgQ:01)`. This same application runs as expected if it looks for the ARM MessageQ (ie - itself). I can see messages going back and forth...
root@omapl138-lcdk:~# omapl138-lcdk/ex02_messageq/release/app_host DSP --> main: --> Main_main: --> App_create: ^CIpc: Caught SIGINT, calling Ipc_stop... root@omapl138-lcdk:~# omapl138-lcdk/ex02_messageq/release/app_host HOST --> main: --> Main_main: --> App_create: App_create: Host is ready <-- App_create: --> App_exec: App_exec: sending message 1 App_exec: sending message 2 App_exec: sending message 3 App_exec: message received, sending message 4 App_exec: message received, sending message 5 App_exec: message received, sending message 6 App_exec: message received, sending message 7 App_exec: message received, sending message 8 App_exec: message received, sending message 9 App_exec: message received, sending message 10 App_exec: message received, sending message 11 App_exec: message received, sending message 12 App_exec: message received, sending message 13 App_exec: message received, sending message 14 App_exec: message received, sending message 15 App_exec: message received App_exec: message received App_exec: message received <-- App_exec: 0 --> App_delete: <-- App_delete: <-- Main_main: <-- main:
This application is ex02_messageq found within the 'examples' folder of the IPC installation. I have built this using the same processor SDK make file (ti-ipc-examples && ti-ipc-examples_install) and also prepared a separate project with the same results...
I have also added the requisite rproc_mem boot argument, however, this is kinda strange for me... My rsc_table_omapl138.h file indicates that RPMSG_VRING0_DA starts at 0xc3000000, with DATA_DA starting at 0xc3100000.
If I set rproc_mem to be 16M@0xc3000000, then I see the following errors when loading the DSP firmware
remoteproc remoteproc0: dsp is available remoteproc remoteproc0: powering up dsp remoteproc remoteproc0: Booting fw image server_dsp.xe674, size 3723824 virtio_rpmsg_bus virtio0: rpmsg host is online virtio_rpmsg_bus virtio0: creating channel rpmsg-proto addr 0x3d ------------[ cut here ]------------ WARNING: CPU: 0 PID: 632 at net/rpmsg/rpmsg_proto.c:117 rpmsg_sock_get_proc_id+0x44/0x60 [rpmsg_proto] Modules linked in: da8xx_remoteproc sha256_generic ohci_da8xx ohci_hcd usbcore usb_common davinci_wdt phy_da8xx_usb rpmsg_proto virtio_rpmsg_bus rpmsg_core remoteproc virtio virtio_ring firmware_class cryptodev(O) autofs4 CPU: 0 PID: 632 Comm: irq/28-da8xx-re Tainted: G O 4.9.59-ga75d8e9305 #2 Hardware name: AM18x/OMAP-L138 Hawkboard Backtrace: [<c0012f50>] (dump_backtrace) from [<c00131f4>] (show_stack+0x18/0x1c) r7:00000009 r6:00000000 r5:bf048dd4 r4:00000000 [<c00131dc>] (show_stack) from [<c02367d8>] (dump_stack+0x20/0x28) [<c02367b8>] (dump_stack) from [<c0021a6c>] (__warn+0xdc/0x104) [<c0021990>] (__warn) from [<c0021b4c>] (warn_slowpath_null+0x28/0x30) r9:00000000 r8:00000009 r7:bf0490c8 r6:c5c009c0 r5:bf0490c8 r4:ffffffed [<c0021b24>] (warn_slowpath_null) from [<bf0487fc>] (rpmsg_sock_get_proc_id+0x44/0x60 [rpmsg_proto]) [<bf0487b8>] (rpmsg_sock_get_proc_id [rpmsg_proto]) from [<bf0489b0>] (rpmsg_proto_probe+0x20/0x134 [rpmsg_proto]) r5:bf0490c8 r4:c5d1a600 [<bf048990>] (rpmsg_proto_probe [rpmsg_proto]) from [<bf03b444>] (rpmsg_dev_probe+0x98/0x144 [rpmsg_core]) r7:bf0490c8 r6:c5c009c0 r5:bf0490c8 r4:c5d1a600 [<bf03b3ac>] (rpmsg_dev_probe [rpmsg_core]) from [<c02cc7cc>] (driver_probe_device+0x230/0x2dc) r6:00000000 r5:c0691dd8 r4:c5d1a600 [<c02cc59c>] (driver_probe_device) from [<c02cc9dc>] (__device_attach_driver+0xa0/0xd4) r9:c0691db4 r8:00000000 r7:00000001 r6:c5d1a600 r5:c40a5d38 r4:bf0490c8 [<c02cc93c>] (__device_attach_driver) from [<c02ca9fc>] (bus_for_each_drv+0x6c/0x9c) r7:00000001 r6:c02cc93c r5:c40a5d38 r4:00000000 [<c02ca990>] (bus_for_each_drv) from [<c02cc474>] (__device_attach+0xb4/0x11c) r6:c5d1a600 r5:c5d1a634 r4:c5d1a600 [<c02cc3c0>] (__device_attach) from [<c02cca5c>] (device_initial_probe+0x14/0x18) r7:00000000 r6:c5d1a600 r5:bf03baac r4:c5d1a608 [<c02cca48>] (device_initial_probe) from [<c02cba94>] (bus_probe_device+0x8c/0x94) [<c02cba08>] (bus_probe_device) from [<c02c9b50>] (device_add+0x3d0/0x580) r7:00000000 r6:c5d1a600 r5:c5ddc830 r4:c5d1a608 [<c02c9780>] (device_add) from [<c02c9d1c>] (device_register+0x1c/0x20) r10:c413e348 r9:bf0412c4 r8:00000000 r7:c413e300 r6:c5ddc830 r5:00000000 r4:c5d1a600 [<c02c9d00>] (device_register) from [<bf03b35c>] (rpmsg_register_device+0x58/0x94 [rpmsg_core]) r5:00000000 r4:c5d1a600 [<bf03b304>] (rpmsg_register_device [rpmsg_core]) from [<bf041424>] (rpmsg_ns_cb+0x160/0x22c [virtio_rpmsg_bus]) r5:00000000 r4:c5d1a600 [<bf0412c4>] (rpmsg_ns_cb [virtio_rpmsg_bus]) from [<bf042260>] (rpmsg_recv_done+0xd4/0x290 [virtio_rpmsg_bus]) r7:c5c0030c r6:c413e300 r5:c5c00300 r4:c3040000 [<bf04218c>] (rpmsg_recv_done [virtio_rpmsg_bus]) from [<bf020300>] (vring_interrupt+0x40/0x58 [virtio_ring]) r10:c0584728 r9:c067101d r8:c005ff58 r7:c064ad90 r6:00000001 r5:c064ad90 r4:c5ddd000 [<bf0202c0>] (vring_interrupt [virtio_ring]) from [<bf031b6c>] (rproc_vq_interrupt+0x4c/0x70 [remoteproc]) [<bf031b20>] (rproc_vq_interrupt [remoteproc]) from [<bf0b51bc>] (handle_event+0x1c/0x30 [da8xx_remoteproc]) [<bf0b51a0>] (handle_event [da8xx_remoteproc]) from [<c005ff7c>] (irq_thread_fn+0x24/0x5c) r5:c064ad90 r4:c5c00500 [<c005ff58>] (irq_thread_fn) from [<c00601e0>] (irq_thread+0x100/0x1e4) r7:c064ad90 r6:00000001 r5:c40a4000 r4:c5c00500 [<c00600e0>] (irq_thread) from [<c003e6c8>] (kthread+0xdc/0xfc) r10:00000000 r9:00000000 r8:c00600e0 r7:c5c00500 r6:c40a4000 r5:00000000 r4:c5ea99a0 [<c003e5ec>] (kthread) from [<c000fa70>] (ret_from_fork+0x14/0x24) r8:00000000 r7:00000000 r6:00000000 r5:c003e5ec r4:c5ea99a0 ---[ end trace 1612f3c698c578b6 ]--- remoteproc remoteproc0: registered virtio0 (type 7) remoteproc remoteproc0: remote processor dsp is now up
If I set to 16M@0xc3100000
remoteproc remoteproc0: dsp is available remoteproc remoteproc0: powering up dsp remoteproc remoteproc0: Booting fw image server_dsp.xe674, size 3723824 virtio_rpmsg_bus virtio0: rpmsg host is online remoteproc remoteproc0: registered virtio0 (type 7) remoteproc remoteproc0: remote processor dsp is now up
I see no errors, but also see no activity ... Either to the terminal, or the mounted debugfs (empty /debug/remoteproc/remoteproc0/trace0)
Any pointers?