On Monday 02 April 2018 11:16 AM, Qiu Shui wrote:
On Monday, April 2, 2018 at 11:12:12 AM UTC+8, Qiu Shui wrote:
On Thursday, March 29, 2018 at 1:09:46 PM UTC+8, Jan Kiszka wrote:
On 2018-03-29 06:36, Qiu Shui wrote:
I build the armbian with these two patches to the kernel:
[1]
http://git.kiszka.org/?p=linux.git;a=commit;h=f057e9bb4ba2fca0b435d36893eb41ddd57b4208
[2]
http://git.kiszka.org/?p=linux.git;a=commit;h=1c926e27072d4cca76a756058554485067ce472b
But when I build jailhouse with the armbian kernel source files(version: Linux
orangepizero 4.16.0-rc6-sunxi #2 SMP Wed Mar 28 15:33:44 CST 2018 armv7l
GNU/Linux), I got these warnings:
WARNING: "__stack_chk_fail"
[/home/liu/project/kiszka/jailhouse-0.8/driver/jailhouse.ko] undefined!
WARNING: "__hyp_stub_vectors"
[/home/liu/project/kiszka/jailhouse-0.8/driver/jailhouse.ko] undefined!
WARNING: "__stack_chk_guard"
[/home/liu/project/kiszka/jailhouse-0.8/driver/jailhouse.ko] undefined!
I have tried some google solutions but still not solved.
Are there any suggestions?
Regarding __hyp_stub_vectors: you also need
http://git.kiszka.org/?p=linux.git;a=commitdiff;h=2a681cb2213e3ea0f142fae7345fb80208a88a53
The other two issue seem to be related to some build inconsistency: Your
kernel was built without CONFIG_CC_STACKPROTECTOR, but when you build
the Jailhouse module, this feature is considered to be enabled.
Jan
Thank you very much!
After two days trying, I've finally built the kernel and jailhouse module
successfully.
(I am using armbian building scripts and modified the linux-sunxi-dev.config with "#
CONFIG_THUMB2_KERNEL is not set")
Now I can enable jailhouse and create cell:
# jailhouse enable configs/orangepi0.cell
# jailhouse cell create configs/orangepi0-gic-demo.cell
# jailhouse cell list
ID Name State Assigned CPUs Failed
CPUs
0 Orange-Pi0 running 0,2-3
1 orangepi0-gic-demo shut down 1
But when I load the gic-demo.bin, it failed:
# jailhouse cell load orangepi0-gic-demo inmates/demos/arm/gic-demo.bin
Unhandled data read at 0x1f00000(4)
FATAL: unhandled trap (exception class 0x24)
pc=0xc08cc6c0 cpsr=0x20000013 hsr=0x93830007
r0=0x00000190 r1=0x00020000 r2=0x0000a035 r3=0xcf807000
r4=0xcda54e10 r5=0xc1103d00 r6=0x00300402 r7=0xcd8d7480
r8=0x0002300c r9=0x00000285 r10=0x00000000 r11=0xcda47df4
r12=0x00300000 r13=0xcda47dd0 r14=0xc08c9ab8
Parking CPU 3 (Cell: "Orange-Pi0")
Cell "orangepi0-gic-demo" can be loaded
Any suggestions would be greatly appreciated :)
Is there any demo can be used to make sure my jailhouse environments are ready?
Thanks!
I solved this problem by trying some different memory configurations.
The following does work:
mem=448M vmalloc=256M
/* Orangepi0.c */
.hypervisor_memory = {
.phys_start = 0x5f800000,
.size = 0x800000,
},
...
/* RAM */ {
.phys_start = 0x40000000,
.virt_start = 0x40000000,
.size = 0x1f700000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE,
},
/* IVSHMEM shared memory region */ {
.phys_start = 0x5f700000,
.virt_start = 0x5f700000,
.size = 0x100000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
--------
But if I use the following configuration. When I enable jailhouse, it says
"JAILHOUSE_ENABLE: Invalid argument".
/* orangepi0.c */
.hypervisor_memory = {
.phys_start = 0x5c000000,
.size = 0x4000000,
},
......
/* RAM */ {
.phys_start = 0x40000000,
.virt_start = 0x40000000,
.size = 0x1bf00000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE,
},
/* IVSHMEM shared memory region */ {
.phys_start = 0x5bf00000,
.virt_start = 0x5bf00000,
.size = 0x100000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
},
--------
cat /proc/iomem
01c02000-01c02fff : dma-controller@1c02000
01c0f000-01c0ffff : mmc@1c0f000
01c10000-01c10fff : mmc@1c10000
01c19000-01c193ff : usb@1c19000
01c19000-01c193ff : usb@1c19000
01c19400-01c1942b : phy_ctrl
01c1a000-01c1a0ff : usb@1c1a000
01c1a400-01c1a4ff : usb@1c1a400
01c1a800-01c1a803 : pmu0
01c1b000-01c1b0ff : usb@1c1b000
01c1b400-01c1b4ff : usb@1c1b400
01c1b800-01c1b803 : pmu1
01c1c000-01c1c0ff : usb@1c1c000
01c1c400-01c1c4ff : usb@1c1c400
01c1c800-01c1c803 : pmu2
01c1d000-01c1d0ff : usb@1c1d000
01c1d400-01c1d4ff : usb@1c1d400
01c1d800-01c1d803 : pmu3
01c20000-01c203ff : clock@1c20000
01c20800-01c20bff : pinctrl@1c20800
01c20ca0-01c20cbf : watchdog@1c20ca0
01c28000-01c2801f : serial
01c30000-01c3ffff : ethernet@1c30000
01f00000-01f00053 : rtc@1f00000
01f01400-01f014ff : clock@1f01400
01f015c0-01f015c3 : codec-analog@1f015c0
01f02c00-01f02fff : pinctrl@1f02c00
40000000-5bffffff : System RAM
40008000-40ffffff : Kernel code
41100000-412296cb : Kernel data
---------
I don't know what's wrong with the second cell configuration
Make sure that the region described by .hypervisor_memory in the config matches
with the
reserved_memory node in the root cell device tree.
EINVAL is possibly due to the mismatch in root cell DT and root cell config.
Nikhil D
Thanks!
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.