uboot/cmd/nvme.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * Copyright (C) 2017 NXP Semiconductors
   4 * Copyright (C) 2017 Bin Meng <bmeng.cn@gmail.com>
   5 */
   6
   7#include <common.h>
   8#include <blk.h>
   9#include <command.h>
  10#include <dm.h>
  11#include <nvme.h>
  12
  13static int nvme_curr_dev;
  14
  15static int do_nvme(struct cmd_tbl *cmdtp, int flag, int argc,
  16                   char *const argv[])
  17{
  18        int ret;
  19
  20        if (argc == 2) {
  21                if (strncmp(argv[1], "scan", 4) == 0) {
  22                        ret = nvme_scan_namespace();
  23                        if (ret)
  24                                return CMD_RET_FAILURE;
  25
  26                        return ret;
  27                }
  28                if (strncmp(argv[1], "deta", 4) == 0) {
  29                        struct udevice *udev;
  30
  31                        ret = blk_get_device(IF_TYPE_NVME, nvme_curr_dev,
  32                                             &udev);
  33                        if (ret < 0)
  34                                return CMD_RET_FAILURE;
  35
  36                        nvme_print_info(udev);
  37
  38                        return ret;
  39                }
  40        }
  41
  42        return blk_common_cmd(argc, argv, IF_TYPE_NVME, &nvme_curr_dev);
  43}
  44
  45U_BOOT_CMD(
  46        nvme, 8, 1, do_nvme,
  47        "NVM Express sub-system",
  48        "scan - scan NVMe devices\n"
  49        "nvme detail - show details of current NVMe device\n"
  50        "nvme info - show all available NVMe devices\n"
  51        "nvme device [dev] - show or set current NVMe device\n"
  52        "nvme part [dev] - print partition table of one or all NVMe devices\n"
  53        "nvme read addr blk# cnt - read `cnt' blocks starting at block\n"
  54        "     `blk#' to memory address `addr'\n"
  55        "nvme write addr blk# cnt - write `cnt' blocks starting at block\n"
  56        "     `blk#' from memory address `addr'"
  57);
  58