From dff7de31ac2b32021df775898464266ef14cc13d Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Wed, 23 Nov 2022 13:39:08 -0500 Subject: linux-yocto: Rework virtio-aarch64 kernel configuration Changes: - Appending the virtio kernel metadata to SRC_URI in the linux-yocto bbappend was having the side-effect of overriding a lot of the changes from the other AGL configuration fragments. To avoid this, prepend the addition to AGL_KCONFIG_FRAGMENTS instead. - Add the HDA sound driver config fragment for virtio machines to allow using the QEMU emulation. - Add config fragment for the virtio kernel to ensure that CONFIG_DRM and the fbdev emulation are on. - Add config fragment for the virtio kernel to turn on CONFIG_PCI, as there are some peripherals that we may need to expose to guests with it. This and the DRM changes will be rationalized in the metadata repo once it's clear we do need them. Bug-AGL: SPEC-4618 Change-Id: I453b84d9840498772afd01404dd374f5c1d245da Signed-off-by: Scott Murray Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/28191 ci-image-build: Jenkins Job builder account Tested-by: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller --- .../recipes-kernel/linux/linux-yocto/virtio-drm.cfg | 3 +++ .../recipes-kernel/linux/linux-yocto/virtio-pci.cfg | 3 +++ .../recipes-kernel/linux/linux-yocto_5.15.bbappend | 9 ++++++++- meta-agl-core/recipes-kernel/linux/linux-agl-config.inc | 4 ++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-drm.cfg create mode 100644 meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-pci.cfg diff --git a/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-drm.cfg b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-drm.cfg new file mode 100644 index 000000000..2facc345e --- /dev/null +++ b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-drm.cfg @@ -0,0 +1,3 @@ +CONFIG_DRM=y +CONFIG_FB=y +CONFIG_DRM_FBDEV_EMULATION=y diff --git a/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-pci.cfg b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-pci.cfg new file mode 100644 index 000000000..bbcaca312 --- /dev/null +++ b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto/virtio-pci.cfg @@ -0,0 +1,3 @@ +CONFIG_PCI=y +CONFIG_VIRTIO_PCI=y +CONFIG_PCI_HOST_GENERIC=y diff --git a/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto_5.15.bbappend b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto_5.15.bbappend index 3a278fa2a..6952436a3 100644 --- a/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto_5.15.bbappend +++ b/meta-agl-bsp/virtualization-layer/recipes-kernel/linux/linux-yocto_5.15.bbappend @@ -1,10 +1,17 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" -SRC_URI:append:virtio-all = " \ +# 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 \ +" + COMPATIBLE_MACHINE:virtio-aarch64 = "virtio-aarch64" diff --git a/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc index bdca5d424..80f7129c2 100644 --- a/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc +++ b/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc @@ -67,6 +67,10 @@ AGL_KCONFIG_FRAGMENTS:append:qemuall = " \ 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" -- cgit 1.2.3-korg