Came across a server with dual Broadcom/QLogic 815 HBAs that was failing to boot with the following error and dropping into debug mode:

LOG Firmware heartbeat failure at 0
LOG bfa panic bio.c:1233: 0

hba-boot-error

Entering the HBA BIOS with CTRL+B or ALT+B was also failing with the same error; I was able to get the server to boot by holding down the 'x' key when the HBA BIOS appeared.

Once actually SSH'ed into the server I discovered that the HBAs had different versions of the HBA Boot Code/Option ROM (3.0.1.0 vs. 3.0.3.1) which caused the error message on boot:

[root@db1 ~]# bcu adapter --query 1
Adapter Information:
	model info:        Brocade-815
	OEM info:          N/A
	num ports:         1
	hw path:           0000:06
	Serial Num:        xxxxxxxxxx
	name:
PCI Information:
	vendor id:         0x1657
	device id:         0x0017
	ssvid:             0x1657
	PCIe Gen:          Gen2
	PCIe lanes:        8(Initial number of lanes = 8)
	PCI function0:
	        ssid:      0x0014
	        port:      0
	        type:      FC
Port Information:
	Port 0:
	        name:
	        pwwn:      xxxxxxxxxx
	        nwwn:      xxxxxxxxxx
	        hwpath:    0000:06:00.0
Flash Information:
	status:            good
	option ROM version:
	        current:   3.0.1.0
	        flashed:   3.0.1.0
	fw version:        3.2.1.0
[root@db1 ~]# bcu adapter --query 2
Adapter Information:
	model info:        Brocade-815
	OEM info:          N/A
	num ports:         1
	hw path:           0000:07
	Serial Num:        xxxxxxxxxx
	name:
PCI Information:
	vendor id:         0x1657
	device id:         0x0017
	ssvid:             0x1657
	PCIe Gen:          Gen2
	PCIe lanes:        8(Initial number of lanes = 8)
	PCI function0:
	        ssid:      0x0014
	        port:      0
	        type:      FC
Port Information:
	Port 0:
	        name:
	        pwwn:      xxxxxxxxxx
	        nwwn:      xxxxxxxxxx
	        hwpath:    0000:07:00.0
Flash Information:
	status:            good
	option ROM version:
	        current:   3.0.3.1
	        flashed:   3.0.3.1
	fw version:        3.2.1.0

Once the HBA boot code was updated to the current versions on both cards the server is now booting properly again.