svn commit: r333836 - head/sys/powerpc/powernv

Justin Hibbits jhibbits at FreeBSD.org
Sat May 19 04:01:16 UTC 2018


Author: jhibbits
Date: Sat May 19 04:01:15 2018
New Revision: 333836
URL: https://svnweb.freebsd.org/changeset/base/333836

Log:
  powerpc64: Add OPAL definitions
  
  Summary:
  Add additional OPAL PCI definitions and expand the code to use them in order to
  ease the OPAL interface process for new comers.
  
  These definitions came directly from the OPAL code and they are the same for
  both PHB3 (POWER8) and PHB4 (POWER9).
  
  Submitted by:	Breno Leitao
  Differential Revision: https://reviews.freebsd.org/D15432

Modified:
  head/sys/powerpc/powernv/opal.h
  head/sys/powerpc/powernv/opal_pci.c

Modified: head/sys/powerpc/powernv/opal.h
==============================================================================
--- head/sys/powerpc/powernv/opal.h	Sat May 19 03:58:40 2018	(r333835)
+++ head/sys/powerpc/powernv/opal.h	Sat May 19 04:01:15 2018	(r333836)
@@ -79,6 +79,20 @@ int opal_call(uint64_t token, ...);
 #define	OPAL_UNMAP_PE			0
 #define OPAL_MAP_PE			1
 
+#define	OPAL_PCI_BUS_ANY		0
+#define	OPAL_PCI_BUS_3BITS		2
+#define	OPAL_PCI_BUS_4BITS		3
+#define	OPAL_PCI_BUS_5BITS		4
+#define	OPAL_PCI_BUS_6BITS		5
+#define	OPAL_PCI_BUS_7BITS		6
+#define	OPAL_PCI_BUS_ALL		7 /* Match bus number exactly */
+
+#define	OPAL_IGNORE_RID_DEVICE_NUMBER	0
+#define	OPAL_COMPARE_RID_DEVICE_NUMBER	1
+
+#define	OPAL_IGNORE_RID_FUNC_NUMBER	0
+#define	OPAL_COMPARE_RID_FUNC_NUMBER	1
+
 #define	OPAL_SUCCESS			0
 #define	OPAL_PARAMETER			-1
 #define	OPAL_BUSY			-2

Modified: head/sys/powerpc/powernv/opal_pci.c
==============================================================================
--- head/sys/powerpc/powernv/opal_pci.c	Sat May 19 03:58:40 2018	(r333835)
+++ head/sys/powerpc/powernv/opal_pci.c	Sat May 19 04:01:15 2018	(r333836)
@@ -254,8 +254,8 @@ opalpci_attach(device_t dev)
 	 * such time as we start wanting to do things like bhyve.
 	 */
 	err = opal_call(OPAL_PCI_SET_PE, sc->phb_id, OPAL_PCI_DEFAULT_PE,
-	    0, 0, 0, 0, /* All devices */
-	    OPAL_MAP_PE);
+	    0, OPAL_PCI_BUS_ANY, OPAL_IGNORE_RID_DEVICE_NUMBER,
+	    OPAL_IGNORE_RID_FUNC_NUMBER, OPAL_MAP_PE);
 	if (err != 0) {
 		device_printf(dev, "PE mapping failed: %d\n", err);
 		return (ENXIO);


More information about the svn-src-all mailing list