Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Aug 2008 12:15:26 -0400
From:      "Alexander Sack" <pisymbol@gmail.com>
To:        "Fuujin Networks LLC" <erich@fuujinnetworks.com>
Cc:        freebsd-scsi@freebsd.org
Subject:   Re: Qlogic FC scsi_target ISP2310
Message-ID:  <3c0b01820808290915t4e964182y784c215e28977252@mail.gmail.com>
In-Reply-To: <3c0b01820808290914s638c970ejeae1d4f8c8c8a9d9@mail.gmail.com>
References:  <48B4CF57.30603@fuujinnetworks.com> <3c0b01820808271520w78d0f338iaf6996774512b5bb@mail.gmail.com> <48B733CF.5000105@fuujinnetworks.com> <3c0b01820808290914s638c970ejeae1d4f8c8c8a9d9@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 29, 2008 at 12:14 PM, Alexander Sack <pisymbol@gmail.com> wrote:
> On Thu, Aug 28, 2008 at 7:25 PM, Fuujin Networks LLC
> <erich@fuujinnetworks.com> wrote:
>>
>> [snip]
>> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>>  cpu0 (BSP): APIC ID:  0
>>  cpu1 (AP): APIC ID:  1
>> ioapic0: Changing APIC ID to 2
>> ioapic0 <Version 1.1> irqs 0-23 on motherboard
>> registered firmware set <isp_1040>
>> registered firmware set <isp_1040_it>
>> registered firmware set <isp_1080>
>> registered firmware set <isp_1080_it>
>> registered firmware set <isp_12160>
>> registered firmware set <isp_12160_it>
>> registered firmware set <isp_2100>
>> registered firmware set <isp_2200>
>> registered firmware set <isp_2300>
>> registered firmware set <isp_2322>
>> registered firmware set <isp_2400>
>> isp0: <Qlogic ISP 2300 PCI FC-AL Adapter> port 0xc000-0xc0ff mem
>> 0xe7103000-0xe7103fff irq 16 at device 8.0 on pci0
>> firmware_get: failed to load firmware image isp_2300_it
>> isp0: [ITHREAD]
>> isp0: Board Type 2300, Chip Revision 0x1, loaded F/W Revision 3.3.19
>> isp0: target notify code 0x1007
>> isp0: target notify code 0x1007
>> isp0: target notify code 0x1006
>> isp0: target notify code 0x1007
>> isp0: target notify code 0x1008
>> (targbh0:isp0:0:-1:-1): Target Mode Enabled
>> isp0: target notify code 0x1007
>> isp0: target notify code 0x1007
>> isp0: target notify code 0x1006
>> isp0: target notify code 0x1007
>> isp0: target notify code 0x1006
>> isp0: target notify code 0x1007
>> [snip]
>>
>> I'm a bit puzzled by the firmware_get failed line above. I suspect this may
>> be the problem, but I have not been able to resolve it. I've tried disabling
>> the bios on the FC cards, as well as messing with almost every other
>> conceivable option, but the same error appears. Thoughts?
>
> Yes, its a bug in the ISP driver.  If you are in target mode, it tries
> to load the isp_XXX_it version of the RISC code.  I *think* the old
> SCSI cards had two separate firmwares for target and initiator modes
> (currently if you look at ispfw, there is the 1040, 1080, and 12160_it
> firmwares).
>
> Try this patch:
>
> --- isp_pci.c   2008-08-29 07:58:08.000000000 -0400
> +++ isp_pci.c.0 2008-08-29 08:03:24.000000000 -0400
> @@ -1039,7 +1039,7 @@
>                }
>
>                isp->isp_osinfo.fw = NULL;
> -               if (isp->isp_role & ISP_ROLE_TARGET && IS_SCSI(isp)) {
> +               if (isp->isp_role & ISP_ROLE_TARGET) {
>                        snprintf(fwname, sizeof (fwname), "isp_%04x_it", did);
>                        isp->isp_osinfo.fw = firmware_get(fwname);
>                }

Whoops!  Its reversed!

--- isp_pci.c.0	2008-08-29 08:03:24.000000000 -0400
+++ isp_pci.c	2008-08-29 07:58:08.000000000 -0400
@@ -1039,7 +1039,7 @@
 		}

 		isp->isp_osinfo.fw = NULL;
-		if (isp->isp_role & ISP_ROLE_TARGET) {
+		if (isp->isp_role & ISP_ROLE_TARGET && IS_SCSI(isp)) {
 			snprintf(fwname, sizeof (fwname), "isp_%04x_it", did);
 			isp->isp_osinfo.fw = firmware_get(fwname);
 		}

Sorry about that!

-aps



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3c0b01820808290915t4e964182y784c215e28977252>