1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-08-31 08:12:06 +02:00

xen: pvblock: Add initial support for para-virtualized block driver

Add initial infrastructure for Xen para-virtualized block device.
This includes compile-time configuration and the skeleton for
the future driver implementation.
Add new class UCLASS_PVBLOCK which is going to be a parent for
virtual block devices.
Add new interface type IF_TYPE_PVBLOCK.

Implement basic driver setup by reading XenStore configuration.

Signed-off-by: Andrii Anisov <andrii_anisov@epam.com>
Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
This commit is contained in:
Anastasiia Lukianenko
2020-08-06 12:42:55 +03:00
committed by Tom Rini
parent c850674ff7
commit 722bc5b5d9
15 changed files with 223 additions and 0 deletions

View File

@@ -1370,6 +1370,13 @@ config CMD_USB_MASS_STORAGE
help
USB mass storage support
config CMD_PVBLOCK
bool "Xen para-virtualized block device"
depends on XEN
select PVBLOCK
help
Xen para-virtualized block device support
config CMD_VIRTIO
bool "virtio"
depends on VIRTIO

View File

@@ -174,6 +174,7 @@ obj-$(CONFIG_CMD_DFU) += dfu.o
obj-$(CONFIG_CMD_GPT) += gpt.o
obj-$(CONFIG_CMD_ETHSW) += ethsw.o
obj-$(CONFIG_CMD_AXI) += axi.o
obj-$(CONFIG_CMD_PVBLOCK) += pvblock.o
# Power
obj-$(CONFIG_CMD_PMIC) += pmic.o

30
cmd/pvblock.c Normal file
View File

@@ -0,0 +1,30 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2020 EPAM Systems Inc.
*
* XEN para-virtualized block device support
*/
#include <blk.h>
#include <common.h>
#include <command.h>
/* Current I/O Device */
static int pvblock_curr_device;
int do_pvblock(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
return blk_common_cmd(argc, argv, IF_TYPE_PVBLOCK,
&pvblock_curr_device);
}
U_BOOT_CMD(pvblock, 5, 1, do_pvblock,
"Xen para-virtualized block device",
"info - show available block devices\n"
"pvblock device [dev] - show or set current device\n"
"pvblock part [dev] - print partition table of one or all devices\n"
"pvblock read addr blk# cnt\n"
"pvblock write addr blk# cnt - read/write `cnt'"
" blocks starting at block `blk#'\n"
" to/from memory address `addr'");