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