Page 1 of 1

Page table stage 2 translation error

Posted: Wed Apr 24, 2019 1:18 am
by reis220
Hello everyone,

I am using Erika v3 with Jailhouse as hypervisor. While trying to access a memory within Erika, i came across a problem. The error refers to a "fault on the stage 2 translation of an access for a stage 1 translation table walk.". So, the guest's page table is actually giving the fault. I want to find out how to retrieve the address of that table entry.

Another thing that i've noticed is that, even if i can access that memory, i cannot access another contiguous memory afterwards, as the system simply halts forever, while in Linux i can do it.

OIL file:
CPU mySystem {

OS myOs {

/* EE_OPT = "OS_EE_VERBOSE"; */
EE_OPT = "OSEE_DEBUG";
EE_OPT = "OS_EE_APPL_BUILD_DEBUG";
EE_OPT = "OS_EE_BUILD_DEBUG";
EE_OPT = "OSEE_ASSERT";

CFLAGS = "-g -Wall";
CFLAGS = "-mstrict-align";
CFLAGS = "-I/home/joao/Desktop/jailhouse_v0.10/inmates/lib/arm-common/include";
CFLAGS = "-I/usr/aarch64-linux-gnu/include";



CPU_DATA = AARCH64 {
MULTI_STACK = TRUE;
COMPILER = GCC;
IDLEHOOK = TRUE {
HOOKNAME = "idle_hook";
};
};

/* SOC_DATA = NVIDIA_TEGRA_X1; */
SOC_DATA = XILINX_ZYNQ_ULTRASCALE_PLUS;

KERNEL_TYPE = OSEK {
CLASS = ECC1;
};
};

APPDATA aarch64_jailhouse_hello_world {
APP_SRC = "main.c";
};

TASK Task1 {
PRIORITY = 1;
AUTOSTART = TRUE;
STACK = PRIVATE {
SIZE = 1024;
};
SCHEDULE = FULL;

};
};

Re: Page table stage 2 translation error

Posted: Wed Apr 24, 2019 11:04 am
by e.guidieri
Are you trying to access some peripherals registers, don't you?

Re: Page table stage 2 translation error

Posted: Wed Apr 24, 2019 11:48 pm
by reis220
No, i am trying to access some system RAM and not MMIO.

Re: Page table stage 2 translation error

Posted: Thu Apr 25, 2019 2:04 pm
by e.guidieri
So, how do you try to access this memory? It seems that you are not doing it through reference to variables, but through other techniques could you explain what are youd doing and why?