cmd: Add Support for UFS commands
authorFaiz Abbas <faiz_abbas@ti.com>
Tue, 15 Oct 2019 12:54:40 +0000 (18:24 +0530)
committerTom Rini <trini@konsulko.com>
Thu, 24 Oct 2019 00:47:12 +0000 (20:47 -0400)
Add Support for commands to initialize and configure UFS devices.

TODO: Add Support for commands to resize and reconfigure LUNs
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
cmd/Kconfig
cmd/Makefile
cmd/ufs.c [new file with mode: 0644]

index 07060c63a7e6f9cde9e26ade39c3c53e232bcc59..82b5d300d2c1c0efc385658fb63d2d34dff6af57 100644 (file)
@@ -1205,6 +1205,13 @@ config CMD_TSI148
          This provides various sub-commands to initialise and configure the
          Turndra tsi148 device. See the command help for full details.
 
+config CMD_UFS
+       bool "Enable UFS - Universal Flash Subsystem commands"
+       depends on UFS
+       help
+         "This provides commands to initialise and configure universal flash
+          subsystem devices"
+
 config CMD_UNIVERSE
        bool "universe - Command to set up the Turndra Universe controller"
        help
index ac843b4b16addd52925c8fee88c27562bc37060e..2d723ea0f07d9a5669f2c0d33225600b01f80793 100644 (file)
@@ -144,7 +144,7 @@ obj-$(CONFIG_CMD_UNZIP) += unzip.o
 obj-$(CONFIG_CMD_VIRTIO) += virtio.o
 obj-$(CONFIG_CMD_WDT) += wdt.o
 obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o
-
+obj-$(CONFIG_CMD_UFS) += ufs.o
 obj-$(CONFIG_CMD_USB) += usb.o disk.o
 obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o
 obj-$(CONFIG_CMD_FS_UUID) += fs_uuid.o
diff --git a/cmd/ufs.c b/cmd/ufs.c
new file mode 100644 (file)
index 0000000..5b25788
--- /dev/null
+++ b/cmd/ufs.c
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0+
+/**
+ * ufs.c - UFS specific U-boot commands
+ *
+ * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com
+ *
+ */
+#include <common.h>
+#include <command.h>
+#include <ufs.h>
+
+static int do_ufs(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+       int dev, ret;
+
+       if (argc >= 2) {
+               if (!strcmp(argv[1], "init")) {
+                       if (argc == 3) {
+                               dev = simple_strtoul(argv[2], NULL, 10);
+                               ret = ufs_probe_dev(dev);
+                               if (ret)
+                                       return CMD_RET_FAILURE;
+                       } else {
+                               ufs_probe();
+                       }
+
+                       return CMD_RET_SUCCESS;
+               }
+       }
+
+       return CMD_RET_USAGE;
+}
+
+U_BOOT_CMD(ufs, 3, 1, do_ufs,
+          "UFS  sub system",
+          "init [dev] - init UFS subsystem\n"
+);