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 */
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to