summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2009-12-23 21:07:49 +0000
committermarius <marius@FreeBSD.org>2009-12-23 21:07:49 +0000
commitbc3808fc3374b7ecada1180fb886eba250b07fdc (patch)
tree6a6f07b507774b876efe8cf6629a3a3b391e1665
parentb9cf9990a69fc60fd30d65eec8a3c355b8bd865b (diff)
downloadFreeBSD-src-bc3808fc3374b7ecada1180fb886eba250b07fdc.zip
FreeBSD-src-bc3808fc3374b7ecada1180fb886eba250b07fdc.tar.gz
Add structures for OFW MSI/MSI-X support. These are identical for
both sun4u and sun4v.
-rw-r--r--sys/sparc64/pci/ofw_pci.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/sys/sparc64/pci/ofw_pci.h b/sys/sparc64/pci/ofw_pci.h
index 3b50598..ad96420 100644
--- a/sys/sparc64/pci/ofw_pci.h
+++ b/sys/sparc64/pci/ofw_pci.h
@@ -48,6 +48,31 @@ typedef uint32_t ofw_pci_intr_t;
#define OFW_TYPE_PCI "pci"
#define OFW_TYPE_PCIE "pciex"
+struct ofw_pci_msi_addr_ranges {
+ uint32_t addr32_hi;
+ uint32_t addr32_lo;
+ uint32_t addr32_sz;
+ uint32_t addr64_hi;
+ uint32_t addr64_lo;
+ uint32_t addr64_sz;
+};
+
+#define OFW_PCI_MSI_ADDR_RANGE_32(r) \
+ (((uint64_t)(r)->addr32_hi << 32) | (uint64_t)(r)->addr32_lo)
+#define OFW_PCI_MSI_ADDR_RANGE_64(r) \
+ (((uint64_t)(r)->addr64_hi << 32) | (uint64_t)(r)->addr64_lo)
+
+struct ofw_pci_msi_eq_to_devino {
+ uint32_t eq_first;
+ uint32_t eq_count;
+ uint32_t devino_first;
+};
+
+struct ofw_pci_msi_ranges {
+ uint32_t first;
+ uint32_t count;
+};
+
struct ofw_pci_ranges {
uint32_t cspace;
uint32_t child_hi;
OpenPOWER on IntegriCloud