[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