# Use a common kernel recipe for all VirtIO machines
PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
-# Use newer kernel
-PREFERRED_VERSION_linux-yocto = "5.15.%"
-
EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
IMAGE_CLASSES += "qemuboot"
+++ /dev/null
-FILESEXTRAPATHS:prepend := "${THISDIR}/linux-yocto:"
-
-SRC_URI:append:virtio-all = " \
- git://gerrit.automotivelinux.org/gerrit/src/agl-yocto-kernel-meta.git;protocol=https;type=kmeta;name=agl-meta;destsuffix=agl-kernel-meta;branch=master \
- file://virtio-aarch64-${LINUX_KERNEL_TYPE}.scc \
-"
-
-SRCREV_agl-meta = "c5008f4ba9e1b9f11c1014b53477079e605ceab7"
-
-COMPATIBLE_MACHINE:virtio-aarch64 = "virtio-aarch64"
+++ /dev/null
-# SPDX-License-Identifier: MIT
-define KMACHINE virtio-aarch64
-define KTYPE standard
-define KARCH arm64
-
-include ktypes/standard/standard.scc nopatch
-include arch/arm/aarch64.scc
-include cfg/8250.scc
-include cfg/virtio.scc
-include bsp/virtio/agl-virtio.scc
-
-# enable the ability to run 32 bit apps
-include arch/arm/32bit-compat.scc
-FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
-
-# Cannot just append to SRC_URI, as the metadata interferes with the
-# AGL config fragment scheme
-AGL_KERNEL_SRC:prepend:virtio-all = " \
- git://gerrit.automotivelinux.org/gerrit/src/agl-yocto-kernel-meta.git;protocol=https;type=kmeta;name=agl-meta;destsuffix=agl-kernel-meta;branch=kernel-5.15 \
- file://virtio-aarch64-${LINUX_KERNEL_TYPE}.scc \
-"
-
-SRCREV_agl-meta = "4deb7357eab5962b0553a5ad1f11be5ac35f9da9"
-
-AGL_KCONFIG_FRAGMENTS:append:virtio-all = " \
- virtio-drm.cfg \
- virtio-pci.cfg \
-"
-
+# NOTE: Has to be in bbappend itself because BitBake does not fully
+# parse recipes when checking it
COMPATIBLE_MACHINE:virtio-aarch64 = "virtio-aarch64"
+
+# Reuse base qemuarm64 machine to avoid needing our own kernel metadata
+KMACHINE:virtio-aarch64 = "qemuarm64"
\ No newline at end of file
--- /dev/null
+AGL_KCONFIG_FRAGMENTS += " \
+ virtio-${TUNE_ARCH} \
+ virtio-drm.cfg \
+ virtio-pci.cfg \
+ virtio-scmi.cfg \
+ sound-hda.cfg \
+ virtio-snd.cfg \
+"
qemu-drm.cfg \
"
-AGL_KCONFIG_FRAGMENTS:append:virtio-all = " \
- sound-hda.cfg \
-"
-
# Configuration for using the ARM virt machine (and not versatilepb)
AGL_KCONFIG_FRAGMENTS:append:qemuarm = " qemuarm.cfg"
DEPENDS += "kern-tools-native"
-include linux-agl-config.inc
+require linux-agl-config.inc
+include ${@bb.utils.contains('AGL_FEATURES', 'agl-virtio-guest', 'linux-agl-config-virtio.inc', '', d)}
# returns all the elements from the src uri that are .cfg files
def find_cfgs(d):
--- /dev/null
+# 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
--- /dev/null
+# Enable ARM_SCMI_PROTOCOL ("ARM System Control and Management Interface (SCMI)
+# Message Protocol") config located in menu
+#
+# -> Device Drivers
+# -> Firmware Drivers
+# -> ARM System Control and Management Interface Protocol
+#
+# After that, in the same menu enabled:
+#
+# * ARM_SCMI_TRANSPORT_VIRTIO ("SCMI transport based on VirtIO")
+#
+# and disabled not used features:
+#
+# * ARM_SCMI_TRANSPORT_SMC ("SCMI transport based on SMC")
+# * ARM_SCMI_POWER_DOMAIN ("SCMI power domain driver")
+
+CONFIG_ARM_SCMI_PROTOCOL=y
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+CONFIG_ARM_SCMI_HAVE_MSG=y
+# CONFIG_ARM_SCMI_TRANSPORT_SMC is not set
+CONFIG_ARM_SCMI_TRANSPORT_VIRTIO=y
+# CONFIG_ARM_SCMI_POWER_DOMAIN is not set
+# CONFIG_SENSORS_ARM_SCMI is not set
+# CONFIG_COMMON_CLK_SCMI is not set
+CONFIG_IIO_SCMI=y