cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
2,613 Views
Registered: ‎02-22-2018

"Unable to handle kernel paging request" error from OpenAMP on a Zynq-7000 platform

Hi,

I try to follow "Libmetal and OpenAMP User UG1186 (v2018.1) May 4, 2018" document to run OpenAMP on the Zedboard.
Xilinx XSDK and Vivado are version 2018.1.

After the boot, I get the following error when I try to load the firmware example "echo" from the console:

...
root@avnet-digilent-zedboard-2018_1:~# echo image_echo_test > /sys/class/remoteproc/remoteproc0/firmware
root@avnet-digilent-zedboard-2018_1:~# echo start > /sys/class/remoteproc/remoteproc0/state
remoteproc remoteproc0: powering up remoteproc@0
remoteproc remoteproc0: Booting fw image image_echo_test, size 2653560
Unable to handle kernel paging request at virtual address 1cf00000
pgd = dd2dc000
[1cf00000] *pgd=00000000
Internal error: Oops - BUG: 5 [#1] PREEMPT SMP ARM
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Modules linked in: rpmsg_user_dev_driver(O) rpmsg_core zynq_remoteproc uio_pdrv_genirq
CPU: 0 PID: 1207 Comm: sh Tainted: G O 4.14.0-xilinx-v2018.1 #2
Hardware name: Xilinx Zynq Platform
task: de5e60c0 task.stack: de568000
PC is at kmem_cache_alloc+0x34/0xa0
LR is at radix_tree_node_alloc.constprop.7+0x94/0xd4
pc : [<c01cc8ec>] lr : [<c06370b0>] psr: a0050093
sp : de569d18 ip : 014000c0 fp : 00000000
r10: 014000c0 r9 : ffffffff r8 : 00000001
r7 : a0050013 r6 : 014000c0 r5 : de400900 r4 : dd1e3a0c
r3 : 00000000 r2 : dd1e3a0c r1 : 1cf00000 r0 : de400900
Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
Control: 18c5387d Table: 1d2dc04a DAC: 00000051
Process sh (pid: 1207, stack limit = 0xde568210)
Stack: (0xde569d18 to 0xde56a000)
9d00: dd1e3a0c 00000000
9d20: 00000000 00000000 00000001 c06370b0 dd311ac0 dd1e3a0c 00000000 c0637160
9d40: 00000000 00000001 00000001 00000000 dd1e3a0c 00000001 00000000 dd1e3a10
9d60: de569db0 dd1e3a0c 7fffffff c0637980 c1d02080 00101000 dd3114c0 014000c0
9d80: dd311ac0 00000000 de569de4 de569de4 dd1e3a0c dd311e40 00000001 dd1c4a18
9da0: dd1c4800 e1084000 de586a10 c06335d8 00000000 00000000 de569de4 00000000
9dc0: dd1e3800 dd311e40 00000000 c05017a8 00000000 014000c0 00000000 dd1c4a18
9de0: 00000001 dd1c4800 00003000 dd1e3800 00000020 dd1c4a18 00000001 c0501914
9e00: 00000000 c03bd6a4 3e404000 e1084000 de586a10 dd1c4800 dd1e3800 c1b00048
9e20: 00000000 00000001 00000014 00000048 00000044 c0501ca4 00000001 dd1e3800
9e40: dd1e3820 00100000 c1d333ec c08321b3 c0501b24 c05012b8 dd1e3800 dd1e3820
9e60: dd1e39bc dd3a54c0 00000000 00000000 00000000 c0502360 00000200 00000002
9e80: dd1e39c4 de569ed8 00000002 dd3a54c0 00100000 00100000 de048bb0 dd311340
9ea0: dd1e3820 dd1e3800 00000006 c1809090 00000051 00000000 00000000 c05027b0
9ec0: 00000006 c1809080 dd311340 de569f88 c1809090 c022a214 00000000 00000000
9ee0: 00000006 c18c9240 c022a0e4 00000000 de569f88 001040b0 de568000 c01d3c58
9f00: 00000000 c01edad8 00000000 de6f0d80 0000000a de6f0d80 de6f0d80 0000000a
9f20: de6f0d80 00000001 00000002 00000001 de6f0d80 0000000a 00000001 c18c9240
9f40: de569f88 00000006 c18c9240 00000006 00000000 de569f88 001040b0 c01d3ecc
9f60: c18c9240 001040b0 00000006 c18c9240 c18c9240 001040b0 00000006 c01071e4
9f80: de568000 c01d403c 00000000 00000000 00000006 00000006 001040b0 b6eeeda8
9fa0: 00000004 c0107020 00000006 001040b0 00000001 001040b0 00000006 00000000
9fc0: 00000006 001040b0 b6eeeda8 00000004 00000006 00000006 00000000 00000000
9fe0: 00000444 beb7c9c0 b6e1ba80 b6e7390c 60050010 00000001 7fc9be77 e955d762
[<c01cc8ec>] (kmem_cache_alloc) from [<c06370b0>] (radix_tree_node_alloc.constprop.7+0x94/0xd4)
[<c06370b0>] (radix_tree_node_alloc.constprop.7) from [<c0637160>] (radix_tree_extend+0x70/0x14c)
[<c0637160>] (radix_tree_extend) from [<c0637980>] (idr_get_free_cmn+0x8c/0x270)
[<c0637980>] (idr_get_free_cmn) from [<c06335d8>] (idr_alloc_cmn+0x5c/0xa4)
[<c06335d8>] (idr_alloc_cmn) from [<c05017a8>] (rproc_idr_alloc+0x6c/0x9c)
[<c05017a8>] (rproc_idr_alloc) from [<c0501914>] (rproc_alloc_vring+0x104/0x1e8)
[<c0501914>] (rproc_alloc_vring) from [<c0501ca4>] (rproc_handle_vdev+0x180/0x1d0)
[<c0501ca4>] (rproc_handle_vdev) from [<c05012b8>] (rproc_handle_resources+0x9c/0xb0)
[<c05012b8>] (rproc_handle_resources) from [<c0502360>] (rproc_boot+0x3c4/0x524)
[<c0502360>] (rproc_boot) from [<c05027b0>] (state_store+0x44/0xc0)
[<c05027b0>] (state_store) from [<c022a214>] (kernfs_fop_write+0x130/0x1a0)
[<c022a214>] (kernfs_fop_write) from [<c01d3c58>] (__vfs_write+0x1c/0x11c)
[<c01d3c58>] (__vfs_write) from [<c01d3ecc>] (vfs_write+0xb8/0x144)
[<c01d3ecc>] (vfs_write) from [<c01d403c>] (SyS_write+0x3c/0x74)
[<c01d403c>] (SyS_write) from [<c0107020>] (ret_fast_syscall+0x0/0x48)
Code: e10f7000 f10c0080 ee1d1f90 e5953000 (e7932001)
Internal error: Oops - BUG: 80000007 [#2] PREEMPT SMP ARM
---[ end trace 9b4b899973405ed4 ]---

...

The full boot log is attached to this message.

The result was same if I create own SDK app using the "echo" example as template.

 

Is there any undocumented change that I miss?

I would be happy to hear your comments

 

Best,
guelermus

 

0 Kudos
7 Replies
2,565 Views
Registered: ‎02-22-2018

Hi again,

Let me add some more files to present the project better.

Best

guelermus

0 Kudos
2,510 Views
Registered: ‎09-04-2019

I have met the similar problem as yours, and have you solved it?  Thank you!

0 Kudos
2,493 Views
Registered: ‎02-22-2018

Sorry, I dont have a solution for ZedBoard until know.

I also followed the same flow for a ZC706 board and it worked fully with v2018.3 tools and to some extent on v2018.1 tools (I have to stop and restart its firmware each time when I run an example).

0 Kudos
2,396 Views
Registered: ‎01-09-2019

Hi

Did you able to solve this issue.  I am also facing the same kernel paging  problem. All pre-built  examples are working fine with zc706 eval platform. 

Facing issues with Custom board based on zc709

 

Screenshot_20191213_215309.png
0 Kudos
2,343 Views
Registered: ‎02-22-2018

My target board were Zedboard and ZC706.
With Zedboard it didint work using SDK 2018.1-3.
Wit ZC706, it didint work using SDK 2018.1 well (some run-time problems).
The only working configuration was ZC706 using SDK 2018.3

Still I have no idea, how the official examples of Xilinx SDK are failed.

0 Kudos
2,307 Views
Registered: ‎01-09-2019

Hi,

I am working on ZC706 Eval Platform (SDK 2018.2 PetaLinux 2018.2) and Custom Board based on ZC706.

All the examples which are given in the UG1186 are working fine on both ZC706 Eval Platform and Custom Board based on ZC706.

Also I can able to change the Remote firmeare(.elf) and verfied the same.

All the examples which is given in the UG1186 are menat for  1GB DDR size. If your want to work on 512 MB DDR chane the  following  files settings.

1. in res_table. c (in SDK)

2. ldscript. ld(In SDK)

3. System-User.dtsi. (in PL)

Replace address  0x3EFFFFFF(Meant for 1GB of DDR)  with  0x1EFFFFFF(512 MB of DDR)

Your Kernel paging isssue because of wrong address setting.

This will solve all your Kernel paging issues.

Thank you.

0 Kudos
2,300 Views
Registered: ‎01-09-2019

Hi,

I am working on ZC706 Eval Platform (SDK 2018.2 PetaLinux 2018.2) and Custom Board based on ZC706.

All the examples which are given in the UG1186 are working fine on both ZC706 Eval Platform and Custom Board based on ZC706.

Also I can able to change the Remote firmeare(.elf) and verfied the same.

All the examples which is given in the UG1186 are menat for  1GB DDR size. If your want to work on 512 MB DDR chane the  following  files settings.

1. in res_table. c (in SDK)

2. ldscript. ld(In SDK)

3. System-User.dtsi. (in PL)

Replace address  0x3EFFFFFF(Meant for 1GB of DDR)  with  0x1EFFFFFF(512 MB of DDR)

Your Kernel paging isssue because of wrong address setting.

This will solve all your Kernel paging issues.

Thank you.

0 Kudos