summaryrefslogtreecommitdiffstats
path: root/sys/dev/nvme/nvme_private.h
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2012-12-18 23:27:18 +0000
committerjimharris <jimharris@FreeBSD.org>2012-12-18 23:27:18 +0000
commit99451e9e7417c523343c14e3808924954ae700da (patch)
tree886a9cc9a87f93839be0aa638ab9a77cfebcda64 /sys/dev/nvme/nvme_private.h
parent8807e65d8f87824ee060b2b82d21ee9259d0de10 (diff)
downloadFreeBSD-src-99451e9e7417c523343c14e3808924954ae700da.zip
FreeBSD-src-99451e9e7417c523343c14e3808924954ae700da.tar.gz
Map BAR 4/5, because NVMe spec says devices may place the MSI-X table
behind BAR 4/5, rather than in BAR 0/1 with the control/doorbell registers. Sponsored by: Intel
Diffstat (limited to 'sys/dev/nvme/nvme_private.h')
-rw-r--r--sys/dev/nvme/nvme_private.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h
index e811901..a74b876 100644
--- a/sys/dev/nvme/nvme_private.h
+++ b/sys/dev/nvme/nvme_private.h
@@ -199,6 +199,14 @@ struct nvme_controller {
int resource_id;
struct resource *resource;
+ /*
+ * The NVMe spec allows for the MSI-X table to be placed in BAR 4/5,
+ * separate from the control registers which are in BAR 0/1. These
+ * members track the mapping of BAR 4/5 for that reason.
+ */
+ int bar4_resource_id;
+ struct resource *bar4_resource;
+
#ifdef CHATHAM2
bus_space_tag_t chatham_bus_tag;
bus_space_handle_t chatham_bus_handle;
OpenPOWER on IntegriCloud