diff --git a/.travis.yml b/.travis.yml
index 3186846e..f3d9e6b3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,6 +11,7 @@ install: "pip install flake8"
script:
- test/static_code_analysis.sh
- yes "" | ./pmbootstrap.py init
+ - ./pmbootstrap.py kconfig_check
- test/check_checksums.py
notifications:
- email: false
diff --git a/aports/device/linux-htc-bravo/APKBUILD b/aports/device/linux-htc-bravo/APKBUILD
index 018c198b..79c2f69d 100644
--- a/aports/device/linux-htc-bravo/APKBUILD
+++ b/aports/device/linux-htc-bravo/APKBUILD
@@ -20,7 +20,7 @@ case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
*.*) _kernver=$pkgver;;
esac
-pkgrel=2
+pkgrel=3
arch="armhf"
pkgdesc="HTC Desire kernel from spezi77"
url="https://github.com/spezi77/android_kernel_htc_qsd8k_3.0"
@@ -105,5 +105,5 @@ package() {
}
sha512sums="94929945d6fcb4428f320325ced207a9888cd758357766ef914c4ca2d5cea4b9cced77275463dac316591ba942e6e1514fec8c1f8e11c8324155116785ffb277 linux-htc-bravo-4bc19919f805777947c243e6c2ed41ece530488b.tar.gz
-27ec53afdd9898495ae296b8e98b05401aae3a0bf390ba276f6a878d6bf1ccf3f59da78a5ee50ba4ee0744e4768f71aab53b782511c4f8ad22fefc821a2c815c config-htc-bravo.armhf
+c8305bade000d45743e5dc0965a31a0d9fcd2c1c19afecf5cf047ce7e065fed3679d5044d8544b3bd1656b62fd177136dd6b7aa1c48406b62c539dc8d429559e config-htc-bravo.armhf
d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc compiler-gcc6.h"
diff --git a/aports/device/linux-htc-bravo/config-htc-bravo.armhf b/aports/device/linux-htc-bravo/config-htc-bravo.armhf
index 5239b2aa..ffa114e4 100644
--- a/aports/device/linux-htc-bravo/config-htc-bravo.armhf
+++ b/aports/device/linux-htc-bravo/config-htc-bravo.armhf
@@ -1245,7 +1245,7 @@ CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
-# CONFIG_DM_CRYPT is not set
+CONFIG_DM_CRYPT=y
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_MIRROR is not set
# CONFIG_DM_RAID is not set
diff --git a/aports/device/linux-huawei-angler/APKBUILD b/aports/device/linux-huawei-angler/APKBUILD
index 4372f4b3..6cd0acd8 100644
--- a/aports/device/linux-huawei-angler/APKBUILD
+++ b/aports/device/linux-huawei-angler/APKBUILD
@@ -20,7 +20,7 @@ case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
*.*) _kernver=$pkgver;;
esac
-pkgrel=0
+pkgrel=1
arch="aarch64"
pkgdesc="LineageOS kernel for Nexus 6P Angler"
url="https://github.com/LineageOS/android_kernel_huawei_angler"
@@ -104,6 +104,6 @@ package() {
}
sha512sums="de3f5ab1c6609b94d416b0eebd5ae948698f0f6ec81e84fbee152df7c2778d8df94cec43b5abca583fe5977bb28037b3b6d2c3ff652a50493a1f24da31dadd7f linux-huawei-angler-04d1557af1259b211609fa41adbe852b5f9cf2da.tar.gz
-ca281ff4a694725ebb1a8bad597220d3d74cf40d1037f69236ed3ece58c5246264b9ea7e0e1e46046d8597a4c6582bf24c972990461ab15b0b426606d3aaab9f config-huawei-angler.aarch64
+15889af8af37cca20a4c98234e44b9e5a1df77004a625c69f8377202227175f221a576006249d0e743d1dfb1a7fc010372e0032bb364d58ed93eff9f06574190 config-huawei-angler.aarch64
d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc compiler-gcc6.h
ad0182a483791fc88e058838bc331b2f04a75ba291e763767babdb815efadfc3b4fda97e69e2e3f00a426cabea088e35297a92bd287592597d1e309be68ee92c kernel-use-the-gnu89-standard-explicitly.patch"
diff --git a/aports/device/linux-huawei-angler/config-huawei-angler.aarch64 b/aports/device/linux-huawei-angler/config-huawei-angler.aarch64
index 8de99c65..19e021ab 100644
--- a/aports/device/linux-huawei-angler/config-huawei-angler.aarch64
+++ b/aports/device/linux-huawei-angler/config-huawei-angler.aarch64
@@ -1530,7 +1530,12 @@ CONFIG_FINGERPRINT_FPC=y
# Character devices
#
CONFIG_TTY=y
-# CONFIG_VT is not set
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
@@ -2382,6 +2387,14 @@ CONFIG_FB_MSM_MDSS_WRITEBACK=y
# CONFIG_EXYNOS_VIDEO is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# CONFIG_ADF is not set
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
# CONFIG_LOGO is not set
# CONFIG_FB_SSD1307 is not set
CONFIG_SOUND=y
@@ -3129,6 +3142,7 @@ CONFIG_STAGING=y
#
# Speakup console speech
#
+# CONFIG_SPEAKUP is not set
# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
# CONFIG_STAGING_MEDIA is not set
diff --git a/aports/main/linux-postmarketos/APKBUILD b/aports/main/linux-postmarketos/APKBUILD
index cc694e58..86954955 100644
--- a/aports/main/linux-postmarketos/APKBUILD
+++ b/aports/main/linux-postmarketos/APKBUILD
@@ -18,7 +18,7 @@ case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
*.*) _kernver=$pkgver;;
esac
-pkgrel=1
+pkgrel=2
arch="all"
pkgdesc="Mainline Linux for pmOS supported chipsets (OMAP)"
@@ -190,7 +190,7 @@ dev() {
sha512sums="a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 linux-4.13.tar.xz
03407ddd93db7188928ff7f689dff01afaa0119655e311440a8a286907d8f27bf058487b8f859a588f7f06bda98abe24998fc580f917df2f96f9b661905a54ce config-postmarketos.armhf
-d97c84ad303e2dc5cc65703ddf6f749c7ea005d4fc191a3d197b56ab81150499328665de1ccbd8c467e1409151a37a47a9efcb0588c2c759cf9498361b5134db config-postmarketos.aarch64
+d41363bc6b9878db95b44eb326f9fd0ea89b6f3364ff0e883a5142cfa2937e6b77e9b185c046cbd2c5d4e2f696349839836740f8dee6bd649ef995cbd756e08a config-postmarketos.aarch64
8d3ea9743190680036d938a9d8ce8602f453152c69404741c70f1584075c111ba120d986b712fc509bbbe7882204292527738de9f03cf871c4911fff80a58d13 config-postmarketos.x86_64
17c48bb7b4218297bd2be6faa5b6570ce1560a33385237a9962c0884d782c9a722a25a30077b6721d2943a9b98c29dcad6adfef718b0163c559c19a79519319b 0001-rx51-drm-regression-workaround.patch
2b9cc6f24c2792b619189c81d8960d6f5dd622f767d6645208c59f3f38c00db5bdfb0d1fbbfa717bea7fd86067921cf07109c9a7a1001ce7a915bfa2a6a2c03e patch-4.13.2.xz"
diff --git a/aports/main/linux-postmarketos/config-postmarketos.aarch64 b/aports/main/linux-postmarketos/config-postmarketos.aarch64
index a5e5041a..1ca257b6 100644
--- a/aports/main/linux-postmarketos/config-postmarketos.aarch64
+++ b/aports/main/linux-postmarketos/config-postmarketos.aarch64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 4.12.10 Kernel Configuration
+# Linux/arm64 4.13.2 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@@ -23,7 +23,7 @@ CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CSUM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ZONE_DMA=y
-CONFIG_HAVE_GENERIC_RCU_GUP=y
+CONFIG_HAVE_GENERIC_GUP=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
@@ -34,6 +34,7 @@ CONFIG_KERNEL_MODE_NEON=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=4
CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
@@ -79,6 +80,7 @@ CONFIG_HANDLE_DOMAIN_IRQ=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
@@ -119,7 +121,6 @@ CONFIG_TREE_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
-# CONFIG_TREE_RCU_TRACE is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
@@ -190,6 +191,7 @@ CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_PRINTK=y
+CONFIG_PRINTK_NMI=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
@@ -220,6 +222,7 @@ CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
@@ -234,10 +237,12 @@ CONFIG_JUMP_LABEL=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_NMI=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
@@ -247,6 +252,7 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_RCU_TABLE_FREE=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
@@ -260,6 +266,7 @@ CONFIG_HAVE_CC_STACKPROTECTOR=y
CONFIG_CC_STACKPROTECTOR_NONE=y
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+CONFIG_THIN_ARCHIVES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
@@ -284,6 +291,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_REFCOUNT_FULL is not set
#
# GCOV-based kernel profiling
@@ -350,6 +358,7 @@ CONFIG_FREEZER=y
#
# Platform selection
#
+# CONFIG_ARCH_ACTIONS is not set
CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_ALPINE=y
CONFIG_ARCH_BCM2835=y
@@ -364,6 +373,7 @@ CONFIG_ARCH_MEDIATEK=y
CONFIG_ARCH_MESON=y
CONFIG_ARCH_MVEBU=y
CONFIG_ARCH_QCOM=y
+# CONFIG_ARCH_REALTEK is not set
CONFIG_ARCH_ROCKCHIP=y
CONFIG_ARCH_SEATTLE=y
CONFIG_ARCH_SHMOBILE=y
@@ -431,6 +441,7 @@ CONFIG_PCI_LAYERSCAPE=y
CONFIG_PCI_HISI=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_ARMADA_8K=y
+# CONFIG_PCIE_KIRIN is not set
#
# PCI host controller drivers
@@ -479,6 +490,7 @@ CONFIG_CAVIUM_ERRATUM_22375=y
CONFIG_CAVIUM_ERRATUM_23144=y
CONFIG_CAVIUM_ERRATUM_23154=y
CONFIG_CAVIUM_ERRATUM_27456=y
+CONFIG_CAVIUM_ERRATUM_30115=y
CONFIG_QCOM_FALKOR_ERRATUM_1003=y
CONFIG_QCOM_FALKOR_ERRATUM_1009=y
CONFIG_QCOM_QDF2400_ERRATUM_0065=y
@@ -531,7 +543,6 @@ CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_NO_BOOTMEM=y
CONFIG_MEMORY_ISOLATION=y
-# CONFIG_MOVABLE_NODE is not set
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MEMORY_BALLOON=y
@@ -543,9 +554,12 @@ CONFIG_BOUNCE=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_MEMORY_FAILURE is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_ARCH_WANTS_THP_SWAP is not set
CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
# CONFIG_CLEANCACHE is not set
# CONFIG_FRONTSWAP is not set
@@ -559,6 +573,7 @@ CONFIG_CMA_AREAS=7
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_FRAME_VECTOR=y
+# CONFIG_PERCPU_STATS is not set
CONFIG_SECCOMP=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
@@ -642,6 +657,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CPU Idle
#
CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
CONFIG_DT_IDLE_STATES=y
@@ -698,6 +714,7 @@ CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set
CONFIG_UNIX=y
# CONFIG_UNIX_DIAG is not set
+# CONFIG_TLS is not set
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
@@ -1036,7 +1053,6 @@ CONFIG_BT_HCIUART=m
# CONFIG_BT_HCIUART_H4 is not set
# CONFIG_BT_HCIUART_BCSP is not set
# CONFIG_BT_HCIUART_ATH3K is not set
-CONFIG_BT_HCIUART_LL=y
# CONFIG_BT_HCIUART_3WIRE is not set
# CONFIG_BT_HCIUART_INTEL is not set
# CONFIG_BT_HCIUART_BCM is not set
@@ -1105,7 +1121,7 @@ CONFIG_TEGRA_AHB=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_MOUNT is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
@@ -1140,6 +1156,7 @@ CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
#
# Bus devices
@@ -1147,6 +1164,7 @@ CONFIG_CMA_ALIGNMENT=8
# CONFIG_ARM_CCI400_PMU is not set
# CONFIG_ARM_CCI5xx_PMU is not set
# CONFIG_ARM_CCN is not set
+CONFIG_BRCMSTB_GISB_ARB=y
CONFIG_QCOM_EBI2=y
# CONFIG_SIMPLE_PM_BUS is not set
# CONFIG_SUNXI_RSB is not set
@@ -1163,6 +1181,10 @@ CONFIG_MTD=y
CONFIG_MTD_OF_PARTS=y
# CONFIG_MTD_AR7_PARTS is not set
+#
+# Partition parsers
+#
+
#
# User Modules And Translation Layers
#
@@ -1210,6 +1232,7 @@ CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_DATAFLASH is not set
CONFIG_MTD_M25P80=y
+# CONFIG_MTD_MCHP23K256 is not set
# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
@@ -1302,7 +1325,6 @@ CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_RSXX is not set
CONFIG_NVME_CORE=m
CONFIG_BLK_DEV_NVME=m
-# CONFIG_BLK_DEV_NVME_SCSI is not set
# CONFIG_NVME_FC is not set
# CONFIG_NVME_TARGET is not set
@@ -1393,6 +1415,7 @@ CONFIG_EEPROM_AT25=m
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not set
# CONFIG_CXL_AFU_DRIVER_OPS is not set
+# CONFIG_CXL_LIB is not set
#
# SCSI device support
@@ -1446,6 +1469,7 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
CONFIG_SCSI_HISI_SAS=y
+# CONFIG_SCSI_HISI_SAS_PCI is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_MVUMI is not set
# CONFIG_SCSI_ADVANSYS is not set
@@ -1585,7 +1609,29 @@ CONFIG_PATA_OF_PLATFORM=y
# CONFIG_PATA_ACPI is not set
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_LEGACY is not set
-# CONFIG_MD is not set
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_BCACHE is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_MQ_DEFAULT is not set
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=y
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_THIN_PROVISIONING is not set
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_ERA is not set
+# CONFIG_DM_MIRROR is not set
+# CONFIG_DM_RAID is not set
+# CONFIG_DM_ZERO is not set
+# CONFIG_DM_MULTIPATH is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_UEVENT is not set
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_DM_VERITY is not set
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+# CONFIG_DM_INTEGRITY is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_FUSION is not set
@@ -1659,6 +1705,7 @@ CONFIG_NET_VENDOR_ATHEROS=y
# CONFIG_NET_VENDOR_AURORA is not set
CONFIG_NET_CADENCE=y
CONFIG_MACB=y
+CONFIG_MACB_USE_HWSTAMP=y
# CONFIG_MACB_PCI is not set
CONFIG_NET_VENDOR_BROADCOM=y
# CONFIG_B44 is not set
@@ -1744,6 +1791,7 @@ CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLX4_CORE is not set
# CONFIG_MLX5_CORE is not set
# CONFIG_MLXSW_CORE is not set
+# CONFIG_MLXFW is not set
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@@ -1776,7 +1824,7 @@ CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NETXEN_NIC is not set
# CONFIG_QED is not set
CONFIG_NET_VENDOR_QUALCOMM=y
-# CONFIG_QCA7000 is not set
+# CONFIG_QCA7000_SPI is not set
CONFIG_QCOM_EMAC=m
CONFIG_NET_VENDOR_REALTEK=y
# CONFIG_8139CP is not set
@@ -1814,6 +1862,7 @@ CONFIG_DWMAC_IPQ806X=m
CONFIG_DWMAC_MESON=m
CONFIG_DWMAC_ROCKCHIP=m
CONFIG_DWMAC_SUNXI=m
+CONFIG_DWMAC_SUN8I=m
# CONFIG_STMMAC_PCI is not set
CONFIG_NET_VENDOR_SUN=y
# CONFIG_HAPPYMEAL is not set
@@ -1837,6 +1886,7 @@ CONFIG_NET_VENDOR_SYNOPSYS=y
# CONFIG_HIPPI is not set
# CONFIG_NET_SB1000 is not set
CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
# CONFIG_MDIO_BCM_IPROC is not set
# CONFIG_MDIO_BCM_UNIMAC is not set
CONFIG_MDIO_BITBANG=y
@@ -1863,6 +1913,7 @@ CONFIG_AT803X_PHY=m
# CONFIG_BCM87XX_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
# CONFIG_DAVICOM_PHY is not set
# CONFIG_DP83848_PHY is not set
# CONFIG_DP83867_PHY is not set
@@ -1872,6 +1923,7 @@ CONFIG_FIXED_PHY=y
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_LXT_PHY is not set
CONFIG_MARVELL_PHY=m
+# CONFIG_MARVELL_10G_PHY is not set
CONFIG_MESON_GXL_PHY=m
CONFIG_MICREL_PHY=y
# CONFIG_MICROCHIP_PHY is not set
@@ -2010,6 +2062,8 @@ CONFIG_WILINK_PLATFORM_DATA=y
CONFIG_WLAN_VENDOR_ZYDAS=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_ZD1211RW is not set
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+# CONFIG_QTNFMAC_PEARL_PCIE is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
@@ -2051,6 +2105,7 @@ CONFIG_KEYBOARD_ADC=m
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_GPIO_POLLED is not set
@@ -2167,7 +2222,6 @@ CONFIG_LEGACY_PTY_COUNT=16
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
CONFIG_DEVMEM=y
-# CONFIG_DEVKMEM is not set
#
# Serial drivers
@@ -2185,6 +2239,7 @@ CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not set
+# CONFIG_SERIAL_8250_ASPEED_VUART is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_RSA is not set
@@ -2286,6 +2341,7 @@ CONFIG_I2C_MUX=y
#
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_GPMUX is not set
# CONFIG_I2C_MUX_LTC4306 is not set
# CONFIG_I2C_MUX_PCA9541 is not set
CONFIG_I2C_MUX_PCA954x=y
@@ -2334,6 +2390,7 @@ CONFIG_I2C_BRCMSTB=y
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_DESIGNWARE_CORE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_EMEV2 is not set
CONFIG_I2C_EXYNOS5=y
@@ -2377,6 +2434,7 @@ CONFIG_I2C_RCAR=y
#
CONFIG_I2C_CROS_EC_TUNNEL=y
# CONFIG_I2C_XGENE_SLIMPRO is not set
+CONFIG_I2C_ZX2967=y
# CONFIG_I2C_STUB is not set
CONFIG_I2C_SLAVE=y
# CONFIG_I2C_SLAVE_EEPROM is not set
@@ -2402,6 +2460,7 @@ CONFIG_SPI_BCM_QSPI=y
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_FSL_SPI is not set
# CONFIG_SPI_FSL_DSPI is not set
+# CONFIG_SPI_MESON_SPICC is not set
CONFIG_SPI_MESON_SPIFC=m
# CONFIG_SPI_MT65XX is not set
# CONFIG_SPI_OC_TINY is not set
@@ -2433,13 +2492,10 @@ CONFIG_SPI_S3C64XX=y
CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_LOOPBACK_TEST is not set
# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
CONFIG_SPMI=y
CONFIG_SPMI_MSM_PMIC_ARB=y
# CONFIG_HSI is not set
-
-#
-# PPS support
-#
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set
@@ -2458,6 +2514,7 @@ CONFIG_PPS=y
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_DTE=y
#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
@@ -2474,6 +2531,7 @@ CONFIG_PINCONF=y
CONFIG_GENERIC_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
CONFIG_PINCTRL_MESON=y
CONFIG_PINCTRL_ROCKCHIP=y
CONFIG_PINCTRL_SINGLE=y
@@ -2489,14 +2547,19 @@ CONFIG_PINCTRL_NS2_MUX=y
# CONFIG_PINCTRL_BAYTRAIL is not set
# CONFIG_PINCTRL_CHERRYVIEW is not set
# CONFIG_PINCTRL_BROXTON is not set
+# CONFIG_PINCTRL_CANNONLAKE is not set
# CONFIG_PINCTRL_GEMINILAKE is not set
# CONFIG_PINCTRL_SUNRISEPOINT is not set
+CONFIG_PINCTRL_MVEBU=y
+CONFIG_PINCTRL_ARMADA_AP806=y
+CONFIG_PINCTRL_ARMADA_CP110=y
CONFIG_PINCTRL_ARMADA_37XX=y
CONFIG_PINCTRL_MSM=y
# CONFIG_PINCTRL_APQ8064 is not set
# CONFIG_PINCTRL_APQ8084 is not set
# CONFIG_PINCTRL_IPQ4019 is not set
# CONFIG_PINCTRL_IPQ8064 is not set
+# CONFIG_PINCTRL_IPQ8074 is not set
# CONFIG_PINCTRL_MSM8660 is not set
# CONFIG_PINCTRL_MSM8960 is not set
# CONFIG_PINCTRL_MDM9615 is not set
@@ -2509,6 +2572,7 @@ CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set
CONFIG_PINCTRL_SAMSUNG=y
CONFIG_PINCTRL_EXYNOS=y
+CONFIG_PINCTRL_EXYNOS_ARM64=y
CONFIG_PINCTRL_SH_PFC=y
CONFIG_PINCTRL_PFC_R8A7795=y
CONFIG_PINCTRL_PFC_R8A7796=y
@@ -2517,10 +2581,10 @@ CONFIG_PINCTRL_SUNXI=y
# CONFIG_PINCTRL_SUN5I is not set
# CONFIG_PINCTRL_SUN6I_A31 is not set
# CONFIG_PINCTRL_SUN6I_A31_R is not set
-# CONFIG_PINCTRL_SUN7I_A20 is not set
# CONFIG_PINCTRL_SUN8I_A23 is not set
# CONFIG_PINCTRL_SUN8I_A33 is not set
# CONFIG_PINCTRL_SUN8I_A83T is not set
+# CONFIG_PINCTRL_SUN8I_A83T_R is not set
# CONFIG_PINCTRL_SUN8I_A23_R is not set
# CONFIG_PINCTRL_SUN8I_H3 is not set
CONFIG_PINCTRL_SUN8I_H3_R=y
@@ -2545,6 +2609,7 @@ CONFIG_PINCTRL_UNIPHIER_LD11=y
CONFIG_PINCTRL_UNIPHIER_LD20=y
CONFIG_PINCTRL_MTK=y
CONFIG_PINCTRL_MT8173=y
+# CONFIG_PINCTRL_ZX296718 is not set
CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
CONFIG_GPIO_ACPI=y
@@ -2567,6 +2632,7 @@ CONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_MOCKUP is not set
# CONFIG_GPIO_MPC8XXX is not set
+CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_PL061=y
CONFIG_GPIO_RCAR=y
# CONFIG_GPIO_SYSCON is not set
@@ -2610,11 +2676,7 @@ CONFIG_GPIO_MAX77620=y
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_PISOSR is not set
-
-#
-# SPI or I2C GPIO expanders
-#
-# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_XRA1403 is not set
#
# USB GPIO expanders
@@ -2622,6 +2684,7 @@ CONFIG_GPIO_MAX77620=y
# CONFIG_W1 is not set
# CONFIG_POWER_AVS is not set
CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_BRCMSTB=y
# CONFIG_POWER_RESET_GPIO is not set
# CONFIG_POWER_RESET_GPIO_RESTART is not set
# CONFIG_POWER_RESET_HISI is not set
@@ -2647,6 +2710,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_CHARGER_SBS is not set
CONFIG_BATTERY_BQ27XXX=y
CONFIG_BATTERY_BQ27XXX_I2C=y
+# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_ISP1704 is not set
@@ -2654,6 +2718,7 @@ CONFIG_BATTERY_BQ27XXX_I2C=y
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LTC3651 is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_QCOM_SMBB is not set
# CONFIG_CHARGER_BQ2415X is not set
@@ -2855,6 +2920,7 @@ CONFIG_EXYNOS_THERMAL=y
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
# CONFIG_WATCHDOG_SYSFS is not set
#
@@ -2881,7 +2947,9 @@ CONFIG_MESON_GXBB_WATCHDOG=m
CONFIG_MESON_WATCHDOG=m
# CONFIG_MEDIATEK_WATCHDOG is not set
CONFIG_RENESAS_WDT=y
+# CONFIG_RENESAS_RZAWDT is not set
# CONFIG_ZX2967_WATCHDOG is not set
+# CONFIG_UNIPHIER_WATCHDOG is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_I6300ESB_WDT is not set
CONFIG_BCM2835_WDT=y
@@ -2951,7 +3019,6 @@ CONFIG_MFD_HI655X_PMIC=y
# CONFIG_HTC_I2CPLD is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
-# CONFIG_INTEL_SOC_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
@@ -3003,6 +3070,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS65217 is not set
# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TI_LP87565 is not set
# CONFIG_MFD_TPS65218 is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65910 is not set
@@ -3154,6 +3222,7 @@ CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
# CONFIG_VIDEO_RENESAS_JPU is not set
CONFIG_VIDEO_RENESAS_FCP=m
CONFIG_VIDEO_RENESAS_VSP1=m
+# CONFIG_VIDEO_QCOM_VENUS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
# CONFIG_DVB_PLATFORM_DRIVERS is not set
@@ -3206,6 +3275,10 @@ CONFIG_VIDEO_IR_I2C=m
# Audio/Video compression chips
#
+#
+# SDR tuner chips
+#
+
#
# Miscellaneous helper chips
#
@@ -3359,6 +3432,7 @@ CONFIG_DRM_PANEL=y
#
# CONFIG_DRM_PANEL_LVDS is not set
CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
@@ -3369,6 +3443,7 @@ CONFIG_DRM_PANEL_SIMPLE=m
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
#
# Display Interface Bridges
@@ -3400,6 +3475,7 @@ CONFIG_HISI_KIRIN_DW_DSI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MESON_DW_HDMI=m
# CONFIG_DRM_TINYDRM is not set
+# CONFIG_DRM_PL111 is not set
# CONFIG_DRM_LEGACY is not set
# CONFIG_DRM_LIB_RANDOM is not set
@@ -3527,9 +3603,7 @@ CONFIG_SND_PCM_IEC958=y
CONFIG_SND_DMAENGINE_PCM=y
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
-# CONFIG_SND_SEQUENCER is not set
-# CONFIG_SND_MIXER_OSS is not set
-# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_OSSEMUL is not set
CONFIG_SND_PCM_TIMER=y
# CONFIG_SND_HRTIMER is not set
# CONFIG_SND_DYNAMIC_MINORS is not set
@@ -3538,11 +3612,9 @@ CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
-# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_OPL3_LIB_SEQ is not set
# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_DRIVERS=y
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_ALOOP is not set
@@ -3582,6 +3654,7 @@ CONFIG_SND_PCI=y
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not set
# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
@@ -3676,6 +3749,10 @@ CONFIG_SND_SOC_SAMSUNG=y
# CONFIG_SND_SOC_SH4_FSI is not set
CONFIG_SND_SOC_RCAR=y
+#
+# STMicroelectronics STM32 SOC audio support
+#
+
#
# Allwinner SoC Audio support
#
@@ -3724,6 +3801,7 @@ CONFIG_SND_SOC_AK4613=y
# CONFIG_SND_SOC_DIO2125 is not set
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES8316 is not set
# CONFIG_SND_SOC_ES8328_I2C is not set
# CONFIG_SND_SOC_ES8328_SPI is not set
# CONFIG_SND_SOC_GTM601 is not set
@@ -3782,6 +3860,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_WM8974 is not set
# CONFIG_SND_SOC_WM8978 is not set
# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZX_AUD96P22 is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
# CONFIG_SND_SOC_NAU8824 is not set
@@ -3789,6 +3868,8 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SIMPLE_CARD_UTILS=y
CONFIG_SND_SIMPLE_CARD=y
# CONFIG_SND_SIMPLE_SCU_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set
#
# HID support
@@ -3830,6 +3911,7 @@ CONFIG_HID_EZKEY=y
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_ICADE is not set
+CONFIG_HID_ITE=y
# CONFIG_HID_TWINHAN is not set
CONFIG_HID_KENSINGTON=y
# CONFIG_HID_LCPOWER is not set
@@ -3854,6 +3936,7 @@ CONFIG_HID_MONTEREY=y
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
# CONFIG_HID_SAMSUNG is not set
@@ -4048,7 +4131,6 @@ CONFIG_USB_HSIC_USB3503=y
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not set
-# CONFIG_UCSI is not set
#
# USB Physical Layer drivers
@@ -4079,6 +4161,8 @@ CONFIG_USB_RENESAS_USBHS_UDC=m
# CONFIG_USB_PXA27X is not set
# CONFIG_USB_MV_UDC is not set
# CONFIG_USB_MV_U3D is not set
+CONFIG_USB_SNP_CORE=y
+CONFIG_USB_SNP_UDC_PLAT=y
# CONFIG_USB_M66592 is not set
# CONFIG_USB_BDC_UDC is not set
# CONFIG_USB_AMD5536UDC is not set
@@ -4093,6 +4177,7 @@ CONFIG_USB_RENESAS_USBHS_UDC=m
#
# USB Power Delivery and Type-C drivers
#
+# CONFIG_TYPEC_UCSI is not set
# CONFIG_USB_ULPI_BUS is not set
# CONFIG_UWB is not set
CONFIG_MMC=y
@@ -4101,7 +4186,6 @@ CONFIG_PWRSEQ_EMMC=y
CONFIG_PWRSEQ_SIMPLE=y
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=32
-CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
@@ -4168,6 +4252,7 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
#
# RTC interfaces
@@ -4183,6 +4268,7 @@ CONFIG_RTC_INTF_DEV=y
#
# CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_ABX80X is not set
+CONFIG_RTC_DRV_BRCMSTB=y
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
@@ -4233,6 +4319,7 @@ CONFIG_RTC_I2C_AND_SPI=y
# SPI and I2C RTC drivers
#
CONFIG_RTC_DRV_DS3232=y
+CONFIG_RTC_DRV_DS3232_HWMON=y
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set
@@ -4267,6 +4354,7 @@ CONFIG_RTC_DRV_PL031=y
CONFIG_RTC_DRV_SUN6I=y
# CONFIG_RTC_DRV_MV is not set
# CONFIG_RTC_DRV_ARMADA38X is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_PM8XXX is not set
CONFIG_RTC_DRV_TEGRA=y
# CONFIG_RTC_DRV_SNVS is not set
@@ -4289,6 +4377,7 @@ CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DMA_ACPI=y
CONFIG_DMA_OF=y
# CONFIG_AMBA_PL08X is not set
+CONFIG_BCM_SBA_RAID=m
CONFIG_DMA_BCM2835=m
# CONFIG_DMA_SUN6I is not set
# CONFIG_FSL_EDMA is not set
@@ -4408,6 +4497,7 @@ CONFIG_COMMON_CLK_XGENE=y
# CONFIG_COMMON_CLK_VC5 is not set
CONFIG_COMMON_CLK_IPROC=y
CONFIG_CLK_BCM_NS2=y
+CONFIG_CLK_BCM_SR=y
CONFIG_COMMON_CLK_HI3516CV300=y
CONFIG_COMMON_CLK_HI3519=y
CONFIG_COMMON_CLK_HI3660=y
@@ -4436,6 +4526,7 @@ CONFIG_QCOM_CLK_SMD_RPM=y
# CONFIG_IPQ_GCC_4019 is not set
# CONFIG_IPQ_GCC_806X is not set
# CONFIG_IPQ_LCC_806X is not set
+# CONFIG_IPQ_GCC_8074 is not set
# CONFIG_MSM_GCC_8660 is not set
CONFIG_MSM_GCC_8916=y
# CONFIG_MSM_GCC_8960 is not set
@@ -4448,39 +4539,33 @@ CONFIG_MSM_GCC_8916=y
CONFIG_MSM_GCC_8994=y
CONFIG_MSM_GCC_8996=y
CONFIG_MSM_MMCC_8996=y
+CONFIG_CLK_RENESAS=y
+CONFIG_CLK_R8A7795=y
+CONFIG_CLK_R8A7796=y
+CONFIG_CLK_RCAR_GEN3_CPG=y
CONFIG_CLK_RENESAS_CPG_MSSR=y
+CONFIG_CLK_RENESAS_DIV6=y
CONFIG_COMMON_CLK_SAMSUNG=y
CONFIG_EXYNOS_ARM64_COMMON_CLK=y
CONFIG_EXYNOS_AUDSS_CLK_CON=y
CONFIG_SUNXI_CCU=y
-CONFIG_SUNXI_CCU_DIV=y
-CONFIG_SUNXI_CCU_FRAC=y
-CONFIG_SUNXI_CCU_GATE=y
-CONFIG_SUNXI_CCU_MUX=y
-CONFIG_SUNXI_CCU_PHASE=y
-CONFIG_SUNXI_CCU_NK=y
-CONFIG_SUNXI_CCU_NKM=y
-CONFIG_SUNXI_CCU_NKMP=y
-CONFIG_SUNXI_CCU_NM=y
-CONFIG_SUNXI_CCU_MP=y
CONFIG_SUN50I_A64_CCU=y
+# CONFIG_SUN8I_A83T_CCU is not set
CONFIG_SUN8I_H3_CCU=y
+# CONFIG_SUN8I_DE2_CCU is not set
CONFIG_SUN8I_R_CCU=y
CONFIG_CLK_TEGRA_BPMP=y
CONFIG_CLK_UNIPHIER=y
CONFIG_HWSPINLOCK=y
-
-#
-# Hardware Spinlock drivers
-#
CONFIG_HWSPINLOCK_QCOM=y
+# CONFIG_HWSPINLOCK_SPRD is not set
#
# Clock Source drivers
#
-CONFIG_CLKSRC_OF=y
-CONFIG_CLKSRC_ACPI=y
-CONFIG_CLKSRC_PROBE=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_ACPI=y
+CONFIG_TIMER_PROBE=y
CONFIG_CLKSRC_MMIO=y
CONFIG_ROCKCHIP_TIMER=y
CONFIG_ARM_ARCH_TIMER=y
@@ -4507,6 +4592,7 @@ CONFIG_PCC=y
CONFIG_BCM2835_MBOX=y
CONFIG_HI6220_MBOX=y
# CONFIG_MAILBOX_TEST is not set
+# CONFIG_QCOM_APCS_IPC is not set
CONFIG_TEGRA_HSP_MBOX=y
# CONFIG_XGENE_SLIMPRO_MBOX is not set
# CONFIG_BCM_PDC_MBOX is not set
@@ -4524,7 +4610,9 @@ CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_IOVA=y
CONFIG_OF_IOMMU=y
CONFIG_IOMMU_DMA=y
+# CONFIG_ROCKCHIP_IOMMU is not set
# CONFIG_EXYNOS_IOMMU is not set
+# CONFIG_IPMMU_VMSA is not set
CONFIG_ARM_SMMU=y
CONFIG_ARM_SMMU_V3=y
# CONFIG_MTK_IOMMU is not set
@@ -4539,6 +4627,7 @@ CONFIG_ARM_SMMU_V3=y
#
CONFIG_RPMSG=y
# CONFIG_RPMSG_CHAR is not set
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
CONFIG_RPMSG_QCOM_SMD=y
#
@@ -4549,6 +4638,7 @@ CONFIG_RPMSG_QCOM_SMD=y
# Broadcom SoC drivers
#
CONFIG_RASPBERRYPI_POWER=y
+# CONFIG_SOC_BRCMSTB is not set
CONFIG_FSL_GUTS=y
#
@@ -4558,12 +4648,18 @@ CONFIG_MTK_INFRACFG=y
# CONFIG_MTK_PMIC_WRAP is not set
CONFIG_MTK_SCPSYS=y
# CONFIG_QCOM_GSBI is not set
+CONFIG_QCOM_MDT_LOADER=m
CONFIG_QCOM_SMEM=y
CONFIG_QCOM_SMD_RPM=y
CONFIG_QCOM_SMEM_STATE=y
CONFIG_QCOM_SMP2P=y
CONFIG_QCOM_SMSM=y
# CONFIG_QCOM_WCNSS_CTRL is not set
+CONFIG_SOC_RENESAS=y
+CONFIG_SYSC_R8A7795=y
+CONFIG_SYSC_R8A7796=y
+CONFIG_RST_RCAR=y
+CONFIG_SYSC_RCAR=y
CONFIG_ROCKCHIP_GRF=y
CONFIG_ROCKCHIP_PM_DOMAINS=y
CONFIG_SOC_SAMSUNG=y
@@ -4576,6 +4672,7 @@ CONFIG_ARCH_TEGRA_186_SOC=y
CONFIG_SOC_TEGRA_FLOWCTRL=y
CONFIG_SOC_TEGRA_PMC=y
CONFIG_SOC_TEGRA_PMC_TEGRA186=y
+CONFIG_SOC_TEGRA_POWERGATE_BPMP=y
# CONFIG_SOC_TI is not set
# CONFIG_SOC_ZTE is not set
# CONFIG_PM_DEVFREQ is not set
@@ -4666,7 +4763,9 @@ CONFIG_MESON_SARADC=y
CONFIG_ROCKCHIP_SARADC=m
# CONFIG_TI_ADC081C is not set
# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC084S021 is not set
# CONFIG_TI_ADC12138 is not set
+# CONFIG_TI_ADC108S102 is not set
# CONFIG_TI_ADC128S052 is not set
# CONFIG_TI_ADC161S626 is not set
# CONFIG_TI_ADS1015 is not set
@@ -4813,6 +4912,7 @@ CONFIG_ROCKCHIP_SARADC=m
# CONFIG_CM36651 is not set
# CONFIG_GP2AP020A00F is not set
# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
# CONFIG_ISL29125 is not set
# CONFIG_JSA1212 is not set
# CONFIG_RPR0521 is not set
@@ -4846,6 +4946,11 @@ CONFIG_ROCKCHIP_SARADC=m
# CONFIG_SENSORS_HMC5843_I2C is not set
# CONFIG_SENSORS_HMC5843_SPI is not set
+#
+# Multiplexers
+#
+# CONFIG_IIO_MUX is not set
+
#
# Inclinometer sensors
#
@@ -4917,6 +5022,8 @@ CONFIG_BRCMSTB_L2_IRQ=y
CONFIG_DW_APB_ICTL=y
CONFIG_HISILICON_IRQ_MBIGEN=y
CONFIG_RENESAS_IRQC=y
+CONFIG_MVEBU_GICP=y
+CONFIG_MVEBU_ICU=y
CONFIG_MVEBU_ODMI=y
CONFIG_MVEBU_PIC=y
CONFIG_LS_SCFG_MSI=y
@@ -4927,6 +5034,7 @@ CONFIG_ARCH_HAS_RESET_CONTROLLER=y
CONFIG_RESET_CONTROLLER=y
# CONFIG_RESET_ATH79 is not set
CONFIG_RESET_BERLIN=y
+# CONFIG_RESET_GEMINI is not set
# CONFIG_RESET_IMX7 is not set
# CONFIG_RESET_LPC18XX is not set
CONFIG_RESET_MESON=y
@@ -4934,7 +5042,7 @@ CONFIG_RESET_MESON=y
# CONFIG_RESET_SOCFPGA is not set
# CONFIG_RESET_STM32 is not set
CONFIG_RESET_SUNXI=y
-# CONFIG_TI_SYSCON_RESET is not set
+# CONFIG_RESET_TI_SYSCON is not set
CONFIG_RESET_UNIPHIER=y
# CONFIG_RESET_ZX2967 is not set
# CONFIG_RESET_ZYNQ is not set
@@ -4947,43 +5055,47 @@ CONFIG_RESET_TEGRA_BPMP=y
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
-# CONFIG_PHY_BCM_NS_USB2 is not set
-# CONFIG_PHY_BCM_NS_USB3 is not set
-# CONFIG_PHY_BERLIN_USB is not set
-# CONFIG_PHY_BERLIN_SATA is not set
-CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_PHY_RCAR_GEN2 is not set
-CONFIG_PHY_RCAR_GEN3_USB2=y
-CONFIG_PHY_EXYNOS_DP_VIDEO=y
-# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_PHY_MT65XX_USB3 is not set
-CONFIG_PHY_HI6220_USB=y
+CONFIG_PHY_XGENE=y
CONFIG_PHY_SUN4I_USB=y
# CONFIG_PHY_SUN9I_USB is not set
+CONFIG_PHY_MESON8B_USB2=y
+CONFIG_PHY_MESON_GXL_USB2=y
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_PHY_BCM_NS_USB2 is not set
+# CONFIG_PHY_BCM_NS_USB3 is not set
+CONFIG_PHY_NS2_PCIE=y
+CONFIG_PHY_NS2_USB_DRD=y
+CONFIG_PHY_BRCM_SATA=y
+CONFIG_PHY_HI6220_USB=y
+# CONFIG_PHY_BERLIN_SATA is not set
+# CONFIG_PHY_BERLIN_USB is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_CPCAP_USB is not set
+# CONFIG_PHY_QCOM_APQ8064_SATA is not set
+# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+# CONFIG_PHY_QCOM_QMP is not set
+# CONFIG_PHY_QCOM_QUSB2 is not set
+# CONFIG_PHY_QCOM_UFS is not set
+# CONFIG_PHY_RCAR_GEN2 is not set
+CONFIG_PHY_RCAR_GEN3_USB2=y
+# CONFIG_PHY_RCAR_GEN3_USB3 is not set
+# CONFIG_PHY_ROCKCHIP_DP is not set
+CONFIG_PHY_ROCKCHIP_EMMC=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_PCIE=m
+# CONFIG_PHY_ROCKCHIP_TYPEC is not set
+# CONFIG_PHY_ROCKCHIP_USB is not set
+CONFIG_PHY_EXYNOS_DP_VIDEO=y
+CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
+# CONFIG_PHY_EXYNOS_PCIE is not set
CONFIG_PHY_SAMSUNG_USB2=y
# CONFIG_PHY_EXYNOS4210_USB2 is not set
# CONFIG_PHY_EXYNOS4X12_USB2 is not set
# CONFIG_PHY_EXYNOS5250_USB2 is not set
CONFIG_PHY_EXYNOS5_USBDRD=y
-# CONFIG_PHY_EXYNOS_PCIE is not set
-# CONFIG_PHY_QCOM_APQ8064_SATA is not set
-# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
-# CONFIG_PHY_ROCKCHIP_USB is not set
-CONFIG_PHY_ROCKCHIP_INNO_USB2=y
-CONFIG_PHY_ROCKCHIP_EMMC=y
-# CONFIG_PHY_ROCKCHIP_DP is not set
-CONFIG_PHY_ROCKCHIP_PCIE=m
-# CONFIG_PHY_ROCKCHIP_TYPEC is not set
-CONFIG_PHY_XGENE=y
-# CONFIG_PHY_QCOM_QMP is not set
-# CONFIG_PHY_QCOM_QUSB2 is not set
-# CONFIG_PHY_QCOM_UFS is not set
-CONFIG_PHY_BRCM_SATA=y
CONFIG_PHY_TEGRA_XUSB=y
-CONFIG_PHY_NS2_PCIE=y
-CONFIG_PHY_MESON8B_USB2=y
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set
@@ -5002,8 +5114,9 @@ CONFIG_RAS=y
#
# CONFIG_ANDROID is not set
# CONFIG_LIBNVDIMM is not set
-# CONFIG_DAX is not set
-CONFIG_NVMEM=m
+CONFIG_DAX=y
+# CONFIG_DEV_DAX is not set
+CONFIG_NVMEM=y
# CONFIG_MTK_EFUSE is not set
# CONFIG_QCOM_QFPROM is not set
# CONFIG_ROCKCHIP_EFUSE is not set
@@ -5090,6 +5203,7 @@ CONFIG_HAVE_ACPI_APEI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_SEA=y
# CONFIG_ACPI_APEI_EINJ is not set
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
# CONFIG_PMIC_OPREGION is not set
@@ -5151,6 +5265,7 @@ CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=m
# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+# CONFIG_OVERLAY_FS_INDEX is not set
#
# Caches
@@ -5245,6 +5360,7 @@ CONFIG_NFS_V4=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
+CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
@@ -5406,9 +5522,7 @@ CONFIG_ARCH_HAS_KCOV=y
#
# Debug Lockups and Hangs
#
-CONFIG_LOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
@@ -5439,6 +5553,7 @@ CONFIG_SCHED_INFO=y
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_STACKTRACE is not set
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_HAVE_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_BUGVERBOSE=y
@@ -5452,7 +5567,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
# RCU Debugging
#
# CONFIG_PROVE_RCU is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_TORTURE_TEST is not set
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
@@ -5498,10 +5612,12 @@ CONFIG_TRACING_SUPPORT=y
# CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set
# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_SYSCTL is not set
# CONFIG_TEST_UDELAY is not set
CONFIG_MEMTEST=y
# CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# CONFIG_TEST_KMOD is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
@@ -5537,6 +5653,7 @@ CONFIG_SECURITY=y
# CONFIG_SECURITY_PATH is not set
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_FORTIFY_SOURCE is not set
# CONFIG_STATIC_USERMODEHELPER is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
@@ -5551,6 +5668,8 @@ CONFIG_INTEGRITY_AUDIT=y
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
CONFIG_CRYPTO=y
#
@@ -5601,7 +5720,7 @@ CONFIG_CRYPTO_ECHAINIV=y
#
# Block modes
#
-# CONFIG_CRYPTO_CBC is not set
+CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CTR=m
# CONFIG_CRYPTO_CTS is not set
CONFIG_CRYPTO_ECB=m
@@ -5692,11 +5811,13 @@ CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_S5P is not set
# CONFIG_CRYPTO_DEV_CCP is not set
# CONFIG_CAVIUM_CPT is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set
# CONFIG_CRYPTO_DEV_QCE is not set
# CONFIG_CRYPTO_DEV_ROCKCHIP is not set
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_BCM_SPU=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
#
@@ -5743,6 +5864,7 @@ CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC4 is not set
CONFIG_CRC7=y
CONFIG_LIBCRC32C=m
# CONFIG_CRC8 is not set
diff --git a/pmb/build/menuconfig.py b/pmb/build/menuconfig.py
index 3c1002a6..20568baa 100644
--- a/pmb/build/menuconfig.py
+++ b/pmb/build/menuconfig.py
@@ -72,3 +72,6 @@ def menuconfig(args, pkgname, arch):
target = aport + "/" + config
pmb.helpers.run.user(args, ["cp", source, target])
pmb.build.checksum(args, pkgname)
+
+ # Check config
+ pmb.parse.kconfig.check(args, apkbuild["_flavor"], details=True)
diff --git a/pmb/config/__init__.py b/pmb/config/__init__.py
index e0b1fc1b..f7f7aab3 100644
--- a/pmb/config/__init__.py
+++ b/pmb/config/__init__.py
@@ -130,6 +130,14 @@ build_packages = ["abuild", "build-base", "ccache"]
# the native chroot and a cross-compiler, without using distcc
build_cross_native = ["linux-*"]
+# Necessary kernel config options
+necessary_kconfig_options = {
+ "DEVTMPFS": True,
+ "DEVTMPFS_MOUNT": False,
+ "DM_CRYPT": True,
+ "VT": True,
+}
+
#
# PARSE
diff --git a/pmb/flasher/frontend.py b/pmb/flasher/frontend.py
index 4d8ad77a..d8fe4151 100644
--- a/pmb/flasher/frontend.py
+++ b/pmb/flasher/frontend.py
@@ -27,6 +27,7 @@ import pmb.chroot.initfs
import pmb.chroot.other
import pmb.export.frontend
import pmb.helpers.frontend
+import pmb.parse.kconfig
def kernel(args):
@@ -34,6 +35,9 @@ def kernel(args):
flavor = pmb.helpers.frontend._parse_flavor(args)
pmb.chroot.initfs.build(args, flavor, "rootfs_" + args.device)
+ # Check kernel config
+ pmb.parse.kconfig.check(args, flavor)
+
# Generate the paths and run the flasher
if args.action_flasher == "boot":
logging.info("(native) boot " + flavor + " kernel")
diff --git a/pmb/helpers/frontend.py b/pmb/helpers/frontend.py
index 3e5a1e8f..9be8e916 100644
--- a/pmb/helpers/frontend.py
+++ b/pmb/helpers/frontend.py
@@ -19,8 +19,10 @@ You should have received a copy of the GNU General Public License
along with pmbootstrap. If not, see .
"""
-import logging
+import glob
import json
+import logging
+import os
import sys
import pmb.aportgen
@@ -150,6 +152,25 @@ def menuconfig(args):
pmb.build.menuconfig(args, args.package, args.deviceinfo["arch"])
+def kconfig_check(args):
+ # Default to all kernel packages
+ packages = args.packages
+ if not packages:
+ for aport in glob.glob(args.aports + "/*/linux-*"):
+ packages.append(os.path.basename(aport).split("linux-")[1])
+
+ # Iterate over all kernels
+ error = False
+ packages.sort()
+ for package in packages:
+ if not pmb.parse.kconfig.check(args, package, details=True):
+ error = True
+
+ # At least one failure
+ if error:
+ raise RuntimeError("kconfig_check failed!")
+
+
def parse_apkbuild(args):
aport = pmb.build.other.find_aport(args, args.package)
path = aport + "/APKBUILD"
diff --git a/pmb/parse/__init__.py b/pmb/parse/__init__.py
index 87522a42..e2e82cec 100644
--- a/pmb/parse/__init__.py
+++ b/pmb/parse/__init__.py
@@ -20,4 +20,5 @@ from pmb.parse.arguments import arguments
from pmb.parse.apkbuild import apkbuild
from pmb.parse.binfmt_info import binfmt_info
from pmb.parse.deviceinfo import deviceinfo
+from pmb.parse.kconfig import check
import pmb.parse.arch
diff --git a/pmb/parse/arguments.py b/pmb/parse/arguments.py
index b895b575..e5976fd9 100644
--- a/pmb/parse/arguments.py
+++ b/pmb/parse/arguments.py
@@ -249,6 +249,12 @@ def arguments():
for action in [checksum, build, aportgen]:
action.add_argument("packages", nargs="+")
+ # Action: kconfig_check
+ kconfig_check = sub.add_parser("kconfig_check", help="check, whether all"
+ " the necessary options are"
+ " enabled/disabled in the kernel config")
+ kconfig_check.add_argument("packages", nargs="*")
+
# Action: challenge
challenge = sub.add_parser("challenge",
help="verify, that all files in an apk can be"
diff --git a/pmb/parse/kconfig.py b/pmb/parse/kconfig.py
new file mode 100644
index 00000000..e1d726ad
--- /dev/null
+++ b/pmb/parse/kconfig.py
@@ -0,0 +1,82 @@
+"""
+Copyright 2017 Attila Szollosi
+
+This file is part of pmbootstrap.
+
+pmbootstrap is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+pmbootstrap is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with pmbootstrap. If not, see .
+"""
+import glob
+import logging
+import re
+import os
+
+import pmb.build
+import pmb.config
+
+
+def is_set(config, option):
+ """
+ Check, whether a boolean or tristate option is enabled
+ either as builtin or module.
+ """
+ return re.search("^CONFIG_" + option + "=[ym]", config, re.M) is not None
+
+
+def check(args, pkgname, details=False):
+ """
+ Check for necessary kernel config options.
+
+ :returns: True when the check was successful, False otherwise
+ """
+ # Pkgname: allow omitting "linux-" prefix
+ if pkgname.startswith("linux-"):
+ flavor = pkgname.split("linux-")[1]
+ logging.info("PROTIP: You can simply do 'pmbootstrap kconfig_check " +
+ flavor + "'")
+ else:
+ flavor = pkgname
+
+ # Read all kernel configs in the aport
+ ret = True
+ aport = pmb.build.find_aport(args, "linux-" + flavor)
+ for config_path in glob.glob(aport + "/config-*"):
+ logging.debug("Check kconfig: " + config_path)
+ with open(config_path) as handle:
+ config = handle.read()
+
+ # Loop trough necessary config options, and print a warning,
+ # if any is missing
+ path = "linux-" + flavor + "/" + os.path.basename(config_path)
+ for key, value in pmb.config.necessary_kconfig_options.items():
+ if value not in [True, False]:
+ raise RuntimeError("kconfig check code can only handle"
+ " True/False right now, given value '" +
+ str(value) + "' is not supported. If you"
+ " need this, please open an issue.")
+ if value != is_set(config, key):
+ ret = False
+ if details:
+ should = "should" if value else "should *not*"
+ link = ("https://wiki.postmarketos.org/wiki/"
+ "Kernel_configuration#CONFIG_" + key)
+ logging.info("WARNING: " + path + ": CONFIG_" + key + " " +
+ should + " be set. See <" + link +
+ "> for details.")
+ else:
+ logging.warning("WARNING: " + path + " isn't configured"
+ " properly for postmarketOS, run"
+ " 'pmbootstrap kconfig_check' for"
+ " details!")
+ break
+ return ret