aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Grehan <grehan@FreeBSD.org>2021-01-19 17:30:22 +0000
committerPeter Grehan <grehan@FreeBSD.org>2021-01-19 17:30:22 +0000
commiteed1cc6cdfa743e52ac3ea0b788e95b069a5f2f3 (patch)
treeb84fe2acec48d5764a7355d16e7b8af8e6f63001
parente6cc42f181ce346a294ae7aa1d1c321fdc90f241 (diff)
Support COM3 and COM4 serial ports.
Submitted by: Jan Poctavek <janci@binaryparadise.com>, otis Reviewed by: grehan (bhyve), imp, 0mp (manpages) Differential Revision: https://reviews.freebsd.org/D28207
-rw-r--r--usr.sbin/bhyve/bhyve.86
-rw-r--r--usr.sbin/bhyve/pci_lpc.c4
-rw-r--r--usr.sbin/bhyve/uart_emul.c6
3 files changed, 11 insertions, 5 deletions
diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8
index a3ea7be0b579..5d8f37813e7f 100644
--- a/usr.sbin/bhyve/bhyve.8
+++ b/usr.sbin/bhyve/bhyve.8
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd December 23, 2020
+.Dd January 18, 2021
.Dt BHYVE 8
.Os
.Sh NAME
@@ -153,8 +153,8 @@ If this option is not specified, virtual CPUs will use 100% of a host CPU.
Allow devices behind the LPC PCI-ISA bridge to be configured.
The only supported devices are the TTY-class devices
.Ar com1
-and
-.Ar com2 ,
+through
+.Ar com4 ,
the boot ROM device
.Ar bootrom ,
and the debug/test device
diff --git a/usr.sbin/bhyve/pci_lpc.c b/usr.sbin/bhyve/pci_lpc.c
index 3f7df55b5ffd..aa5997848f24 100644
--- a/usr.sbin/bhyve/pci_lpc.c
+++ b/usr.sbin/bhyve/pci_lpc.c
@@ -70,7 +70,7 @@ static struct pci_devinst *lpc_bridge;
static const char *romfile;
-#define LPC_UART_NUM 2
+#define LPC_UART_NUM 4
static struct lpc_uart_softc {
struct uart_softc *uart_softc;
const char *opts;
@@ -79,7 +79,7 @@ static struct lpc_uart_softc {
int enabled;
} lpc_uart_softc[LPC_UART_NUM];
-static const char *lpc_uart_names[LPC_UART_NUM] = { "COM1", "COM2" };
+static const char *lpc_uart_names[LPC_UART_NUM] = { "COM1", "COM2", "COM3", "COM4" };
static bool pctestdev_present;
diff --git a/usr.sbin/bhyve/uart_emul.c b/usr.sbin/bhyve/uart_emul.c
index a89974590a1f..1b55231b2bf5 100644
--- a/usr.sbin/bhyve/uart_emul.c
+++ b/usr.sbin/bhyve/uart_emul.c
@@ -62,6 +62,10 @@ __FBSDID("$FreeBSD$");
#define COM1_IRQ 4
#define COM2_BASE 0x2F8
#define COM2_IRQ 3
+#define COM3_BASE 0x3E8
+#define COM3_IRQ 4
+#define COM4_BASE 0x2E8
+#define COM4_IRQ 3
#define DEFAULT_RCLK 1843200
#define DEFAULT_BAUD 9600
@@ -89,6 +93,8 @@ static struct {
} uart_lres[] = {
{ COM1_BASE, COM1_IRQ, false},
{ COM2_BASE, COM2_IRQ, false},
+ { COM3_BASE, COM3_IRQ, false},
+ { COM4_BASE, COM4_IRQ, false},
};
#define UART_NLDEVS (sizeof(uart_lres) / sizeof(uart_lres[0]))