aboutsummaryrefslogtreecommitdiff
path: root/src/net
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/net
parentbf051a76eef07bb4bd04ad4ff2b8b5e23ef26740 (diff)
downloadipxe-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.c35
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 */