netbsd: pci passthrough for HVM guests
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 netbsd: pci passthrough for HVM guests
Implement pci passthrough for HVM guests for NetBSD Dom0.
From: Manuel Bouyer <[email protected]>
Signature · 6 lines
---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85689 Dornach b. Muenchen Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632
hw/pass-through.c +0 -2
@@ -84,8 +84,6 @@*/ #include "pass-through.h" -#include "pci/header.h" -#include "pci/pci.h" #include "pt-msi.h" #include "qemu-xen.h" #include "iomulti.h"
hw/pass-through.h +5 -0
@@ -20,8 +20,13 @@#include "hw.h" #include "pci.h" +#ifdef __NetBSD__ +#include "pciutils/header.h" +#include "pciutils/pci.h" +#else #include "pci/header.h" #include "pci/pci.h" +#endif #include "exec-all.h" #include "sys-queue.h" #include "qemu-timer.h"
hw/piix4acpi.c +1 -1
@@ -41,7 +41,7 @@#define PIIX4ACPI_LOG (level, fmt, ...) do { if (level <= PIIX4ACPI_LOGLEVEL) qemu_log(fmt, ## __VA_ARGS__); } while (0)#ifdef CONFIG_PASSTHROUGH -#include <pci/header.h> +#include "pass-through.h" #endif /* PM1a_CNT bits, as defined in the ACPI specification. */
hw/pt-graphics.c +0 -2
@@ -3,8 +3,6 @@*/ #include "pass-through.h" -#include "pci/header.h" -#include "pci/pci.h" #include <unistd.h> #include <sys/ioctl.h>
hw/pt-msi.c +5 -0
@@ -22,6 +22,11 @@#include "pt-msi.h" #include <sys/mman.h> +#ifdef __NetBSD__ +/* MAP_LOCKED is Linux specific. MAP_WIRED is NetBSD's equivalent. */ +#define MAP_LOCKED MAP_WIRED +#endif +void msi_set_enable (struct pt_dev *dev,int en) {uint16_t val =0 ;
hw/pt-msi.h +0 -1
@@ -1,7 +1,6 @@#ifndef _PT_MSI_H#define _PT_MSI_H -#include "pci/pci.h" #include "pass-through.h" #define PCI_CAP_ID_MSI 0x05/* Message Signalled Interrupts */
xen-hooks.mak +14 -2
@@ -57,8 +57,16 @@ endif ifdef CONFIG_STUBDOM CONFIG_PASSTHROUGH=1 else - ifeq (,$(wildcard /usr/include/pci)) -$(warning === pciutils-dev package not found - missing /usr/include/pci) + PCIUTILS_NetBSD=/usr/pkg/include/pciutils + PCIUTILS_Linux=/usr/include/pci + ifeq ($(CONFIG_NetBSD), y) +PCIUTILS_HEADER=$(PCIUTILS_NetBSD) + endif + ifeq ($(CONFIG_Linux), y) +PCIUTILS_HEADER=$(PCITUILS_Linux) + endif + ifeq (,$(wildcard $(PCIUTILS_HEADER))) +$(warning === pciutils-dev package not found - missing $(PCIUTILS_HEADER)) $(warning === PCI passthrough capability has been disabled) else CONFIG_PASSTHROUGH=1
@@ -67,7 +75,11 @@ endif ifdef CONFIG_PASSTHROUGH OBJS+= pass-through.o pt-msi.o pt-graphics.o +ifeq ($(CONFIG_NetBSD), y) +LIBS += -lpciutils -lpci +else LIBS += -lpci +endif CFLAGS += -DCONFIG_PASSTHROUGH $(info === PCI passthrough capability has been enabled ===) endif
tools/libxl/libxl_internal.h +0 -2
@@ -343,8 +343,6 @@ typedef struct {#define PCI_SLOT (devfn) (((devfn) >> 3) & 0x1f)#define PCI_FUNC (devfn) ((devfn) & 0x07)#define AUTO_PHP_SLOT 0x100 -#define SYSFS_PCI_DEV "/sys/bus/pci/devices" -#define SYSFS_PCIBACK_DRIVER "/sys/bus/pci/drivers/pciback"#define XENSTORE_PID_FILE "/var/run/xenstored.pid"#define PROC_PCI_NUM_RESOURCES 7
tools/libxl/libxl_osdeps.h +14 -1
@@ -23,14 +23,27 @@#define _GNU_SOURCE -#if defined(__NetBSD__) || defined(__OpenBSD__) +#if defined(__NetBSD__) +#define SYSFS_PCI_DEV "/sys/bus/pci/devices" +#define SYSFS_PCIBACK_DRIVER "/kern/xen/pci" +#include <util.h> +#elif defined(__OpenBSD__)#include <util.h> #elif defined(__linux__) +#define SYSFS_PCI_DEV "/sys/bus/pci/devices" +#define SYSFS_PCIBACK_DRIVER "/sys/bus/pci/drivers/pciback"#include <pty.h> #elif defined(__sun__)#include <stropts.h> #endif +#ifndef SYSFS_PCIBACK_DRIVER +#error define SYSFS_PCIBACK_DRIVER for your platform +#endif +#ifndef SYSFS_PCI_DEV +#error define SYSFS_PCI_DEV for your platform +#endif +#ifdef NEED_OWN_ASPRINTF #include <stdarg.h>
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xen.org/xen-devel
Quoted 4 lines · Christoph Egger
Implement pci passthrough for HVM guests for NetBSD Dom0.
Signed-off-by Christoph Egger <[email protected]>From: Manuel Bouyer <[email protected]>
Thanks for this and sorry for taking so long to get to it.
I think this is 4.3 material, would you mind resubmitting once we have branched for 4.2?
Cheers,
Ian.