diff options
author | Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com> | 2020-10-05 08:47:43 +0300 |
---|---|---|
committer | Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com> | 2020-11-17 06:15:27 +0200 |
commit | 44dc9ffbcb89213a9d3e60d00d5d739415ec9adf (patch) | |
tree | 252b886d3ae7a9b05735746f863d76b69239858c /meta-egvirt/recipes-kernel | |
parent | 916e4dd97804d410d3cdcc22ae12fc566aa41774 (diff) |
meta-egvirt, templates: Add virtio-aarch64 machine
This machine is intended to run in ARMv8 virtualized environment that
provides VirtIO devices.
AGL machine configuration files are based on qemuarm64 machine from
meta-agl branch master commit e1da0efcd2eece82b0326798cfeaeb8dd48797fc.
Yocto machine configuration files are based on qemuarm64 machine from
Poky branch dunfell commit 4e931b1d05018923dc145cd97f6f965f5cb6e1a5.
Yocto Linux Kernel is used as recommended in [1]. Its metadata for the
created machine are based on qemuarm64-standard.scc from
yocto-kernel-cache branch yocto-5.4 commit
4aeda12f7f7eb84613ae1fe6e22cd9cd9790c20b.
The rationale behind creating new machine is a wish to have a machine
that could run on other hypervisor/virtual machine monitor that
implements VirtIO, not necessary QEMU. For now, virtio-aarch64 machine
runs under QEMU and OpenSynergy COQOS Hypervisor.
virtio-aarch64 machine includes following changes comparing to
qemuarm64:
* use virtio-gpu instead of VGA display (to be upstreamed to work in
conjunction with runqemu gl, sdl, etc. options)
* use virtio-bus instead of PCI bus QEMU devices
* remove unneeded configurations
[1]: https://www.yoctoproject.org/docs/3.1.2/bsp-guide/bsp-guide.html#released-bsp-recommendations
Bug-AGL: SPEC-3668
Change-Id: Iccfee8613de63770d371a57f0caab1c1eba8d912
Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
Diffstat (limited to 'meta-egvirt/recipes-kernel')
6 files changed, 69 insertions, 0 deletions
diff --git a/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/aarch64.cfg b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/aarch64.cfg new file mode 100644 index 00000000..25381e13 --- /dev/null +++ b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/aarch64.cfg @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: MIT +# +# ARM64 +# +CONFIG_ARM64=y +CONFIG_64BIT=y + +# +# Bus support +# +CONFIG_ARM_AMBA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y + +# +# RTC +# +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" + +# +# on-CPU RTC drivers +# +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_PL031=y diff --git a/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/aarch64.scc b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/aarch64.scc new file mode 100644 index 00000000..1de6faf9 --- /dev/null +++ b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/aarch64.scc @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: MIT +kconf hardware aarch64.cfg diff --git a/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio-aarch64-standard.scc b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio-aarch64-standard.scc new file mode 100644 index 00000000..3a241a0e --- /dev/null +++ b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio-aarch64-standard.scc @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: MIT +define KMACHINE virtio-aarch64 +define KTYPE standard +define KARCH arm64 + +include ktypes/standard/standard.scc +include aarch64.scc +include cfg/8250.scc +include cfg/virtio.scc +include virtio.scc + +# enable the ability to run 32 bit apps +include arch/arm/32bit-compat.scc diff --git a/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio.cfg b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio.cfg new file mode 100644 index 00000000..b8b36e7a --- /dev/null +++ b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio.cfg @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: MIT + +# TODO: upstream to yocto-kernel-cache/cfg/8250.cfg +CONFIG_SERIAL_OF_PLATFORM=y + +# Remove since PCI is not enabled +# CONFIG_SERIAL_8250_PCI is not set + +# TODO: upstream to yocto-kernel-cache/cfg/virtio.cfg +CONFIG_VSOCKETS=y +CONFIG_VSOCKETS_DIAG=y +CONFIG_VIRTIO_VSOCKETS=y +CONFIG_VIRTIO_VSOCKETS_COMMON=y + +# Needed for CONFIG_DRM_VIRTIO_GPU +CONFIG_DRM=y diff --git a/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio.scc b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio.scc new file mode 100644 index 00000000..333ac42b --- /dev/null +++ b/meta-egvirt/recipes-kernel/linux/linux-yocto/virtio-aarch64/virtio.scc @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: MIT +kconf hardware virtio.cfg diff --git a/meta-egvirt/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-egvirt/recipes-kernel/linux/linux-yocto_%.bbappend new file mode 100644 index 00000000..ed48a135 --- /dev/null +++ b/meta-egvirt/recipes-kernel/linux/linux-yocto_%.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:" + +SRC_URI_append_virtio-aarch64 = " \ + file://virtio-aarch64;type=kmeta;destsuffix=virtio-aarch64 \ +" + +COMPATIBLE_MACHINE_virtio-aarch64 = "virtio-aarch64" |