git: fc98569fc370 - main - bhyve: Do not compile PCI passthrough support on arm64
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 10 Apr 2024 15:19:15 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=fc98569fc370c7f5a2039d472ee3b01f5a78b177
commit fc98569fc370c7f5a2039d472ee3b01f5a78b177
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2024-04-03 17:11:24 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2024-04-10 15:17:56 +0000
bhyve: Do not compile PCI passthrough support on arm64
Some required kernel functionality is not yet implemented.
For now this means that one cannot specify host PCI register values, but
that functionality is only used by amd64-specific device models for now.
Note that this limitation is rather artificial; it arises only because
pci_host_read_config() lives in pci_passthru.c.
Reviewed by: corvink, andrew, jhb
MFC after: 2 weeks
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D41738
---
usr.sbin/bhyve/Makefile | 1 -
usr.sbin/bhyve/amd64/Makefile.inc | 1 +
usr.sbin/bhyve/pci_emul.c | 6 +++++-
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile
index efa5b4acf897..124476ef7d2f 100644
--- a/usr.sbin/bhyve/Makefile
+++ b/usr.sbin/bhyve/Makefile
@@ -40,7 +40,6 @@ SRCS= \
pci_emul.c \
pci_hostbridge.c \
pci_nvme.c \
- pci_passthru.c \
pci_virtio_9p.c \
pci_virtio_block.c \
pci_virtio_console.c \
diff --git a/usr.sbin/bhyve/amd64/Makefile.inc b/usr.sbin/bhyve/amd64/Makefile.inc
index bc0ffa720d31..d281e3cf1581 100644
--- a/usr.sbin/bhyve/amd64/Makefile.inc
+++ b/usr.sbin/bhyve/amd64/Makefile.inc
@@ -15,6 +15,7 @@ SRCS+= \
pci_hda.c \
pci_irq.c \
pci_lpc.c \
+ pci_passthru.c \
pci_uart.c \
pci_xhci.c \
pctestdev.c \
diff --git a/usr.sbin/bhyve/pci_emul.c b/usr.sbin/bhyve/pci_emul.c
index e5e9e56cc3c3..9df05fda5866 100644
--- a/usr.sbin/bhyve/pci_emul.c
+++ b/usr.sbin/bhyve/pci_emul.c
@@ -59,8 +59,8 @@
#ifdef __amd64__
#include "amd64/pci_irq.h"
#include "amd64/pci_lpc.h"
-#endif
#include "pci_passthru.h"
+#endif
#include "qemu_fwcfg.h"
#define CONF1_ADDR_PORT 0x0cf8
@@ -381,7 +381,11 @@ pci_config_read_reg(const struct pcisel *const host_sel, nvlist_t *nvl,
if (config == NULL) {
return def;
} else if (host_sel != NULL && strcmp(config, "host") == 0) {
+#ifdef __amd64__
return pci_host_read_config(host_sel, reg, size);
+#else
+ errx(1, "cannot fetch host PCI configuration");
+#endif
} else {
return strtol(config, NULL, 16);
}