svn commit: r345171 - head/usr.sbin/bhyve

Chuck Tuffli chuck at FreeBSD.org
Fri Mar 15 02:11:29 UTC 2019


Author: chuck
Date: Fri Mar 15 02:11:28 2019
New Revision: 345171
URL: https://svnweb.freebsd.org/changeset/base/345171

Log:
  Fix bhyve PCIe capability emulation
  
  PCIe devices starting with version 1.1 must set the Role-Based Error
  Reporting bit.
  
  And while we're in the neighborhood, generalize the code assigning the
  device type.
  
  Reviewed by:	imp, araujo, rgrimes
  Approved by:	imp (mentor)
  MFC after:	1 week
  Differential Revision: https://reviews.freebsd.org/D19580

Modified:
  head/usr.sbin/bhyve/pci_emul.c

Modified: head/usr.sbin/bhyve/pci_emul.c
==============================================================================
--- head/usr.sbin/bhyve/pci_emul.c	Fri Mar 15 02:11:27 2019	(r345170)
+++ head/usr.sbin/bhyve/pci_emul.c	Fri Mar 15 02:11:28 2019	(r345171)
@@ -953,7 +953,10 @@ pci_emul_add_pciecap(struct pci_devinst *pi, int type)
 	bzero(&pciecap, sizeof(pciecap));
 
 	pciecap.capid = PCIY_EXPRESS;
-	pciecap.pcie_capabilities = PCIECAP_VERSION | PCIEM_TYPE_ROOT_PORT;
+	pciecap.pcie_capabilities = PCIECAP_VERSION | type;
+	/* Devices starting with version 1.1 must set the RBER bit */
+	if (PCIECAP_VERSION >= 1)
+		pciecap.dev_capabilities = PCIEM_CAP_ROLE_ERR_RPT;
 	pciecap.link_capabilities = 0x411;	/* gen1, x1 */
 	pciecap.link_status = 0x11;		/* gen1, x1 */
 


More information about the svn-src-head mailing list