[edk2-devel] [PATCH v2 1/4] OvmfPkg: add IndustryStandard/VirtioSerial.h

Gerd Hoffmann kraxel at redhat.com
Thu May 4 13:11:58 UTC 2023


Add header files with structs and defines for the virtio serial device.

The virtio serial device also known as virtio console device because
initially it had only support for a single tty, intended to be used as
console.  Support for multiple streams and named data ports has been
added later on.

https://docs.oasis-open.org/virtio/virtio/v1.2/cs01/virtio-v1.2-cs01.html#x1-2900003

Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
---
 .../Include/IndustryStandard/VirtioSerial.h   | 64 +++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 OvmfPkg/Include/IndustryStandard/VirtioSerial.h

diff --git a/OvmfPkg/Include/IndustryStandard/VirtioSerial.h b/OvmfPkg/Include/IndustryStandard/VirtioSerial.h
new file mode 100644
index 000000000000..ffc8f84d03cc
--- /dev/null
+++ b/OvmfPkg/Include/IndustryStandard/VirtioSerial.h
@@ -0,0 +1,64 @@
+/** @file
+  Virtio Serial Device specific type and macro definitions.
+
+  Copyright (C) 2013-2016, Red Hat, Inc.
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#ifndef _VIRTIO_SERIAL_H_
+#define _VIRTIO_SERIAL_H_
+
+#include <IndustryStandard/Virtio095.h>
+#include <IndustryStandard/Virtio10.h>
+
+//
+// Device Configuration
+//
+typedef struct {
+  UINT16    Cols;
+  UINT16    Rows;
+  UINT32    MaxPorts;
+  UINT32    EmergWrite;
+} VIRTIO_SERIAL_CONFIG;
+
+//
+// Control Queue
+//
+typedef struct {
+  UINT32    Id;
+  UINT16    Event;
+  UINT16    Value;
+} VIRTIO_SERIAL_CONTROL;
+
+//
+// Queue Identifiers
+//
+#define VIRTIO_SERIAL_Q_RX_PORT0  0
+#define VIRTIO_SERIAL_Q_TX_PORT0  1
+#define VIRTIO_SERIAL_Q_RX_CTRL   2
+#define VIRTIO_SERIAL_Q_TX_CTRL   3
+#define VIRTIO_SERIAL_Q_RX_BASE   4
+#define VIRTIO_SERIAL_Q_TX_BASE   5
+
+//
+// Feature Bits
+//
+#define VIRTIO_SERIAL_F_SIZE         BIT0
+#define VIRTIO_SERIAL_F_MULTIPORT    BIT1
+#define VIRTIO_SERIAL_F_EMERG_WRITE  BIT2
+
+//
+// Events
+//
+#define VIRTIO_SERIAL_DEVICE_READY   0
+#define VIRTIO_SERIAL_DEVICE_ADD     1
+#define VIRTIO_SERIAL_DEVICE_REMOVE  2
+#define VIRTIO_SERIAL_PORT_READY     3
+#define VIRTIO_SERIAL_CONSOLE_PORT   4
+#define VIRTIO_SERIAL_RESIZE         5
+#define VIRTIO_SERIAL_PORT_OPEN      6
+#define VIRTIO_SERIAL_PORT_NAME      7
+
+#endif /* _VIRTIO_SERIAL_H_ */
-- 
2.40.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#103991): https://edk2.groups.io/g/devel/message/103991
Mute This Topic: https://groups.io/mt/98683331/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list