diff options
author | Pawel Baldysiak <pawel.baldysiak@intel.com> | 2016-01-05 17:03:04 +0100 |
---|---|---|
committer | NeilBrown <neilb@suse.com> | 2016-01-06 02:22:57 +0100 |
commit | 60f0f54d6f5227f229e7131d34f93f76688b085f (patch) | |
tree | 2641e883721ff8be85fb1d904a43275ec2a28737 /platform-intel.h | |
parent | imsm: abort reshape if sync_action is not "reshape" (diff) | |
download | mdadm-60f0f54d6f5227f229e7131d34f93f76688b085f.tar.xz mdadm-60f0f54d6f5227f229e7131d34f93f76688b085f.zip |
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.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/platform-intel.h b/platform-intel.h index 695d6c66..a8ae85f4 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); |