summaryrefslogtreecommitdiffstats
path: root/meta-agl-core/recipes-kernel/linux
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2021-06-27 14:36:00 -0400
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2021-06-29 21:31:01 +0000
commit74a7b60c94e21caa47334aeb975bb1af8fcb4efd (patch)
tree07355e73b63fc33afc5c43cb88f28862e9c93a55 /meta-agl-core/recipes-kernel/linux
parent820d8ac3e5c2ff3e110932e1ed08ea24ffad156c (diff)
Refactor kernel configuration fragment handling
Refactor the kernel configuration fragment handling to shift all AGL applied configuration fragments into a new AGL_KCONFIG_FRAGMENTS variable that is used to generate SRC_URI and KERNEL_CONFIG_FRAGMENTS additions for the various BSPs. The intent is to make it simple to disable AGL provided configuration in downstream builds as the IC EG has expressed as a requirement. Additionally, the rework has allowed for some clean up of accumulated cruft. In practice, clearing AGL_KCONFIG_FRAGMENTS drops all non-BSP provided kernel configuration with the exception of some qemu BSP related additions required for AGL CI and some explicitly configurable things like netboot support. Notable changes: - Instead of always using AGL's own fragment merging logic on top of the BSP kernel recipe, an effort is now made to leverage the BSP recipes' own merging schemes, so there are now separate include files for kernel-yocto.bbclass and plain kernel.bbclass based kernel recipes, as well as a common include file that defines the AGL_KCONFIG_FRAGMENTS variable and its derivations. That file can be included directly in bbappends for BSP kernel recipes that use the KERNEL_CONFIG_FRAGMENTS scheme (e.g. meta-ti, meta-qcom). - The SMACK enabling configuration in meta-app-framework has been updated to supply different fragments for enabling SMACK by default for 4.x and 5.x kernels. This removes a warning from always supplying the old configuration, and allows providing a CONFIG_LSM definition to ensure over-riding any BSP modifications. This allows removing the previous hack to handle CONFIG_LSM being set in the defconfigs in linux-raspberrypi. - By request, the linux-yocto support from meta-agl-bsp/meta-core has been rationalized into meta-agl-core to improve the experience when using meta-agl-core standalone for testing. - All demo supporting kernel configuration has been removed, a subsequent change to meta-agl-demo will add it there by leveraging AGL_KCONFIG_FRAGMENTS. - The hardware device support has been split out of the can-bus.cfg fragment, in favor of shifting it to meta-agl-demo. A few other stray non-CAN configuration options have also been removed from can-bus.cfg, as they do not seem to be required. Bug-AGL: SPEC-3983 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: If6662fd36e26cec767b1d53b1188a74d01ef9dcf Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/26460 Reviewed-by: Hiroyuki Ishii <ishii.hiroyuki002@jp.panasonic.com> Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account
Diffstat (limited to 'meta-agl-core/recipes-kernel/linux')
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl-config.inc85
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-agl.inc126
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-yocto-agl.inc12
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux-yocto_%.bbappend1
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/btusb.cfg32
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg32
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/hid.cfg1
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg3
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg26
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/joystick.cfg9
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg1
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/nfc.cfg34
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/procevent.cfg2
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/qemu-drm.cfg (renamed from meta-agl-core/recipes-kernel/linux/linux/drm.cfg)0
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/qemu-virtio.cfg6
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/qemuarm.cfg8
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/rtc.cfg7
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg4
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg1
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/uinput.cfg3
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usb.cfg8
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg2
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg7
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/uvc.cfg4
-rw-r--r--meta-agl-core/recipes-kernel/linux/linux/wifi.cfg6
25 files changed, 121 insertions, 299 deletions
diff --git a/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc b/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc
new file mode 100644
index 000000000..4003dd970
--- /dev/null
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl-config.inc
@@ -0,0 +1,85 @@
+# Common include file that defines AGL's variables for kernel
+# configuration.
+#
+# Can be included directly for kernel.bbclass based recipes that
+# use their own config fragment merging scheme, or use the
+# KERNEL_CONFIG_FRAGMENTS variable (e.g. meta-ti, meta-qcom).
+#
+# Fragments should be added to AGL_KCONFIG_FRAGMENTS as just the
+# .cfg filename with +=. Appending to AGL_KCONFIG_FRAGMENTS (i.e.
+# using _append) should only be done for:
+# - Specific AGL features that set an override in their feature
+# template, e.g. agl-netboot.
+# - To add essential configuration for core target machines like
+# qemu. Note that appending fragments directly to SRC_URI
+# would work for qemu targets since they use linux-yocto, but
+# the AGL_KCONFIG_FRAGMENTS mechanism is recommended for
+# consistency and to preserve the option of disabling all AGL
+# additions by overriding AGL_KERNEL_SRC.
+#
+# In general, care shoud be taken to preserve the ability to set
+# AGL_KCONFIG_FRAGMENTS to "" to disable non-essential (from a build
+# perspective) AGL additions.
+#
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux:"
+
+# NOTE: AGL_KERNEL_SRC is explicitly intended as an intermediate variable
+# that can be used as a last resort to completely disable all AGL
+# additions, modifying or appending it is not recommended.
+AGL_KERNEL_SRC ?= "${@' '.join(['file://' + x for x in d.getVar('AGL_KCONFIG_FRAGMENTS').split()])}"
+
+SRC_URI_append = " ${AGL_KERNEL_SRC}"
+
+# For meta-ti and meta-qcom
+KERNEL_CONFIG_FRAGMENTS ?= "${@' '.join(['${WORKDIR}/' + x for x in d.getVar('AGL_KCONFIG_FRAGMENTS').split()])}"
+
+# Extra configuration options for the AGL kernel
+AGL_KCONFIG_FRAGMENTS += " \
+ can-bus.cfg \
+ fanotify.cfg \
+ overlayfs.cfg \
+"
+
+AGL_KCONFIG_FRAGMENTS += " ${@bb.utils.contains('AGL_XEN_GUEST_WANTED','1','xen_domu.cfg','',d)}"
+
+# Base ALSA support and other sound related configuration
+AGL_KCONFIG_FRAGMENTS += "sound.cfg"
+
+# Enable support for SystemTap
+AGL_KCONFIG_FRAGMENTS += "${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'systemtap.cfg', '', d)}"
+
+#
+# Feature override and qemu specific appends:
+#
+
+# Enable required features for the agl-netboot feature
+AGL_KCONFIG_FRAGMENTS_append_netboot = " \
+ nbd.cfg \
+ ramdisk.cfg \
+"
+
+# Add hda audio and required virtio device support for qemu
+AGL_KCONFIG_FRAGMENTS_append_qemuall = " \
+ sound-hda.cfg \
+ qemu-virtio.cfg \
+ qemu-drm.cfg \
+"
+
+# Configuration for using the ARM virt machine (and not versatilepb)
+AGL_KCONFIG_FRAGMENTS_append_qemuarm = " qemuarm.cfg"
+
+# Additional drivers for virtual machines
+# OVERRIDES save us some c'n'p below ...
+OVERRIDES_prepend_qemux86 = "virtualmachine:"
+OVERRIDES_prepend_qemux86-64 = "virtualmachine:"
+AGL_KCONFIG_FRAGMENTS_append_virtualmachine = " vbox-vmware-sata.cfg"
+
+# Extra configuration for using qemux86-64 image on physical hardware
+AGL_KCONFIG_FRAGMENTS_append_qemux86-64 = " \
+ x86-extra-graphic-devices.cfg \
+ x86-net-devices.cfg \
+ x86-security-tpm.cfg \
+ x86-usb-devices.cfg \
+ x86-upsquare.cfg \
+"
diff --git a/meta-agl-core/recipes-kernel/linux/linux-agl.inc b/meta-agl-core/recipes-kernel/linux/linux-agl.inc
index cd960ef6d..547c23987 100644
--- a/meta-agl-core/recipes-kernel/linux/linux-agl.inc
+++ b/meta-agl-core/recipes-kernel/linux/linux-agl.inc
@@ -1,7 +1,10 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/linux:"
+# Include file intended for kernel.bbclass based recipes that do not
+# have their own config fragment merging scheme.
DEPENDS += "kern-tools-native"
+include linux-agl-config.inc
+
# returns all the elements from the src uri that are .cfg files
def find_cfgs(d):
sources=src_patches(d, True)
@@ -13,120 +16,9 @@ def find_cfgs(d):
return sources_list
do_configure_append () {
- [ ! -f .config ] && cp -a ${WORKDIR}/defconfig .config
- # Need to clear CONFIG_LSM for 5.1+ kernels to ensure it'll get
- # regenerated to reflect configuration changes (e.g. SMACK).
- sed -i '/^CONFIG_LSM/d' .config
- merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
- yes '' | make oldconfig
+ if [ -n "${AGL_KCONFIG_FRAGMENTS}" ]; then
+ [ ! -f .config ] && cp -a ${WORKDIR}/defconfig .config
+ merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
+ yes '' | make oldconfig
+ fi
}
-
-# Extra configuration options for the AGL kernel
-SRC_URI_append = "\
- file://can-bus.cfg \
- file://usb.cfg \
- file://uvc.cfg \
- file://joystick.cfg \
- file://fanotify.cfg \
- file://uinput.cfg \
- file://hid.cfg \
- file://drm.cfg \
- file://btusb.cfg \
- file://usbaudio.cfg \
- file://usbmodem.cfg \
- file://i2c-led.cfg \
- file://nfc.cfg \
- file://overlayfs.cfg \
- "
-
-SRC_URI_append = " ${@bb.utils.contains('AGL_XEN_GUEST_WANTED','1','file://xen_domu.cfg','',d)}"
-
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/can-bus.cfg"
-# Enable support for usb video class for usb camera devices
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/uvc.cfg"
-# Enable support for joystick devices
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/joystick.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/fanotify.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/uinput.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/hid.cfg"
-# Enable DRM support for graphics
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/drm.cfg"
-# Enable Bluetooth USB devices
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/btusb.cfg"
-# Enable USB audio devices
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/usbaudio.cfg"
-# Enable I2C and LED for demontrator
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/i2c-led.cfg"
-# Enable NFC devices
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/nfc.cfg"
-# Enable overlayfs filesystem support
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/overlayfs.cfg"
-# Enable XEN support of the guest
-KERNEL_CONFIG_FRAGMENTS_append = " ${@bb.utils.contains('AGL_XEN_GUEST_WANTED','1','${WORKDIR}/xen_domu.cfg','',d)}"
-
-# Enable required features for the agl-netboot feature
-SRC_URI_append_netboot = " file://nbd.cfg \
- file://ramdisk.cfg"
-KERNEL_CONFIG_FRAGMENTS_append_netboot = " ${WORKDIR}/nbd.cfg ${WORKDIR}/ramdisk.cfg"
-
-# Enable support for TP-Link TL-W722N USB Wifi adapter (rev 1 and 2)
-SRC_URI_append = " file://wifi.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/wifi.cfg"
-
-# Enable support for RTLSDR
-SRC_URI_append = " file://rtl_sdr.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/rtl_sdr.cfg"
-
-# Additional drivers for virtual machines
-# OVERRIDES save us some c'n'p below ...
-OVERRIDES_prepend_qemux86 = "virtualmachine:"
-OVERRIDES_prepend_qemux86-64 = "virtualmachine:"
-SRC_URI_append_virtualmachine = " file://vbox-vmware-sata.cfg"
-KERNEL_CONFIG_FRAGMENTS_append_virtualmachine = " ${WORKDIR}/vbox-vmware-sata.cfg"
-
-# Extra configuration for using qemux86-64 image on physical hardware
-SRC_URI_append_qemux86-64 = "\
- file://x86-extra-graphic-devices.cfg \
- file://x86-net-devices.cfg \
- file://x86-security-tpm.cfg \
- file://x86-usb-devices.cfg \
- file://x86-upsquare.cfg \
-"
-KERNEL_CONFIG_FRAGMENTS_append_qemux86-64 = "\
- ${WORKDIR}/x86-extra-graphic-devices.cfg \
- ${WORKDIR}/x86-net-devices.cfg \
- ${WORKDIR}/x86-security-tpm.cfg \
- ${WORKDIR}/x86-usb-devices.cfg \
- ${WORKDIR}/x86-upsquare.cfg \
-"
-
-# Enable support for smack
-KERNEL_CONFIG_FRAGMENTS_append_with-lsm-smack = "\
- ${WORKDIR}/audit.cfg \
- ${WORKDIR}/smack.cfg \
- ${WORKDIR}/smack-default-lsm.cfg \
-"
-
-# ALSA support and other sound related configuration
-SRC_URI_append = " file://sound.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/sound.cfg"
-
-# add hda audio for qemu
-SRC_URI_append_qemuall = " file://sound-hda.cfg"
-KERNEL_CONFIG_FRAGMENTS_append_qemuall = " ${WORKDIR}/sound-hda.cfg"
-
-# iio-dummy-device support for test iiodevice
-SRC_URI_append = " file://iiodevice.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/iiodevice.cfg"
-
-# external rtc support via e.g. http://wiki.seeedstudio.com/Grove-RTC/
-SRC_URI_append = " file://rtc.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/rtc.cfg"
-
-# netfilter options
-SRC_URI_append = " file://netfilter.cfg"
-KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/netfilter.cfg"
-
-# Enable support for SystemTap
-SRC_URI_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'file://systemtap.cfg', '', d)}"
-KERNEL_CONFIG_FRAGMENTS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', '${WORKDIR}/systemtap.cfg', '', d)}"
diff --git a/meta-agl-core/recipes-kernel/linux/linux-yocto-agl.inc b/meta-agl-core/recipes-kernel/linux/linux-yocto-agl.inc
new file mode 100644
index 000000000..dd4e8e87c
--- /dev/null
+++ b/meta-agl-core/recipes-kernel/linux/linux-yocto-agl.inc
@@ -0,0 +1,12 @@
+# Include file intended for kernel-yocto.bbclass based recipes.
+
+include linux-agl-config.inc
+
+# For qemuarm, build a generic v7 kernel instead of the arm926j one that
+# upstream qemuarm defaults to.
+KBUILD_DEFCONFIG_qemuarm = "multi_v7_defconfig"
+
+# Use alldefconfig for the qemu targets, but let other kernel-yocto
+# based BSPs use their own defaults (note that linux-renesas and
+# linux-raspberrypi also default to alldefconfig).
+KCONFIG_MODE_qemuall = "--alldefconfig"
diff --git a/meta-agl-core/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-agl-core/recipes-kernel/linux/linux-yocto_%.bbappend
new file mode 100644
index 000000000..808df2d09
--- /dev/null
+++ b/meta-agl-core/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}-agl.inc', '', d)}
diff --git a/meta-agl-core/recipes-kernel/linux/linux/btusb.cfg b/meta-agl-core/recipes-kernel/linux/linux/btusb.cfg
deleted file mode 100644
index 4a4c35a05..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/btusb.cfg
+++ /dev/null
@@ -1,32 +0,0 @@
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_LEDS=y
-# CONFIG_BT_SELFTEST is not set
-CONFIG_BT_DEBUGFS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_BCM=y
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_CMAC=m
-
-#
-# Bluetooth AVRCP support
-#
-CONFIG_INPUT_UINPUT=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg b/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg
index 2f24b7607..d7c7c7741 100644
--- a/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/can-bus.cfg
@@ -1,8 +1,3 @@
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-# CONFIG_TASK_XACCT is not set
-CONFIG_USER_RETURN_NOTIFIER=y
-CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
@@ -12,31 +7,4 @@ CONFIG_CAN_J1939=m
#
# CAN Device Drivers
#
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
CONFIG_CAN_VCAN=m
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_LEDS is not set
-# CONFIG_CAN_SJA1000 is not set
-# CONFIG_CAN_M_CAN is not set
-# CONFIG_CAN_CC770 is not set
-
-#
-# CAN SPI interfaces
-#
-CONFIG_CAN_MCP251X=m
-
-#
-# CAN USB interfaces
-#
-# CONFIG_CAN_EMS_USB is not set
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_MCBA_USB=m
-# CONFIG_CAN_SOFTING is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
diff --git a/meta-agl-core/recipes-kernel/linux/linux/hid.cfg b/meta-agl-core/recipes-kernel/linux/linux/hid.cfg
deleted file mode 100644
index 327c753ae..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/hid.cfg
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_HID_MULTITOUCH=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg b/meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg
deleted file mode 100644
index 248b5118a..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/i2c-led.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# enabling I2C and LED for demonstrator
-CONFIG_I2C_TINY_USB=y
-CONFIG_LEDS_BLINKM=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg b/meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg
deleted file mode 100644
index c5b8ff35e..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/iiodevice.cfg
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Extcon Device Drivers
-#
-CONFIG_IIO=y
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=y
-CONFIG_IIO_KFIFO_BUF=y
-CONFIG_IIO_CONFIGFS=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-CONFIG_IIO_SW_DEVICE=m
-CONFIG_IIO_SW_TRIGGER=m
-
-#
-# IIO dummy driver
-#
-CONFIG_IIO_DUMMY_EVGEN=m
-CONFIG_IIO_SIMPLE_DUMMY=m
-CONFIG_IIO_SIMPLE_DUMMY_EVENTS=y
-CONFIG_IIO_SIMPLE_DUMMY_BUFFER=y
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_HRTIMER_TRIGGER=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
diff --git a/meta-agl-core/recipes-kernel/linux/linux/joystick.cfg b/meta-agl-core/recipes-kernel/linux/linux/joystick.cfg
deleted file mode 100644
index 2201bcb00..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/joystick.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-CONFIG_INPUT_JOYDEV=y
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ADI=y
-CONFIG_GAMEPORT=y
-CONFIG_HID_LOGITECH=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_LOGITECH_HIDPP=y
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIG940_FF=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg b/meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg
deleted file mode 100644
index 34be704c1..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/netfilter.cfg
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
diff --git a/meta-agl-core/recipes-kernel/linux/linux/nfc.cfg b/meta-agl-core/recipes-kernel/linux/linux/nfc.cfg
deleted file mode 100644
index 6d863a075..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/nfc.cfg
+++ /dev/null
@@ -1,34 +0,0 @@
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-CONFIG_NFC_TRF7970A=m
-CONFIG_NFC_MEI_PHY=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_FDP=m
-CONFIG_NFC_FDP_I2C=m
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_PN544_MEI=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-CONFIG_NFC_PN533_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-CONFIG_NFC_MICROREAD_MEI=m
-CONFIG_NFC_MRVL=m
-CONFIG_NFC_MRVL_USB=m
-CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_MRVL_SPI=m
-CONFIG_NFC_ST21NFCA=m
-CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST_NCI=m
-CONFIG_NFC_ST_NCI_I2C=m
-CONFIG_NFC_ST_NCI_SPI=m
-CONFIG_NFC_NXP_NCI=m
-CONFIG_NFC_NXP_NCI_I2C=m
-CONFIG_NFC_S3FWRN5=m
-CONFIG_NFC_S3FWRN5_I2C=m
-CONFIG_NFC_ST95HF=m
diff --git a/meta-agl-core/recipes-kernel/linux/linux/procevent.cfg b/meta-agl-core/recipes-kernel/linux/linux/procevent.cfg
deleted file mode 100644
index 6e08c25bc..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/procevent.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/drm.cfg b/meta-agl-core/recipes-kernel/linux/linux/qemu-drm.cfg
index 65fe71cd0..65fe71cd0 100644
--- a/meta-agl-core/recipes-kernel/linux/linux/drm.cfg
+++ b/meta-agl-core/recipes-kernel/linux/linux/qemu-drm.cfg
diff --git a/meta-agl-core/recipes-kernel/linux/linux/qemu-virtio.cfg b/meta-agl-core/recipes-kernel/linux/linux/qemu-virtio.cfg
new file mode 100644
index 000000000..d042d7d64
--- /dev/null
+++ b/meta-agl-core/recipes-kernel/linux/linux/qemu-virtio.cfg
@@ -0,0 +1,6 @@
+# qemu need a virtio storage for rootfs
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BLK=y
+# qemuarm need virtionet
+CONFIG_VIRTIO_NET=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/qemuarm.cfg b/meta-agl-core/recipes-kernel/linux/linux/qemuarm.cfg
new file mode 100644
index 000000000..b3644b26f
--- /dev/null
+++ b/meta-agl-core/recipes-kernel/linux/linux/qemuarm.cfg
@@ -0,0 +1,8 @@
+# Necessary configs for using the virt qemu machine
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_VIRT=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_RTC_DRV_PL031=y
+# SPEC-3976 we mimic real AGL ARM board and they dont have LPAE. This cause also HDA failure.
+# CONFIG_ARM_LPAE is not set
diff --git a/meta-agl-core/recipes-kernel/linux/linux/rtc.cfg b/meta-agl-core/recipes-kernel/linux/linux/rtc.cfg
deleted file mode 100644
index 2641958a0..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/rtc.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_LIB=y
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS3232=m
diff --git a/meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg b/meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg
deleted file mode 100644
index d4574700a..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/rtl_sdr.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_DVB_USB_V2=m
-CONFIG_DVB_USB_RTL28XXU=m
diff --git a/meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg b/meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg
deleted file mode 100644
index e8b09aa7c..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/scheddebug.cfg
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SCHED_DEBUG=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/uinput.cfg b/meta-agl-core/recipes-kernel/linux/linux/uinput.cfg
deleted file mode 100644
index 7996ef1dd..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/uinput.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-# Enable the User-level Input driver (required by "wayland-fits")
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_UINPUT=m
diff --git a/meta-agl-core/recipes-kernel/linux/linux/usb.cfg b/meta-agl-core/recipes-kernel/linux/linux/usb.cfg
deleted file mode 100644
index 8e9e98ecb..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/usb.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG_USB_SERIAL=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_ACM=m
-CONFIG_CRC_CCITT=y
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_PCI=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg b/meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg
deleted file mode 100644
index 5961f43d3..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/usbaudio.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg b/meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg
deleted file mode 100644
index 3ded931e5..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/usbmodem.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_QUALCOMM=m
diff --git a/meta-agl-core/recipes-kernel/linux/linux/uvc.cfg b/meta-agl-core/recipes-kernel/linux/linux/uvc.cfg
deleted file mode 100644
index 7c6556c11..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/uvc.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-CONFIG_VIDEOBUF2_VMALLOC=y
-CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
diff --git a/meta-agl-core/recipes-kernel/linux/linux/wifi.cfg b/meta-agl-core/recipes-kernel/linux/linux/wifi.cfg
deleted file mode 100644
index 00c2e06e4..000000000
--- a/meta-agl-core/recipes-kernel/linux/linux/wifi.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-CONFIG_CFG80211=m
-CONFIG_MAC80211=m
-CONFIG_WLAN_VENDOR_ATH=m
-CONFIG_ATH9K_HTC=m
-CONFIG_STAGING=y
-CONFIG_R8188EU=m