]> xenbits.xensource.com Git - ovmf.git/commitdiff
OvmfPkg: add IndustryStandard/VirtioSerial.h
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 4 May 2023 13:11:58 +0000 (15:11 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 4 May 2023 14:26:58 +0000 (14:26 +0000)
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@redhat.com>
OvmfPkg/Include/IndustryStandard/VirtioSerial.h [new file with mode: 0644]

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