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

@@ -33,6 +33,7 @@ enum if_type {
IF_TYPE_HOST,
IF_TYPE_NVME,
IF_TYPE_EFI,
IF_TYPE_PVBLOCK,
IF_TYPE_VIRTIO,
IF_TYPE_COUNT, /* Number of interface types */

View File

@@ -41,4 +41,12 @@
#define CONFIG_CMDLINE_TAG 1
#define CONFIG_INITRD_TAG 1
#define CONFIG_CMD_RUN
#undef CONFIG_EXTRA_ENV_SETTINGS
#define CONFIG_EXTRA_ENV_SETTINGS \
"loadimage=ext4load pvblock 0 0x90000000 /boot/Image;\0" \
"pvblockboot=run loadimage;" \
"booti 0x90000000 - 0x88000000;\0"
#endif /* __XENGUEST_ARM64_H */

View File

@@ -123,6 +123,7 @@ enum uclass_id {
UCLASS_W1, /* Dallas 1-Wire bus */
UCLASS_W1_EEPROM, /* one-wire EEPROMs */
UCLASS_WDT, /* Watchdog Timer driver */
UCLASS_PVBLOCK, /* Xen virtual block device */
UCLASS_COUNT,
UCLASS_INVALID = -1,

17
include/pvblock.h Normal file
View File

@@ -0,0 +1,17 @@
/* SPDX-License-Identifier: GPL-2.0+
*
* (C) 2020 EPAM Systems Inc.
*/
#ifndef _PVBLOCK_H
#define _PVBLOCK_H
/**
* pvblock_init() - Initialize para-virtual block device class driver
*
* Bind PV block to UCLASS_ROOT device and probe all UCLASS_PVBLOCK
* virtual block devices.
*/
void pvblock_init(void);
#endif /* _PVBLOCK_H */