On 2/25/25 04:28, Venkatesh Yadav Abbarapu wrote:
Add the UFS boot mode support and update the boot_targets with ufs mode. If the UFS device is not accessible from APU and running this is detected as a warning, as the device is not accessible. Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbar...@amd.com> --- Changes in v2: - Use uclass_get_device() with index 0, as we have single UFS controller. --- arch/arm/mach-versal2/include/mach/hardware.h | 1 + board/amd/versal2/board.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/arch/arm/mach-versal2/include/mach/hardware.h b/arch/arm/mach-versal2/include/mach/hardware.h index 42e3061a0ae..022c8b3c832 100644 --- a/arch/arm/mach-versal2/include/mach/hardware.h +++ b/arch/arm/mach-versal2/include/mach/hardware.h @@ -67,6 +67,7 @@ struct crp_regs { #define USB_MODE 0x00000007 #define OSPI_MODE 0x00000008 #define SELECTMAP_MODE 0x0000000A +#define UFS_MODE 0x0000000B #define SD1_LSHFT_MODE 0x0000000E /* SD1 Level shifter */ #define JTAG_MODE 0x00000000 #define BOOT_MODE_USE_ALT 0x100 diff --git a/board/amd/versal2/board.c b/board/amd/versal2/board.c index 5651d516a9e..220ab63c994 100644 --- a/board/amd/versal2/board.c +++ b/board/amd/versal2/board.c @@ -252,6 +252,16 @@ static int boot_targets_setup(void) mode = "mmc"; bootseq = dev_seq(dev); break; + case UFS_MODE: + puts("UFS_MODE\n"); + if (uclass_get_device(UCLASS_UFS, 0, &dev)) { + debug("UFS driver for UFS device is not present\n"); + break; + } + debug("ufs device found at %p\n", dev); + + mode = "ufs"; + break; default: printf("Invalid Boot Mode:0x%x\n", bootmode); break;
Applied. M