aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/ib_srp.h
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2020-10-23 15:26:30 +0100
committerMichael Brown <mcb30@ipxe.org>2020-10-23 15:34:35 +0100
commita2e44077cdb0713d90766e61165ca71fce902003 (patch)
tree36581ed047d0c43fdf6f3fe2e48297fa6d79ff1c /src/include/ipxe/ib_srp.h
parentbf051a76eef07bb4bd04ad4ff2b8b5e23ef26740 (diff)
downloadipxe-a2e44077cdb0713d90766e61165ca71fce902003.tar.gz
[infiniband] Allow SRP device to be described using an EFI device path
The UEFI specification provides a partial definition of an Infiniband device path structure. Use this structure to construct what may be a plausible path containing at least some of the information required to identify an SRP target device. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe/ib_srp.h')
-rw-r--r--src/include/ipxe/ib_srp.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/include/ipxe/ib_srp.h b/src/include/ipxe/ib_srp.h
index ad407b0cf..4b6df8d3b 100644
--- a/src/include/ipxe/ib_srp.h
+++ b/src/include/ipxe/ib_srp.h
@@ -10,6 +10,8 @@
FILE_LICENCE ( BSD2 );
#include <stdint.h>
+#include <ipxe/acpi.h>
+#include <ipxe/interface.h>
#include <ipxe/infiniband.h>
#include <ipxe/srp.h>
@@ -55,4 +57,37 @@ struct sbft_ib_subtable {
uint8_t reserved[6];
} __attribute__ (( packed ));
+/**
+ * An Infiniband SRP sBFT created by iPXE
+ */
+struct ipxe_ib_sbft {
+ /** The table header */
+ struct sbft_table table;
+ /** The SCSI subtable */
+ struct sbft_scsi_subtable scsi;
+ /** The SRP subtable */
+ struct sbft_srp_subtable srp;
+ /** The Infiniband subtable */
+ struct sbft_ib_subtable ib;
+};
+
+/** An Infiniband SRP device */
+struct ib_srp_device {
+ /** Reference count */
+ struct refcnt refcnt;
+
+ /** SRP transport interface */
+ struct interface srp;
+ /** CMRC interface */
+ struct interface cmrc;
+
+ /** Infiniband device */
+ struct ib_device *ibdev;
+
+ /** ACPI descriptor */
+ struct acpi_descriptor desc;
+ /** Boot firmware table parameters */
+ struct ipxe_ib_sbft sbft;
+};
+
#endif /* _IPXE_IB_SRP_H */