49#define IBM_BOFM_DRIVER_CONFIGURATION_PROTOCOL_GUID \
50 { 0x03207ce2, 0xd9c7, 0x11dc, \
51 { 0xa9, 0x4d, 0x00, 0x19, 0x7d, 0x89, 0x02, 0x38 } }
53#define IBM_BOFM_DRIVER_CONFIGURATION2_PROTOCOL_GUID \
54 { 0xe82a9763, 0x0584, 0x4e41, \
55 { 0xbb, 0x39, 0xe0, 0xcd, 0xb8, 0xc1, 0xf0, 0xfc } }
100#define IBM_BOFM_TABLE BOFM_DataStructure_t
189 &bofm1.interface ) ) != 0 ) {
191 DBGC (
device,
"EFIBOFM %s cannot find BOFM protocol\n",
197 if ( ( efirc = bofm1.bofm1->RegisterSupport ( bofm1.bofm1,
device,
202 DBGC (
device,
"EFIBOFM %s could not register support: %s\n",
207 DBGC (
device,
"EFIBOFM %s has driver \"%s\"\n",
238 DBGC (
device,
"EFIBOFM %s cannot get PCI information: %s\n",
245 &efipci.
io ) ) != 0 ) {
246 DBGC (
device,
"EFIBOFM %s cannot open PCI device: %s\n",
253 &bofm1.interface ) ) != 0 ) {
255 DBGC (
device,
"EFIBOFM %s cannot find BOFM protocol\n",
257 goto err_locate_bofm;
259 bofmtab = &bofm1.bofm1->BofmTable;
260 DBGC (
device,
"EFIBOFM %s found version 1 BOFM table at %p+%04x\n",
265 &bofm2.interface ) ) == 0 ) {
266 bofmtab2 = &bofm2.bofm2->BofmTable;
267 DBGC (
device,
"EFIBOFM %s found version 2 BOFM table at "
269 bofmtab2->Parameters.Length );
270 assert ( bofm2.bofm2->RegisterSupport ==
271 bofm1.bofm1->RegisterSupport );
273 DBGC (
device,
"EFIBOFM %s cannot find BOFM2 protocol\n",
280 DBGC2 (
device,
"EFIBOFM %s version 1 before processing:\n",
284 DBGC2 (
device,
"EFIBOFM %s version 2 before processing:\n",
288 bofmrc =
bofm ( ( bofmtab2 ? bofmtab2 : bofmtab ), &efipci.
pci );
291 DBGC2 (
device,
"EFIBOFM %s version 1 after processing:\n",
295 DBGC2 (
device,
"EFIBOFM %s version 2 after processing:\n",
302 if ( ( efirc = bofm2.bofm2->SetStatus ( bofm2.bofm2,
device,
303 FALSE, bofmrc ) ) != 0){
305 DBGC (
device,
"EFIBOFM %s could not set BOFM2 "
311 if ( ( efirc = bofm1.bofm1->SetStatus ( bofm1.bofm1,
device,
312 FALSE, bofmrc ) ) != 0){
314 DBGC (
device,
"EFIBOFM %s could not set BOFM "
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
unsigned long long UINT64
8-byte unsigned value.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define NULL
NULL pointer (VOID *)
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
struct arbelprm_rc_send_wqe rc
#define assert(condition)
Assert a condition at run-time.
int bofm_find_driver(struct pci_device *pci)
Find BOFM driver for PCI device.
int bofm(void *bofmtab, struct pci_device *pci)
Process BOFM table.
IBM BladeCenter Open Fabric Manager (BOFM)
EFI_HANDLE BOOLEAN UINT8 BOFMReturnCode
EFI_HANDLE UINT8 UINT8 UINT8 BOFM_Parameter_Version
#define IBM_BOFM_DRIVER_CONFIGURATION_PROTOCOL_GUID
static int efi_bofm_start(struct efi_device *efidev)
Attach driver to device.
EFI_HANDLE ControllerHandle
struct _IBM_BOFM_DRIVER_CONFIGURATION_PROTOCOL IBM_BOFM_DRIVER_CONFIGURATION_PROTOCOL
EFI_HANDLE UINT8 UINT8 iSCSI_Parameter_Version
struct _IBM_BOFM_DRIVER_CONFIGURATION_PROTOCOL2 IBM_BOFM_DRIVER_CONFIGURATION_PROTOCOL2
EFI_HANDLE UINT8 SupporttedOptions
EFI_HANDLE BOOLEAN ResetRequired
static EFI_GUID bofm1_protocol_guid
BOFM1 protocol GUID.
static void efi_bofm_stop(struct efi_device *efidev __unused)
Detach driver from device.
static int efi_bofm_supported(EFI_HANDLE device)
Check if device is supported.
#define IBM_BOFM_DRIVER_CONFIGURATION2_PROTOCOL_GUID
static EFI_GUID bofm2_protocol_guid
BOFM2 protocol GUID.
const char * efi_handle_name(EFI_HANDLE handle)
Get name of an EFI handle.
#define __efi_driver(order)
Declare an EFI driver.
#define EFI_DRIVER_EARLY
Early drivers.
EFI_GUID efi_pci_io_protocol_guid
PCI I/O protocol GUID.
void efi_close_unsafe(EFI_HANDLE handle, EFI_GUID *protocol)
Close protocol opened for unsafe persistent use.
int efipci_info(EFI_HANDLE device, struct efi_pci_device *efipci)
Get EFI PCI device information.
#define __unused
Declare a variable or data structure as unused.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define EAGAIN
Resource temporarily unavailable.
#define EEFI(efirc)
Convert an EFI status code to an iPXE status code.
#define efi_open_unsafe(handle, protocol, interface)
Open protocol for unsafe persistent use.
EFI_SYSTEM_TABLE * efi_systab
char * strerror(int errno)
Retrieve string representation of error number.
BOFM_Parameters_t Parameters
BOFM_EPID_Results_t EPIDResults[2]
EFI_LOCATE_PROTOCOL LocateProtocol
IBM_BOFM_DRIVER_CONFIGURATION_SUPPORT RegisterSupport
IBM_BOFM_DRIVER_CONFIGURATION_STATUS2 SetStatus
IBM_BOFM_DRIVER_CONFIGURATION_STATUS SetStatus
IBM_BOFM_DRIVER_CONFIGURATION_SUPPORT RegisterSupport
EFI_HANDLE device
EFI device handle.
EFI_PCI_IO_PROTOCOL * io
PCI I/O protocol.
struct pci_device pci
PCI device.
struct pci_device_id * id
Driver device ID.