summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVenkatesh Yadav Abbarapu <[email protected]>2025-02-24 15:28:06 -1200
committerMichal Simek <[email protected]>2025-04-16 13:42:06 +0200
commit253da1f0a2821bf741c8dc24ed2e568b7013f6e0 (patch)
tree4866cfcc38a573a795fb8035046f58680fcd99fe
parent154d7fe95b4c754af5412ca38cc7c21c88997205 (diff)
amd: versal2: Add the UFS boot mode support
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 <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
-rw-r--r--arch/arm/mach-versal2/include/mach/hardware.h1
-rw-r--r--board/amd/versal2/board.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-versal2/include/mach/hardware.h b/arch/arm/mach-versal2/include/mach/hardware.h
index 15085f941e0..a961032b4d5 100644
--- a/arch/arm/mach-versal2/include/mach/hardware.h
+++ b/arch/arm/mach-versal2/include/mach/hardware.h
@@ -68,6 +68,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 d3e6547eada..c99620d03ef 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;