// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2018, Tuomas Tynkkynen * Copyright (C) 2018, Bin Meng */ #include #include #include #include #include #include static int virtio_curr_dev; static int do_virtio(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { if (argc == 2 && !strcmp(argv[1], "scan")) { /* make sure all virtio devices are enumerated */ virtio_init(); return CMD_RET_SUCCESS; } return blk_common_cmd(argc, argv, IF_TYPE_VIRTIO, &virtio_curr_dev); } U_BOOT_CMD( virtio, 8, 1, do_virtio, "virtio block devices sub-system", "scan - initialize virtio bus\n" "virtio info - show all available virtio block devices\n" "virtio device [dev] - show or set current virtio block device\n" "virtio part [dev] - print partition table of one or all virtio block devices\n" "virtio read addr blk# cnt - read `cnt' blocks starting at block\n" " `blk#' to memory address `addr'\n" "virtio write addr blk# cnt - write `cnt' blocks starting at block\n" " `blk#' from memory address `addr'" );