From 9895add199bfb134ec89bf6dd3141b6850d2b6e7 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Mon, 1 Jun 2026 20:00:57 +0530 Subject: [PATCH 1/4] packagegroup-qcom-boot: Add boot-critical kernel modules Currently, some drivers are compiled as part of the static kernel image (=y in the upstream defconfig) while their dependencies are configured as modules (=m) and reside in rootfs. Examples include: 1.CONFIG_ARM_SMMU_QCOM=y (for GPU) depends on CONFIG_SA_GPUCC_8775P=m 2.CONFIG_USB_DWC3_QCOM=y depends on CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m Due to this configuration mismatch, built-in drivers attempt to probe before their module dependencies are loaded from rootfs, causing repeated probe deferrals. Randomly, the kernel deferred probe timeout exceeds leading to probe failures. This probe timeout issue has cascading effects. When critical drivers like GPU SMMU or USB controller fail to probe due to missing dependencies, it delays the overall boot process and affects other subsystems, causing secondary failures in storage, camera, and other drivers. These modules will be packaged in ramdisk to ensure they are available early during boot, preventing probe timeout issues and boot delays. Signed-off-by: Kavinaya S --- recipes-kernel/packagegroups/packagegroup-qcom-boot.bb | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 recipes-kernel/packagegroups/packagegroup-qcom-boot.bb diff --git a/recipes-kernel/packagegroups/packagegroup-qcom-boot.bb b/recipes-kernel/packagegroups/packagegroup-qcom-boot.bb new file mode 100644 index 000000000..6eec1ea24 --- /dev/null +++ b/recipes-kernel/packagegroups/packagegroup-qcom-boot.bb @@ -0,0 +1,10 @@ +SUMMARY = "Qualcomm boot requirements" +DESCRIPTION = "Storage and boot-critical kernel modules required for Qualcomm platforms" + +inherit packagegroup + +RRECOMMENDS:${PN} += " \ + kernel-module-gpucc-sa8775p \ + kernel-module-phy-qcom-snps-femto-v2 \ + kernel-module-ufs-qcom \ +" From a2eb16b2a2cd35e6dfc47cc84c20743305aa3949 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Mon, 1 Jun 2026 20:10:18 +0530 Subject: [PATCH 2/4] initramfs-qcom-image: Add QCOM specific initramfs image Create initramfs-qcom-image that extends initramfs-rootfs-image with QCOM specific boot requirements via packagegroup-qcom-boot. This ensures boot-critical kernel modules (GPUCC, FEMTO PHY, UFS) are included in the initramfs, allowing built-in drivers to find their module dependencies early during boot and avoiding deferred probe timeout issues. Signed-off-by: Kavinaya S --- recipes-kernel/images/initramfs-qcom-image.bb | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 recipes-kernel/images/initramfs-qcom-image.bb diff --git a/recipes-kernel/images/initramfs-qcom-image.bb b/recipes-kernel/images/initramfs-qcom-image.bb new file mode 100644 index 000000000..dd6ac1298 --- /dev/null +++ b/recipes-kernel/images/initramfs-qcom-image.bb @@ -0,0 +1,5 @@ +require initramfs-rootfs-image.bb + +DESCRIPTION = "Ramdisk image for Qualcomm boards" + +PACKAGE_INSTALL += "packagegroup-qcom-boot" From c771ba8d7ab0126f62e0a53affb27e995d3b0658 Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Tue, 26 May 2026 16:56:26 +0530 Subject: [PATCH 3/4] bsp-additions.cfg: Convert UFS drivers to module Remove CONFIG_SCSI_UFS_QCOM=y from bsp-additions.cfg, allowing it to default to module (=m) configuration. The module will be loaded from initramfs during early boot. The current kernel configuration creates a dependency mismatch where built-in drivers (=y) depend on modules (=m) located in rootfs. Examples include: 1.CONFIG_ARM_SMMU_QCOM=y depends on CONFIG_SA_GPUCC_8775P=m 2.CONFIG_USB_DWC3_QCOM=y depends on CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m This mismatch causes built-in drivers to probe before their module dependencies are available, resulting in repeated probe deferrals. When the kernel's deferred probe timeout expires, these drivers fail to initialize, causing boot delays, cascading failures in dependent subsystems Signed-off-by: Kavinaya S --- recipes-kernel/linux/linux-qcom-6.18/configs/bsp-additions.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes-kernel/linux/linux-qcom-6.18/configs/bsp-additions.cfg b/recipes-kernel/linux/linux-qcom-6.18/configs/bsp-additions.cfg index aed21d841..e67f70e21 100644 --- a/recipes-kernel/linux/linux-qcom-6.18/configs/bsp-additions.cfg +++ b/recipes-kernel/linux/linux-qcom-6.18/configs/bsp-additions.cfg @@ -1,6 +1,5 @@ # for UFS enumeration CONFIG_PHY_QCOM_QMP=y -CONFIG_SCSI_UFS_QCOM=y CONFIG_SM_TCSRCC_8750=y CONFIG_CLK_KAANAPALI_TCSRCC=y From 512a9f35297d76e142ee59adeeb58382380a3c3f Mon Sep 17 00:00:00 2001 From: Kavinaya S Date: Tue, 26 May 2026 17:01:18 +0530 Subject: [PATCH 4/4] bsp-additions.cfg: Convert UFS drivers to module Remove CONFIG_SCSI_UFS_QCOM=y from bsp-additions.cfg, allowing it to default to module (=m) configuration. The module will be loaded from initramfs during early boot. The current kernel configuration creates a dependency mismatch where built-in drivers (=y) depend on modules (=m) located in rootfs. Examples include: 1.CONFIG_ARM_SMMU_QCOM=y depends on CONFIG_SA_GPUCC_8775P=m 2.CONFIG_USB_DWC3_QCOM=y depends on CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m This mismatch causes built-in drivers to probe before their module dependencies are available, resulting in repeated probe deferrals. When the kernel's deferred probe timeout expires, these drivers fail to initialize, causing boot delays, cascading failures in dependent subsystems Signed-off-by: Kavinaya S --- recipes-kernel/linux/linux-qcom-next/configs/bsp-additions.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/recipes-kernel/linux/linux-qcom-next/configs/bsp-additions.cfg b/recipes-kernel/linux/linux-qcom-next/configs/bsp-additions.cfg index 266b73b6f..bbe8c9a98 100644 --- a/recipes-kernel/linux/linux-qcom-next/configs/bsp-additions.cfg +++ b/recipes-kernel/linux/linux-qcom-next/configs/bsp-additions.cfg @@ -1,6 +1,5 @@ # for UFS enumeration CONFIG_PHY_QCOM_QMP=y -CONFIG_SCSI_UFS_QCOM=y CONFIG_SM_TCSRCC_8750=y CONFIG_CLK_KAANAPALI_TCSRCC=y