Difference between revisions of "R-Car/Virtualization"

From eLinux.org
Jump to: navigation, search
(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!