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/net | |
parent | bf051a76eef07bb4bd04ad4ff2b8b5e23ef26740 (diff) | |
download | ipxe-a2e44077cdb0713d90766e61165ca71fce902003.zip ipxe-a2e44077cdb0713d90766e61165ca71fce902003.tar.gz ipxe-a2e44077cdb0713d90766e61165ca71fce902003.tar.bz2 |
[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/net')
-rw-r--r-- | src/net/infiniband/ib_srp.c | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/src/net/infiniband/ib_srp.c b/src/net/infiniband/ib_srp.c index 4913f44..e6b4329 100644 --- a/src/net/infiniband/ib_srp.c +++ b/src/net/infiniband/ib_srp.c @@ -37,6 +37,7 @@ FILE_LICENCE ( BSD2 ); #include <ipxe/open.h> #include <ipxe/base16.h> #include <ipxe/acpi.h> +#include <ipxe/efi/efi_path.h> #include <ipxe/srp.h> #include <ipxe/infiniband.h> #include <ipxe/ib_cmrc.h> @@ -70,39 +71,6 @@ struct acpi_model ib_sbft_model __acpi_model; */ /** - * An IB 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; -}; - -/** * Free IB SRP device * * @v refcnt Reference count @@ -153,6 +121,7 @@ static struct interface_descriptor ib_srp_cmrc_desc = static struct interface_operation ib_srp_srp_op[] = { INTF_OP ( acpi_describe, struct ib_srp_device *, ib_srp_describe ), INTF_OP ( intf_close, struct ib_srp_device *, ib_srp_close ), + EFI_INTF_OP ( efi_describe, struct ib_srp_device *, efi_ib_srp_path ), }; /** IB SRP SRP interface descriptor */ |