This series adds UFS boot support in SPL for Qualcomm Snapdragon platforms, along with the necessary driver and infrastructure changes to support it.
Patch 1 renames SPL_UFS_SUPPORT to SPL_UFS for naming consistency. Patch 2 renames SPL_UFS_SUPPORT to SPL_UFS for defconfigs. Patch 3 adds a Kconfig choice for U-Boot location: sector or partition. Patch 4 refactors spl_ufs.c to add partition-based U-Boot loading. Patch 5 enables part_get_info_ptr() in SPL for UFS partition boot. Patch 6 adds UFS_MODE_RAW and UFS_MODE_FS defines to spl.h. Patch 7 adds SPL_UFS_QCOM to enable the Qualcomm UFS HC driver in SPL. Patch 8 adds SPL_PHY_QCOM_QMP_UFS to enable the QMP UFS PHY in SPL. Patch 9 adds SPL_CLK_STUB Kconfig for the stub clock driver in SPL. Patch 10 updates charset.o build rule to use SPL_UFS after the rename. Patch 11 adds SPL_QCOM_GENI Kconfig and $(PHASE_) support for GENI. Patch 12 adds SPL_PINCTRL_QCOM_* symbols and $(PHASE_) Makefile support for all Qualcomm pinctrl drivers. Patch 13 adds SPL_MSM_SERIAL and SPL_MSM_GENI_SERIAL Kconfig and $(PHASE_) support for Qualcomm serial drivers. Patch 14 updates Qualcomm PMIC and SPMI Makefiles to use $(PHASE_). Signed-off-by: Balaji Selvanathan <[email protected]> --- Changes in v3: - Simplified partition selection logic in ufs_load_image_raw_partition - Removed spl: ufs: add SPL_UFS_FS Kconfig and filesystem boot stub - Link to v2: https://lore.kernel.org/u-boot/[email protected]/ Changes in v2: - Renamed SPL_UFS_SUPPORT to SPL_UFS for naming consistency. - Added SPL_UFS_RAW_U_BOOT_USE_SECTOR config to clearly choose between sector or partition - Refactored the codes in common/spl/spl_ufs.c to use helper functions to make the codes readable and clear - Add the filesystem support in SPL UFS as a seperate patch - Correct SPL_UFS_SUPPORT config name in lib/Makefile - Added SPL_QCOM_GENI Kconfig and $(PHASE_) support for GENI - Added SPL_PINCTRL_QCOM_* symbols and $(PHASE_) Makefile - Added SPL_MSM_SERIAL and SPL_MSM_GENI_SERIAL Kconfig - Updated Qualcomm PMIC and SPMI Makefiles to use $(PHASE_) - Link to v1: https://lore.kernel.org/u-boot/[email protected]/ Signed-off-by: Balaji Selvanathan <[email protected]> --- Balaji Selvanathan (14): spl: ufs: rename SPL_UFS_SUPPORT config to SPL_UFS configs: rename SPL_UFS_SUPPORT to SPL_UFS spl: ufs: add Kconfig choice for U-Boot location method spl: ufs: add partition-based U-Boot loading support part: enable part_get_info_ptr for SPL UFS partition boot spl: add UFS boot mode defines to spl.h ufs: qcom: add SPL_UFS_QCOM Kconfig and SPL build support phy: qcom: add SPL_PHY_QCOM_QMP_UFS for SPL UFS boot clk: stub: Add Kconfig option for SPL stub driver lib: update charset.o build rule to use SPL_UFS misc: qcom_geni: add SPL support for Qualcomm GENI driver pinctrl: qcom: add SPL support for Qualcomm pinctrl drivers serial: msm: add SPL support for Qualcomm serial drivers power: spmi: use $(PHASE_) macro for Qualcomm PMIC and SPMI common/spl/Kconfig | 51 ++++++++-- common/spl/Makefile | 2 +- common/spl/spl_ufs.c | 151 ++++++++++++++++++++++++---- configs/nanopi-m5-rk3576_defconfig | 2 +- configs/rock-4d-rk3576_defconfig | 2 +- drivers/Makefile | 2 +- drivers/clk/Kconfig | 7 ++ drivers/misc/Kconfig | 10 ++ drivers/misc/Makefile | 2 +- drivers/phy/qcom/Kconfig | 7 ++ drivers/phy/qcom/Makefile | 2 +- drivers/pinctrl/qcom/Kconfig | 201 ++++++++++++++++++++++++++++++++++++- drivers/pinctrl/qcom/Makefile | 46 ++++----- drivers/power/pmic/Makefile | 2 +- drivers/scsi/Makefile | 2 +- drivers/serial/Kconfig | 20 ++++ drivers/serial/Makefile | 4 +- drivers/spmi/Makefile | 4 +- drivers/ufs/Kconfig | 12 ++- drivers/ufs/Makefile | 5 +- include/part.h | 3 +- include/spl.h | 4 + lib/Makefile | 2 +- 23 files changed, 472 insertions(+), 71 deletions(-) --- base-commit: 1e80ee41441c612f05787a93bbef4e6e422e29d1 change-id: 20260615-spl_ufs-5c2c4eb327aa Best regards, -- Balaji Selvanathan <[email protected]>

