Subject: [PATCH v2] ibft: Expose iBFT acpi header via sysfs
Subsystems (3)
Some ethernet adapter vendors are supplying products which support optional (payed license) features. On some adapters this includes a hardware iscsi initiator. The same adapters in a normal (no extra licenses) mode of operation can be used as a software iscsi initiator. In addition, software iscsi boot initiators are becoming a standard part of many vendors uefi implementations. This is creating difficulties during early boot/install determining the proper configuration method for these adapters when they are used as a boot device.
The attached patch creates sysfs entries to expose information from the acpi header of the ibft table. This information allows for a method to easily determining if an ibft table was created by a ethernet card's firmware or the system uefi/bios. In the case of a hardware initiator this information in combination with the pci vendor and device id can be used to ascertain any vendor specific behaviors that need to be accommodated.
--- Documentation/ABI/testing/sysfs-ibft | 10 ++++++ drivers/firmware/iscsi_ibft.c | 67 +++++++++++++++++++++++++++++++++++- drivers/scsi/iscsi_boot_sysfs.c | 62 +++++++++++++++++++++++++++++++++ include/linux/iscsi_boot_sysfs.h | 13 +++++++ 4 files changed, 151 insertions(+), 1 deletion(-)
Documentation/ABI/testing/sysfs-ibft +10 -0
@@ -21,3 +21,13 @@ Contact: Konrad Rzeszutek <[email protected]> Description: The /sys/firmware/ibft/ethernetX directory will contain files that expose the iSCSI Boot Firmware Table NIC data. Usually this contains the IP address, MAC, and gateway of the NIC. + +What: /sys/firmware/ibft/acpi_header +Date: March 2016 +Contact: David Bond <dbond-IBi9RG/[email protected]> +Description: The /sys/firmware/ibft/acpi_header directory will contain files + that expose the SIGNATURE, OEM_ID, and OEM_TABLE_ID fields of the + acpi table header of the iBFT structure. This will allow for + identification of the creator of the table which is useful in + determining quirks associated with some adapters when used in + hardware vs software iscsi initiator mode.
drivers/firmware/iscsi_ibft.c +66 -1
97 lines not on this page · raw message
drivers/scsi/iscsi_boot_sysfs.c +62 -0
74 lines not on this page · raw message
include/linux/iscsi_boot_sysfs.h +13 -0
@@ -64,6 +64,12 @@ enum iscsi_boot_initiator_properties_enum { ISCSI_BOOT_INI_END_MARKER, }; +enum iscsi_boot_acpitbl_properties_enum { +ISCSI_BOOT_ACPITBL_SIGNATURE , +ISCSI_BOOT_ACPITBL_OEM_ID , +ISCSI_BOOT_ACPITBL_OEM_TABLE_ID , +}; +struct attribute_group ;struct iscsi_boot_kobj {
@@ -127,6 +133,13 @@ iscsi_boot_create_target(struct iscsi_boot_kset *boot_kset, int index,umode_t (*is_visible) (void *data,int type), void (*release) (void *data)); +struct iscsi_boot_kobj * +iscsi_boot_create_acpitbl (struct iscsi_boot_kset *boot_kset,int index, +void *data, +ssize_t (*show)(void *data,int type,char *buf), +umode_t (*is_visible)(void *data,int type), +void (*release)(void *data)); +struct iscsi_boot_kset *iscsi_boot_create_kset (const char *set_name);struct iscsi_boot_kset *iscsi_boot_create_host_kset (unsigned int hostno);void iscsi_boot_destroy_kset (struct iscsi_boot_kset *boot_kset);
Signature · 8 lines
2.6.2 -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected] To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/[email protected] Visit this group at https://groups.google.com/group/open-iscsi. For more options, visit https://groups.google.com/d/optout.