BACKPORT: arm/arm64: KVM: allow userland to request a virtual GICv3

With all of the GICv3 code in place now we allow userland to ask the
kernel for using a virtual GICv3 in the guest.
Also we provide the necessary support for guests setting the memory
addresses for the virtual distributor and redistributors.
This requires some userland code to make use of that feature and
explicitly ask for a virtual GICv3.
Document that KVM_CREATE_IRQCHIP only works for GICv2, but is
considered legacy and using KVM_CREATE_DEVICE is preferred.

BUG=chromium:846515
TEST=build/boot on hana with USE=kvm_host

Change-Id: I01bd94e894f2abed4f9e3e283c57376d22ad3b82
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
(cherry picked from commit ac3d373564d9744068d867a0eb16da2ff8d5ee9d)
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
[SR: context for not having something about IA64 in there]
 Conflicts:
	Documentation/virtual/kvm/api.txt
Reviewed-on: https://chromium-review.googlesource.com/1088041
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
6 files changed