Re: isp support for QLogic 2722/firmware?

From: Joerg Pulz <Joerg.Pulz_at_frm2.tum.de>
Date: Thu, 27 Jul 2023 09:39:38 UTC
On Wed, 26 Jul 2023, Brian McGovern wrote:

> >> I'm curious if anyone has this working, and if so, any chance I can
>>> obtain the firmware or process you are using? I'm hoping its something
>>> like flashing an image to the card with some other OS first. TIA
>
>> Support for this (and some other newer HBAs) was added recently to
>> 14-CURRENT, see latest commits in
>> https://cgit.freebsd.org/src/log/sys/dev/isp
> <https://cgit.freebsd.org/src/log/sys/dev/isp>.
>
> Its getting late locally, so take this with a grain of salt... I'm pretty
> sure I grabbed the main branch from git, and effectively did a MFC (working
> with 13.2-RELEASE). Looking at the diffs you pointed me to vs. whats on the
> disk, it looks like I have the latest bits, but I'll check it again
> tomorrow to be sure. Its possible I'm missing something.
>
> The problem is consistent. When the adapters try to come up, and I'm using
> them as kernel modules right now just so I can cycle through testing
> faster, I continue to get
>
> "isp_2700 could not load firmware image, error 2"
>
> if I don't hack up the ispfw driver/module to have something that meets the
> name requirements for "isp_2700" firmware.
>
> and if I try to create a firmware module it can install with the
> bk014519.bin firmware file, it'll happily find something for firmware, but
> then throws a:
> isp0: Mailbox Command (0xb) Timeout (100000us) (isp_reset:373)
> isp0: Mailbox Command 'LOAD RISC RAM' failed (TIMEOUT)
> isp0: F/W download failed
> isp0: isp_reinit: cannot reset card
> device_attach: isp0 attach returned 6
>
> So, what I think is missing is either a.) finding a good firmware image
> that I can load via the driver, or b.) figuring out how to flash firmware
> to the adapter via some other means, and figure out how to skip the load
> step when the driver starts. Hence why I'm hoping to find someone who has
> the card working, so I can clone their process.
>
> But, if anyone has other ideas, I'm all ears.
>
>     -Brian
>
> On Wed, Jul 26, 2023 at 8:55?PM Yuri <yuri@aetern.org> wrote:
>
>> Brian McGovern wrote:
>>> Quick question about the isp and card support. I have an HPE branded
>>> Qlogic ISP 2722 that I'm trying to bring online. Following the various
>>> tutorials I loaded ispfw, then the isp driver. I got an error message
>>> "isp_2700 could not load firmware image, error 2". The boards don't come
>>> online.
>>>
>>> Looking at the man page, it appears supported on the Qlogic
>>> 2740/2742/2764 (aka 2722/2714) line, so I tried to chase down some
>>> firmware and duplicate the isp_2400 and isp_2500 functionality with the
>>> .bin file. Now, it tries to load but I get a firmware loading failure.
>>> I'm assuming that either current versions and .bin files are
>>> incompatible with the other loading processes, or I just screwed
>>> something up in all the translation (I found a bk014519.bin file).
>>>
>>> I'm curious if anyone has this working, and if so, any chance I can
>>> obtain the firmware or process you are using? I'm hoping its something
>>> like flashing an image to the card with some other OS first. TIA
>>
>> Support for this (and some other newer HBAs) was added recently to
>> 14-CURRENT, see latest commits in
>> https://cgit.freebsd.org/src/log/sys/dev/isp.

Those HBAs are supported since 2018-02-28.
So support for them is in 13.2 - I have systems running with those:

# uname -r
13.2-RELEASE

# dmesg -a |grep isp
isp0: <Qlogic ISP 2722 PCI FC Adapter> mem 0x93302000-0x93302fff,0x93300000-0x93301fff,0x93200000-0x932fffff at device 0.0 on pci1

# sysctl dev.isp.0
dev.isp.0.%pnpinfo: vendor=0x1077 device=0x2261 subvendor=0x1077 subdevice=0x029b class=0x0c0400
dev.isp.0.%driver: isp
dev.isp.0.%desc: Qlogic ISP 2722 PCI FC Adapter

Recent changes in CURRENT are for the next gen HABs (28XX) and FLT/NVRAM 
handling, so no need to backport anything.

There is no firmware for those HBAs included in ispfw(4) and there is no 
need for it.
You should not try to simply add firmware to ispfw(4) without knowing how 
the driver has to load it into the HBA.

The isp(4) driver checks for firmware availability by itself. For your 
HBA the firmware is loaded by isp(4) from the HBAs flash.
If this is not working than the firmware on your HBAs flash may be broken 
and should be reflashed.

Without further information it is hard to guess what's happening.
You should:
- revert everything to a clean 13.2-RELEASE
- provide verbose pciconf(8) output for your HBA
- set isp(4) debug level using kenv(8)
   # kenv hint.isp.0.debug=0x3f
- load isp(4)
   # kldload isp
- provide dmesg(8) output for isp(4) load/attach

Joerg

-- 
The beginning is the most important part of the work.
 				-Plato