amd: versal2: Add the UFS boot mode support
authorVenkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tue, 25 Feb 2025 03:28:06 +0000 (15:28 -1200)
committerMichal Simek <michal.simek@amd.com>
Wed, 16 Apr 2025 11:42:06 +0000 (13:42 +0200)
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.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20250225032806.1842581-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
arch/arm/mach-versal2/include/mach/hardware.h
board/amd/versal2/board.c

index 15085f9..a961032 100644 (file)
@@ -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
index d3e6547..c99620d 100644 (file)
@@ -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;