sample applications only run once

83 views
Skip to first unread message

a.curtis

unread,
Apr 14, 2016, 6:09:48 PM4/14/16
to open-amp
Hello,

I have a Xilinx Zynq7000 ZC702 board and have successfully built and run the echo_test example. Unfortunately it appears that you can only run the test once. The only way I have found to run the sample again is to reboot the board.

After exiting the echo_test application /dev/rpmsg0 disappears. All the device drivers are still loaded. (although the messages when echo_test exists indicates that it should be been unloaded) 

It is possible to "rmmod -f rpmsg_user_dev_driver". The force seems to be required.

Attempting to "rmmod -f zynq_remoteproc" either complains about an unknown symbol or generates the following output.

root@Xilinx-ZC702-2015_4:~# rmmod -f zynq_remoteproc
Disabling lock debugging due to kernel taint
zynq_remoteproc 0.remoteproc: zynq_remoteproc_remove
zynq_remoteproc 0.remoteproc: Deleting the irq_list
Unable to handle kernel paging request at virtual address b1117984
pgd = ae7bc000
[b1117984] *pgd=3e530811, *pte=00000000, *ppte=00000000
Internal error: Oops - BUG: 807 [#1] PREEMPT SMP ARM
Modules linked in: virtio_rpmsg_bus zynq_remoteproc(-) remoteproc virtio virtio_ring [last unloaded: rpmsg_user_dev_driver]
CPU: 0 PID: 1308 Comm: rmmod Tainted: G  R        O    4.0.0-xilinx #3
Hardware name: Xilinx Zynq Platform
task: ae593180 ti: ad910000 task.ti: ad910000
PC is at rproc_virtio_reset+0x14/0x1c [remoteproc]
LR is at rpmsg_remove+0x20/0xd0 [virtio_rpmsg_bus]
pc : [<7f00d544>]    lr : [<7f018e98>]    psr: 600d0013
sp : ad911e68  ip : 00000000  fp : 00000000
r10: 00000000  r9 : ad910000  r8 : 7f019844
r7 : ad8d3420  r6 : 00000200  r5 : ad8d3410  r4 : ad8b7000
r3 : b1117970  r2 : 00000000  r1 : 00000000  r0 : ad8d3410
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 18c5387d  Table: 3e7bc04a  DAC: 00000015
Process rmmod (pid: 1308, stack limit = 0xad910210)
Stack: (0xad911e68 to 0xad912000)
1e60:                   ad8d3410 00000000 00000000 ad8d3420 ad8d3410 00000000
1e80: ad8d3418 7f0061b0 ad8d3420 7f019844 7f006ab4 00000081 8000df24 8026ee90
1ea0: ae593180 ad8d3454 ad8d3420 8026eef0 ad8d3444 ad8d3420 ae638530 8026e9f0
1ec0: ad8d3420 ad8d1208 ad8d1028 8026c694 ad8d3420 7fffffff 00000000 00000000
1ee0: ad8d3420 ad8d1208 ad8d1208 8026c72c 00000000 7f0063e8 ad8d1000 7f00d0b0
1f00: ae4cf010 ae63c750 ae4cf000 7f0140f8 ae4cf010 7f01493c ae4cf044 8027060c
1f20: 802705f4 ae4cf010 7f01493c 8026ee90 7f01493c ae4cf010 7f01493c 8026f4b8
1f40: 7f01493c 00000a80 7eb64b80 8026ec28 7f014980 8006f4c8 00000022 716e797a
1f60: 6d65725f 7065746f 00636f72 00000001 ad910000 00000000 7eb64a6c 800a656c
1f80: 00100871 00001000 00000001 ad8b86b8 76f7f568 00f57000 000184f8 716e797a
1fa0: 6d65725f 8000dda0 000184f8 716e797a 7eb64b80 00000a80 00000000 7eb64e2c
1fc0: 000184f8 716e797a 6d65725f 00000081 000a97c8 7eb64f23 000a9808 00000000
1fe0: 7eb64b78 7eb64b68 00018350 76e73dd0 600d0010 7eb64b80 00000000 00000000
[<7f00d544>] (rproc_virtio_reset [remoteproc]) from [<7f018e98>] (rpmsg_remove+0x20/0xd0 [virtio_rpmsg_bus])
[<7f018e98>] (rpmsg_remove [virtio_rpmsg_bus]) from [<7f0061b0>] (virtio_dev_remove+0x38/0x5c [virtio])
[<7f0061b0>] (virtio_dev_remove [virtio]) from [<8026ee90>] (__device_release_driver+0x7c/0xc0)
[<8026ee90>] (__device_release_driver) from [<8026eef0>] (device_release_driver+0x1c/0x28)
[<8026eef0>] (device_release_driver) from [<8026e9f0>] (bus_remove_device+0xdc/0xec)
[<8026e9f0>] (bus_remove_device) from [<8026c694>] (device_del+0x140/0x1cc)
[<8026c694>] (device_del) from [<8026c72c>] (device_unregister+0xc/0x18)
[<8026c72c>] (device_unregister) from [<7f0063e8>] (unregister_virtio_device+0xc/0x20 [virtio])
[<7f0063e8>] (unregister_virtio_device [virtio]) from [<7f00d0b0>] (rproc_del+0x30/0x5c [remoteproc])
[<7f00d0b0>] (rproc_del [remoteproc]) from [<7f0140f8>] (zynq_remoteproc_remove+0x40/0x78 [zynq_remoteproc])
[<7f0140f8>] (zynq_remoteproc_remove [zynq_remoteproc]) from [<8027060c>] (platform_drv_remove+0x18/0x30)
[<8027060c>] (platform_drv_remove) from [<8026ee90>] (__device_release_driver+0x7c/0xc0)
[<8026ee90>] (__device_release_driver) from [<8026f4b8>] (driver_detach+0x84/0xac)
[<8026f4b8>] (driver_detach) from [<8026ec28>] (bus_remove_driver+0x64/0x8c)
[<8026ec28>] (bus_remove_driver) from [<8006f4c8>] (SyS_delete_module+0x15c/0x1c8)
[<8006f4c8>] (SyS_delete_module) from [<8000dda0>] (ret_fast_syscall+0x0/0x34)
Code: e5902200 e593325c e0833002 e3a02000 (e5c32014) 
---[ end trace ab976784ff503ac0 ]---
Segmentation fault

Note: The petalinux version is 2015.4

TIA 

Jiaying Liang

unread,
Apr 14, 2016, 6:25:33 PM4/14/16
to open...@googlegroups.com

Hello,

 

The current demo does require user to manually remove the rpmsg user module and then the remoteproc module since rpmsg user module depends on virtio_rpmsg_bus and then depends on remoteproc and virtio driver.

 

Best Regards,

Wendy

--
You received this message because you are subscribed to the Google Groups "open-amp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-amp+u...@googlegroups.com.
To post to this group, send email to open...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.

Allen Curtis

unread,
Apr 14, 2016, 7:02:04 PM4/14/16
to open...@googlegroups.com

Hello Wendy,

The current demo does require user to manually remove the rpmsg user module and then the remoteproc module since rpmsg user module depends on virtio_rpmsg_bus and then depends on remoteproc and virtio driver.

 

As I mentioned in my posting, I did attempt to remove the rpmsg user module and then the remoteproc module. rpmsg would not remove with specifying a force. Removing remoteproc caused a seg fault.

Could you provide the necessary commands? Perhaps I forgot an option.

Thanks

Jiaying Liang

unread,
Apr 14, 2016, 7:49:10 PM4/14/16
to open...@googlegroups.com

Hello Allen,

 

From your previous log,  it looks like when using rmmod –f to remove the rpmsg user module, it doesn’t remove the virtio_rpmsg_bus.

 

Please try

# modprobe -r rpmsg_user_dev_driver

# modprobe -r zyqn_remoteproc

 

Or

# rmmod -f  rpmsg_user_dev_driver

# rmmod -f virtio_rpmsg_bus

 

Before removing the zynq_remoteproc

 

However, I haven’t see this kernel panic before.

 

Since you are using petalinux, did you use the zynq_remoteproc from the kernel source, and the rpmsg user modules from your petalinux project?

 

Best Regards,

Wendy

--

You received this message because you are subscribed to the Google Groups "open-amp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to


To post to this group, send email to

a.curtis

unread,
Apr 15, 2016, 6:12:01 PM4/15/16
to open-amp

From your previous log,  it looks like when using rmmod –f to remove the rpmsg user module, it doesn’t remove the virtio_rpmsg_bus.

 

Please try

# modprobe -r rpmsg_user_dev_driver

# modprobe -r zyqn_remoteproc

 

Or

# rmmod -f  rpmsg_user_dev_driver

# rmmod -f virtio_rpmsg_bus

 


Hello Wendy,

Using "modprobe -r" vs. "rmmod -f" did the trick. Everything unloaded without errors and I was able to run again. Perhaps when using rmmod you need to include the "-a" option?

Thanks

Reply all
Reply to author
Forward
0 new messages