diff options
author | Michael Brown <mcb30@ipxe.org> | 2020-10-23 15:26:30 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2020-10-23 15:34:35 +0100 |
commit | a2e44077cdb0713d90766e61165ca71fce902003 (patch) | |
tree | 36581ed047d0c43fdf6f3fe2e48297fa6d79ff1c /src/include/ipxe/ib_srp.h | |
parent | bf051a76eef07bb4bd04ad4ff2b8b5e23ef26740 (diff) | |
download | ipxe-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.h | 35 |
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 */ |