Replace the single SPL_UFS_RAW_U_BOOT_SECTOR config with a Kconfig choice that lets the user select how U-Boot is located on the UFS LUN: by absolute sector offset or by partition.
The sector-based path (SPL_UFS_RAW_U_BOOT_USE_SECTOR) retains the existing SPL_UFS_RAW_U_BOOT_SECTOR option with an explicit default of 0x0. The partition-based path (SPL_UFS_RAW_U_BOOT_USE_PARTITION) adds SPL_UFS_RAW_U_BOOT_PARTITION_NAME and SPL_UFS_RAW_U_BOOT_PARTITION_NUM, allowing U-Boot to be loaded by partition name (tried first) or partition number as a fallback. SPL_LIBDISK_SUPPORT is automatically selected when this path is chosen. Signed-off-by: Balaji Selvanathan <[email protected]> --- Changes in v2: - Introduce SPL_UFS_RAW_U_BOOT_USE_SECTOR to clearly select between sector based or partition based lookup --- common/spl/Kconfig | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 10dcb7b2f87..82b757d1efa 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -1634,13 +1634,53 @@ config SPL_UFS_RAW_U_BOOT_DEVNUM SCSI device number, which might differ from the UFS LUN if you have multiple SCSI devices attached and recognized by the SPL. -config SPL_UFS_RAW_U_BOOT_SECTOR - hex "Address on the UFS to load U-Boot from" +choice + prompt "Method for locating U-Boot on UFS" depends on SPL_UFS + default SPL_UFS_RAW_U_BOOT_USE_SECTOR + +config SPL_UFS_RAW_U_BOOT_USE_SECTOR + bool "UFS raw mode: by sector" + help + Use absolute sector number for specifying U-Boot location on UFS LUN. + When selected, SPL_UFS_RAW_U_BOOT_SECTOR specifies the sector offset. + +config SPL_UFS_RAW_U_BOOT_USE_PARTITION + bool "UFS raw mode: by partition" + select SPL_LIBDISK_SUPPORT + help + Use a partition for loading U-Boot when using UFS in raw mode. + You can specify either a partition name or partition number. + +endchoice + +config SPL_UFS_RAW_U_BOOT_SECTOR + hex "Sector offset to load U-Boot from in UFS raw mode" + depends on SPL_UFS_RAW_U_BOOT_USE_SECTOR default 0x800 if ARCH_ROCKCHIP + default 0x0 help - Address on the block device to load U-Boot from. + Absolute sector offset on the UFS LUN to load U-Boot from. Units: UFS sectors (1 sector = 4096 bytes). + Note: Setting this to 0x0 will load from the start of the LUN. + +config SPL_UFS_RAW_U_BOOT_PARTITION_NAME + string "Partition name to load U-Boot from" + depends on SPL_UFS_RAW_U_BOOT_USE_PARTITION + help + Name of the partition to load U-Boot from in UFS raw mode. + This is tried before partition number lookup. + Leave empty to skip name-based lookup. + Example: "boot", "uefi", "dtb_a" + +config SPL_UFS_RAW_U_BOOT_PARTITION_NUM + int "Partition number to load U-Boot from" + depends on SPL_UFS_RAW_U_BOOT_USE_PARTITION + default 1 + help + Partition number to load U-Boot from when using UFS raw mode + with partition support. This is used if partition name is not + specified or not found. config SPL_WATCHDOG bool "Support watchdog drivers" -- 2.34.1

