Booting all finished, dropped to user space .[0m.[30;1m<<.[0m.[32mseL4(CPU 0).[0m.[30;1m [decodeUntypedInvocation/205 T0x80bf81c400 "rootserver" @4006f8]: Untyped Retype: Insufficient memory (1 * 2097152 bytes needed, 0 bytes available).>>.[0m Install gic v3 Loading Linux: 'linux' dtb: 'linux-dtb' install_linux_devices@main.cmailto:install_linux_devices@main.c:652 module name: map_frame_hack install_linux_devices@main.cmailto:install_linux_devices@main.c:652 module name: init_ram
We’re currently working on formalising VM support for an iMX8 platform (the Avnet MaaXBoard) building upon the existing sylvain/imx8 and sylvain/gicv3 branches. However on start of the VM we’re seeing the following page fault: libsel4muslcsys: Error attempting syscall 215 libsel4muslcsys: Error attempting syscall 215 libsel4muslcsys: Error attempting syscall 215 Waiting recv Ok -------- .[31;1mPagefault from [Linux]: read prefetch fault @ PC: 0x200 IPA: 0x200, FSR: 0x82000005 Context: x0: 0xb2000000 x1: 0x0 x2: 0xff058169ac x3: 0x3ec6 x4: 0x5527eb8 x5: 0x80000 x6: 0x58169c0 x7: 0x45dad8 x8: 0x5816a00 x9: 0x8c3a000038000000 x10: 0x1100000028000000 x11: 0x10000000 x12: 0x543a00003a040000 pc: 0x200 x14: 0x0 sp: 0x480a58 spsr: 0x3c5 x13: 0x0 x15: 0x1000000 x16: 0xb2000000 x17: 0x480a58 x18: 0x5816bd0 x19: 0x664616f6c x20: 0xb2000000 x21: 0xb0080000 x22: 0x5816a10 x23: 0x405524 x24: 0x5816ab0 x25: 0x5816a40 x26: 0x0 x27: 0xb2000000 x28: 0x480a58 x29: 0x480a50 x30: 0xc63e0000edfe0dd0 .[3.[0mm-------- main_continued@main.cmailto:main_continued@main.c:1134 Failed to run VM <<<<<< From existing reports it is my understanding that the “insufficient memory” and the “error attempting sys call 215” errors are to be expected and are not a concern; please correct me if that is not the case! Any suggestions as to the possible cause of the page fault or hints on how to progress with debugging this issue would be greatly appreciated. Thanks for your help, Stephen This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
I probably should have stated that this is an attempt to run the “vm_minimal” application. Looking at the registers (and I’m no expert in this department) it appears this could be an attempt to access data at address 0xb2000000 which is the location of the DTB, if anyone with great knowledge in this area could confirm that would be great. If that is correct, why would this result in a page fault? Stephen This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
Hello Williams, On 2022-06-09 17:10, WILLIAMS Stephen via Devel wrote:
We’re currently working on formalising VM support for an iMX8 platform (the Avnet MaaXBoard) building upon the existing sylvain/imx8 and sylvain/gicv3 branches.
Mainline seL4 already has support for maaxboard. AFAIK only thing missing is support for GICv3 in camkes' VMM. Greetings, Indan
Thanks for your response. Yes, support for the MaaXBoard is now part of the seL4 mainline (I'm part of the team that added support). For GICv3 we’re using the “sylvain/gicv3” branch of the seL4_projects_libs repo which provides (experimental) support for GICv3 to the CAmkES VMM. Any hints or suggestions on how to progress investigation of the page fault’s underlying cause would be greatly appreciated. Bes regards, Stephen
On 14 Jun 2022, at 18:35, Indan Zupancic
wrote: ***This mail has been sent by an external source***
Hello Williams,
On 2022-06-09 17:10, WILLIAMS Stephen via Devel wrote:
We’re currently working on formalising VM support for an iMX8 platform (the Avnet MaaXBoard) building upon the existing sylvain/imx8 and sylvain/gicv3 branches.
Mainline seL4 already has support for maaxboard.
AFAIK only thing missing is support for GICv3 in camkes' VMM.
Greetings,
Indan
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
Hello Williams, On 2022-06-09 17:10, WILLIAMS Stephen via Devel wrote:
Any suggestions as to the possible cause of the page fault or hints on how to progress with debugging this issue would be greatly appreciated.
Although we don't use camkes' VMM, we had to change our VMM for recent Linux kernel changes, perhaps you're running into the same issue: - Do not fault on reserved GIC register accesses, but return 0 instead. Newer Linux will check for GICv4 support. - Honour Linux's text_offset instead of hard-coding 0x80000. Newer Linux uses 0x0 instead of 0x80000. But the above only applies if the fault address is within the GIC device or if Linux crashes immediately, and both are independent from GICv3 itself. "read prefetch fault @ PC: 0x200 IPA: 0x200" seems to indicate that Linux is trying to execute code from address 0x200, which is probably not what you want. Greetings, Indan
Hi Stephen,
PC 0x200 indicates that the guest has triggered a synchronous
exception as according to the architecture manual, Table D1-7 Vector
offsets from vector table base address, offset 0x200 maps to
Synchronous exception at current Exception level. This causes a
prefetch fault as IPA 0x200 doesn't correspond to physical memory in
the guest. This indicates that the error has happened very early in
the linux boot and it has been unable to create its own virtual
mappings and load its own vector handling functions yet. Considering
that x0 holds the address of the DTB the guest exception probably
happened pretty soon after starting the VM. Maybe its original load
address is incorrect or the initial program counter isn't set to the
start of the guest image. You can query the guest's fault registers
from the seL4 VCPU object to get more information about what the
original fault was: seL4_VCPUReg_ESR, seL4_VCPUReg_FAR
seL4_VCPUReg_VBAR are some of the register fields that can be returned
by a call to seL4_ARM_VCPU_ReadRegs()
(https://docs.sel4.systems/projects/sel4/api-doc.html#read-registers-1).
On Wed, Jun 15, 2022 at 11:33 PM Indan Zupancic
Hello Williams,
On 2022-06-09 17:10, WILLIAMS Stephen via Devel wrote:
Any suggestions as to the possible cause of the page fault or hints on how to progress with debugging this issue would be greatly appreciated.
Although we don't use camkes' VMM, we had to change our VMM for recent Linux kernel changes, perhaps you're running into the same issue:
- Do not fault on reserved GIC register accesses, but return 0 instead. Newer Linux will check for GICv4 support. - Honour Linux's text_offset instead of hard-coding 0x80000. Newer Linux uses 0x0 instead of 0x80000.
But the above only applies if the fault address is within the GIC device or if Linux crashes immediately, and both are independent from GICv3 itself.
"read prefetch fault @ PC: 0x200 IPA: 0x200" seems to indicate that Linux is trying to execute code from address 0x200, which is probably not what you want.
Greetings,
Indan _______________________________________________ Devel mailing list -- devel@sel4.systems To unsubscribe send an email to devel-leave@sel4.systems
participants (3)
-
Indan Zupancic
-
Kent Mcleod
-
WILLIAMS Stephen