summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/interface/pcbios/ib_srpboot.c
diff options
context:
space:
mode:
authorMichael Brown2009-08-10 22:22:31 +0200
committerMichael Brown2009-08-10 23:32:47 +0200
commite5f14e5a3258473d6b1973b75cd97b4e75af8380 (patch)
tree219561c4a457d4209457e59083fd13acca42c18f /src/arch/i386/interface/pcbios/ib_srpboot.c
parent[infiniband] Disambiguate CM connection rejection reasons (diff)
downloadipxe-e5f14e5a3258473d6b1973b75cd97b4e75af8380.tar.gz
ipxe-e5f14e5a3258473d6b1973b75cd97b4e75af8380.tar.xz
ipxe-e5f14e5a3258473d6b1973b75cd97b4e75af8380.zip
[infiniband] Add support for the SRP Boot Firmware Table
The SRP Boot Firmware Table serves a similar role to the iSCSI and AoE Boot Firmware Tables; it provides information required by the loaded OS in order to establish a connection back to the SRP boot device.
Diffstat (limited to 'src/arch/i386/interface/pcbios/ib_srpboot.c')
-rw-r--r--src/arch/i386/interface/pcbios/ib_srpboot.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/arch/i386/interface/pcbios/ib_srpboot.c b/src/arch/i386/interface/pcbios/ib_srpboot.c
index ab90c44f..5b9c2c9a 100644
--- a/src/arch/i386/interface/pcbios/ib_srpboot.c
+++ b/src/arch/i386/interface/pcbios/ib_srpboot.c
@@ -6,6 +6,7 @@
#include <gpxe/sanboot.h>
#include <int13.h>
#include <gpxe/srp.h>
+#include <gpxe/sbft.h>
FILE_LICENCE ( GPL2_OR_LATER );
@@ -38,6 +39,11 @@ static int ib_srpboot ( const char *root_path ) {
drive->blockdev = &scsi->blockdev;
+ /* FIXME: ugly, ugly hack */
+ struct srp_device *srp =
+ container_of ( scsi->backend, struct srp_device, refcnt );
+ sbft_fill_data ( srp );
+
register_int13_drive ( drive );
printf ( "Registered as BIOS drive %#02x\n", drive->drive );
printf ( "Booting from BIOS drive %#02x\n", drive->drive );