mirror of
https://github.com/apache/nuttx.git
synced 2026-05-23 23:28:29 +08:00
openamp: decoupling the transport layer and virtio device layer
Patch 17: virtio: follow virtio 1.2 spec, add more virtio status and device Patch 18: virtio: decoupling the transport layer and virtio device layer 1. Add virtio device api to decouple the transport layer and virtio device layer. 2. Move the vrings info and virtqueue allocation/free to the remoteproc transport layer; 3. Because 2, modify the rpmsg device also; Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
From 61a7811f09b529341351c19ce1644b7e790daa5f Mon Sep 17 00:00:00 2001
|
||||
From: wangbowen6 <wangbowen6@xiaomi.com>
|
||||
Date: Tue, 9 May 2023 11:30:09 +0800
|
||||
Subject: [PATCH 1/2] virtio: follow virtio 1.2 spec, add more virtio status
|
||||
and device
|
||||
|
||||
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
|
||||
---
|
||||
lib/include/openamp/virtio.h | 37 ++++++++++++++++++++++++++----------
|
||||
lib/virtio/virtio.c | 14 ++++++++++++++
|
||||
2 files changed, 41 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/lib/include/openamp/virtio.h open-amp/lib/include/openamp/virtio.h
|
||||
index 0303a5b..3001a06 100644
|
||||
--- a/lib/include/openamp/virtio.h
|
||||
+++ open-amp/lib/include/openamp/virtio.h
|
||||
@@ -15,21 +15,38 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* VirtIO device IDs. */
|
||||
-#define VIRTIO_ID_NETWORK 0x01UL
|
||||
-#define VIRTIO_ID_BLOCK 0x02UL
|
||||
-#define VIRTIO_ID_CONSOLE 0x03UL
|
||||
-#define VIRTIO_ID_ENTROPY 0x04UL
|
||||
-#define VIRTIO_ID_BALLOON 0x05UL
|
||||
-#define VIRTIO_ID_IOMEMORY 0x06UL
|
||||
-#define VIRTIO_ID_RPMSG 0x07UL /* remote processor messaging */
|
||||
-#define VIRTIO_ID_SCSI 0x08UL
|
||||
-#define VIRTIO_ID_9P 0x09UL
|
||||
-#define VIRTIO_DEV_ANY_ID (-1)UL
|
||||
+#define VIRTIO_ID_NETWORK 1UL
|
||||
+#define VIRTIO_ID_BLOCK 2UL
|
||||
+#define VIRTIO_ID_CONSOLE 3UL
|
||||
+#define VIRTIO_ID_ENTROPY 4UL
|
||||
+#define VIRTIO_ID_BALLOON 5UL
|
||||
+#define VIRTIO_ID_IOMEMORY 6UL
|
||||
+#define VIRTIO_ID_RPMSG 7UL /* remote processor messaging */
|
||||
+#define VIRTIO_ID_SCSI 8UL
|
||||
+#define VIRTIO_ID_9P 9UL
|
||||
+#define VIRTIO_ID_RPROC_SERIAL 11UL
|
||||
+#define VIRTIO_ID_GPU 16UL
|
||||
+#define VIRTIO_ID_INPUT 18UL
|
||||
+#define VIRTIO_ID_VSOCK 19UL
|
||||
+#define VIRTIO_ID_CRYPTO 20UL
|
||||
+#define VIRTIO_ID_IOMMU 23UL
|
||||
+#define VIRTIO_ID_MEM 24UL
|
||||
+#define VIRTIO_ID_SOUND 25UL
|
||||
+#define VIRTIO_ID_FS 26UL
|
||||
+#define VIRTIO_ID_PMEM 27UL
|
||||
+#define VIRTIO_ID_RPMB 28UL
|
||||
+#define VIRTIO_ID_SCMI 32UL
|
||||
+#define VIRTIO_ID_I2C_ADAPTER 34UL
|
||||
+#define VIRTIO_ID_BT 40UL
|
||||
+#define VIRTIO_ID_GPIO 41UL
|
||||
+#define VIRTIO_DEV_ANY_ID -1UL
|
||||
|
||||
/* Status byte for guest to report progress. */
|
||||
+#define VIRTIO_CONFIG_STATUS_RESET 0x00
|
||||
#define VIRTIO_CONFIG_STATUS_ACK 0x01
|
||||
#define VIRTIO_CONFIG_STATUS_DRIVER 0x02
|
||||
#define VIRTIO_CONFIG_STATUS_DRIVER_OK 0x04
|
||||
+#define VIRTIO_CONFIG_FEATURES_OK 0x08
|
||||
#define VIRTIO_CONFIG_STATUS_NEEDS_RESET 0x40
|
||||
#define VIRTIO_CONFIG_STATUS_FAILED 0x80
|
||||
|
||||
diff --git a/lib/virtio/virtio.c open-amp/lib/virtio/virtio.c
|
||||
index d205784..d25aec3 100644
|
||||
--- a/lib/virtio/virtio.c
|
||||
+++ open-amp/lib/virtio/virtio.c
|
||||
@@ -26,6 +26,20 @@ static const struct virtio_ident {
|
||||
VIRTIO_ID_IOMEMORY, "IOMemory"}, {
|
||||
VIRTIO_ID_SCSI, "SCSI"}, {
|
||||
VIRTIO_ID_9P, "9P Transport"}, {
|
||||
+ VIRTIO_ID_GPU, "GPU"}, {
|
||||
+ VIRTIO_ID_INPUT, "Input"}, {
|
||||
+ VIRTIO_ID_VSOCK, "Vsock Transport"}, {
|
||||
+ VIRTIO_ID_CRYPTO, "Crypto"}, {
|
||||
+ VIRTIO_ID_IOMMU, "IOMMU"}, {
|
||||
+ VIRTIO_ID_MEM, "Memory"}, {
|
||||
+ VIRTIO_ID_SOUND, "Sound"}, {
|
||||
+ VIRTIO_ID_FS, "File System"}, {
|
||||
+ VIRTIO_ID_PMEM, "Pmem"}, {
|
||||
+ VIRTIO_ID_RPMB, "RPMB"}, {
|
||||
+ VIRTIO_ID_SCMI, "SCMI"}, {
|
||||
+ VIRTIO_ID_I2C_ADAPTER, "I2C Adapter"}, {
|
||||
+ VIRTIO_ID_BT, "Bluetooth"}, {
|
||||
+ VIRTIO_ID_GPIO, "GPIO" }, {
|
||||
0, NULL}
|
||||
};
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -51,6 +51,8 @@ open-amp.zip:
|
||||
$(Q) patch -p0 < 0014-rpmsg-add-cache-flash-when-hold-rx-buffer.patch
|
||||
$(Q) patch -p0 < 0015-rpmsg-do-cache_invalidate-when-real-data-returned.patch
|
||||
$(Q) patch -p0 < 0016-openamp-add-new-API-rpmsg_virtio_get_rxbuffer_size.patch
|
||||
$(Q) patch -p0 < 0017-virtio-follow-virtio-1.2-spec-add-more-virtio-status.patch
|
||||
$(Q) patch -p0 < 0018-virtio-decoupling-the-transport-layer-and-virtio-dev.patch
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user