summaryrefslogtreecommitdiff
path: root/platform-intel.h
diff options
context:
space:
mode:
authorPawel Baldysiak <pawel.baldysiak@intel.com>2016-01-05 17:03:04 +0100
committerNeilBrown <neilb@suse.com>2016-01-06 12:22:57 +1100
commit60f0f54d6f5227f229e7131d34f93f76688b085f (patch)
tree2641e883721ff8be85fb1d904a43275ec2a28737 /platform-intel.h
parentd7d3809a1b93f9f7b7ca7d874c17632cb3305c76 (diff)
downloadmdadm-60f0f54d6f5227f229e7131d34f93f76688b085f.tar.gz
IMSM: Add support for VMD
The Intel Volume Management Device (VMD) is an integrated endpoint on the platform's PCIe root complex that acts as a host bridge to a secondary PCIe domain. This patch adds proper handling of NVMe devices attached to VMD domain. Each VMD domain is treated as a separate controller (HBA). Spanning between domains is forbidden. Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com> Signed-off-by: NeilBrown <neilb@suse.com>
Diffstat (limited to 'platform-intel.h')
-rw-r--r--platform-intel.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/platform-intel.h b/platform-intel.h
index 695d6c6..a8ae85f 100644
--- a/platform-intel.h
+++ b/platform-intel.h
@@ -189,6 +189,7 @@ enum sys_dev_type {
SYS_DEV_SAS,
SYS_DEV_SATA,
SYS_DEV_NVME,
+ SYS_DEV_VMD,
SYS_DEV_MAX
};
@@ -213,6 +214,7 @@ struct devid_list {
struct orom_entry {
struct imsm_orom orom;
struct devid_list *devid_list;
+ enum sys_dev_type type;
struct orom_entry *next;
};
@@ -229,6 +231,7 @@ static inline char *guid_str(char *buf, struct efi_guid guid)
}
char *diskfd_to_devpath(int fd);
+__u16 devpath_to_vendor(const char *dev_path);
struct sys_dev *find_driver_devices(const char *bus, const char *driver);
struct sys_dev *find_intel_devices(void);
const struct imsm_orom *find_imsm_capability(struct sys_dev *hba);
@@ -241,3 +244,4 @@ const char *get_sys_dev_type(enum sys_dev_type);
const struct orom_entry *get_orom_entry_by_device_id(__u16 dev_id);
const struct imsm_orom *get_orom_by_device_id(__u16 device_id);
struct sys_dev *device_by_id(__u16 device_id);
+char *vmd_domain_to_controller(struct sys_dev *hba, char *buf);