Difference between revisions of "R-Car/Virtualization"
(Basic arm64 emulation using QEMU) |
(Improve perfomance using KVM) |
||
Line 15: | Line 15: | ||
</pre> | </pre> | ||
and press <ENTER> to enjoy your new ARM64 system! | and press <ENTER> to enjoy your new ARM64 system! | ||
+ | |||
+ | |||
+ | = Using KVM = | ||
+ | |||
+ | When using an arm64 platform as the host system, guest performance can be improved drastically by making use of the Kernel-based Virtual Machine (KVM). | ||
+ | |||
+ | == Host Kernel Configuration == | ||
+ | |||
+ | Make sure your host kernel has the following options enabled: | ||
+ | <pre> | ||
+ | CONFIG_VIRTUALIZATION=y | ||
+ | CONFIG_KVM=y | ||
+ | </pre> | ||
+ | |||
+ | "renesas_defconfig" should be fine. | ||
+ | |||
+ | |||
+ | == Firmware Support == | ||
+ | |||
+ | To use KVM, the firmware on your board must start Linux in hypervisor (EL2 / HYP) mode. | ||
+ | |||
+ | If your host kernel prints: | ||
+ | <pre> | ||
+ | CPU: All CPU(s) started at EL2 | ||
+ | ... | ||
+ | kvm [1]: Hyp mode initialized successfully | ||
+ | </pre> | ||
+ | during boot up, everything is fine. | ||
+ | |||
+ | If your host kernel prints: | ||
+ | <pre> | ||
+ | CPU: All CPU(s) started at EL1 | ||
+ | ... | ||
+ | kvm [1]: HYP mode not available | ||
+ | </pre> | ||
+ | during bootup, HYP mode is not available, and KVM cannot be used, unless you first replace the firmware of your board with a version that supports HYP mode. | ||
+ | |||
+ | TODO: Document trusted firmware upgrade, including [https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-renesas-rcar-gen3.git;a=blob;f=meta-rcar-gen3/recipes-bsp/arm-trusted-firmware/files/0001-Boot-Normal-World-in-EL2.patch;h=6ce9c0f9d36efe99d901511a7675836f5e1562ac;hb=b4664bea0fa3a72f04f1cb42ce5dfeb9cb428f87 0001-Boot-Normal-World-in-EL2.patch] | ||
+ | |||
+ | == Running QEMU with KVM == | ||
+ | |||
+ | <pre> | ||
+ | $ qemu-system-aarch64 -enable-kvm -m 1024 -cpu cortex-a57 -M virt -nographic -kernel openwrt-arm64-qemu-virt.Image | ||
+ | </pre> | ||
+ | and press <ENTER> to enjoy a faster new ARM64 system! |
Revision as of 08:20, 10 January 2018
Virtualization on Renesas R-Car Platforms
Prerequisites
- QEMU (e.g. "apt-get install qemu-system-arm"),
- A guest image, e.g. "openwrt-arm64-qemu-virt.Image" from OpenWRT.
Running QEMU
$ qemu-system-aarch64 -m 1024 -cpu cortex-a57 -M virt -nographic -kernel openwrt-arm64-qemu-virt.Image
and press <ENTER> to enjoy your new ARM64 system!
Using KVM
When using an arm64 platform as the host system, guest performance can be improved drastically by making use of the Kernel-based Virtual Machine (KVM).
Host Kernel Configuration
Make sure your host kernel has the following options enabled:
CONFIG_VIRTUALIZATION=y CONFIG_KVM=y
"renesas_defconfig" should be fine.
Firmware Support
To use KVM, the firmware on your board must start Linux in hypervisor (EL2 / HYP) mode.
If your host kernel prints:
CPU: All CPU(s) started at EL2 ... kvm [1]: Hyp mode initialized successfully
during boot up, everything is fine.
If your host kernel prints:
CPU: All CPU(s) started at EL1 ... kvm [1]: HYP mode not available
during bootup, HYP mode is not available, and KVM cannot be used, unless you first replace the firmware of your board with a version that supports HYP mode.
TODO: Document trusted firmware upgrade, including 0001-Boot-Normal-World-in-EL2.patch
Running QEMU with KVM
$ qemu-system-aarch64 -enable-kvm -m 1024 -cpu cortex-a57 -M virt -nographic -kernel openwrt-arm64-qemu-virt.Image
and press <ENTER> to enjoy a faster new ARM64 system!