Qlogic FC scsi_target ISP2310
Fuujin Networks LLC
erich at fuujinnetworks.com
Sat Aug 30 07:46:32 UTC 2008
Sean:
I've tried it with the loader.conf entry and without, but I've not seen
any difference in the way it loads the firmware. It is compiled into the
Kernel though, so the loader.conf entry should be unnecessary.
Thanks for the thought though! I'm willing to look at any possibility to
make this work! :)
Erich M. Jenkins
Fuujin Networks, LLC
PO Box 792
Brainerd, MN 56401
(p) 218-824-5038
(f) 218-824-7516
"You should never, never doubt what no one is sure about."
-- Gene Wilder
Sean Bruno wrote:
> Fuujin Networks LLC wrote:
>> Alex:
>>
>> Thanks very much for the patch. Unfortunately, I ended up with a
>> similar result as seen below. Just for grins, I tried the patch on a
>> 64-bit system (AMD64) to see if there was a difference based on which
>> architecture is used for the target. No difference there either; still
>> dumps core and reboots. The upside I would think is that both branches
>> seem to be in sync. I do have a sparc64 box here if you'd like to see
>> what happens in that world (haven't tested it yet).
>>
>> [snip]
>> (targ0:isp0:0:2:0): targdone 0xffffff0001ddda00
>> (targ0:isp0:0:2:0): targread
>> (targ0:isp0:0:2:0): targread ccb 0xffffff0001ddda00 (0x800b7fe20)
>> (targ0:isp0:0:2:0): targreturnccb 0xffffff0001ddda00
>> cam_debug: targfreeccb descr 0xffffff0001dda1c0 and
>> cam_debug: freeing ccb 0xffffff0001ddda00
>> (targ0:isp0:0:2:0): write - uio_resid 8
>> (targ0:isp0:0:2:0): Sending queued ccb 0x933 (0x800b85040)
>> (targ0:isp0:0:2:0): targstart 0xffffff0001369000
>> (targ0:isp0:0:2:0): sendccb 0xffffff0001369000
>>
>>
>> Fatal trap 12: page fault while in kernel mode
>> cpuid = 0; apic id = 00
>> fault virtual address = 0x8
>> fault code = supervisor read data, page not present
>> instruction pointer = 0x8:0xffffffff8025d2e8
>> stack pointer = 0x10:0xffffffffae3d06f0
>> frame pointer = 0x10:0xffffffff80a42000
>> code segment = base 0x0, limit 0xfffff, type 0x1b
>> = DPL 0, pres 1, long 1, def32 0, gran 1
>> processor eflags = interrupt enabled, resume, IOPL = 0
>> current process = 783 (scsi_target)
>> trap number = 12
>> panic: page fault
>> cpuid = 0
>> Uptime: 7m21s
>> Physical memory: 4021 MB
>> Dumping 364 MB:: write - uio_resid 8
>> (targ0:isp0:0:2:0): getccb 0xffffff0001db7c00
>> (targ0:isp0:0:2:0): Sent ATIO/INOT (0x800b61a10)
>> (targ0:isp0:0:2:0): write - uio_resid 8
>> (targ0:isp0:0:2:0): getccb 0xffffff0001db7b00
>> [snip]
>>
>>
>> Seems to be nearly the same result in loading the firmware:
>>
>> [snip]
>> 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>
>> [snip]
>> isp0: <Qlogic ISP 2300 PCI FC-AL Adapter> port 0x3000-0x30ff mem
>> 0xfe020000-0xfe020fff irq 25 at device 1.0 on pci2
>> 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
>> [snip]
>> 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
>> [snip]
>>
>> It doesn't appear that the firmware "isp_2300_it" either exists or
>> possibly isn't named properly on the target machine (or the initiator
>> for that matter). However, there do not seem to be any problems
>> loading the firmware for the card when it's not in target mode.
>>
>> From everything I've read, it looks like the firmware needs to be
>> loaded via the kernel device option "ispfw". If for nothing other than
>> my understanding, is there some reason we're not loading the firmware
>> resident on the card?
>>
>> Thanks very much for your help. This is a bit of a head scratcher for
>> me...
>>
>> Please let me know if SSH access to either boxes would help you and
>> I'll be happy to arrange that.
>>
>>
>> Erich M. Jenkins
>> Fuujin Networks, LLC
>> PO Box 792
>> Brainerd, MN 56401
>> (p) 218-824-5038
>> (f) 218-824-7516
>>
>> "You should never, never doubt what no one is sure about."
>> -- Gene Wilder
>>
>> Alexander Sack wrote:
>>> On Fri, Aug 29, 2008 at 12:14 PM, Alexander Sack <pisymbol at gmail.com>
>>> wrote:
>>>> On Thu, Aug 28, 2008 at 7:25 PM, Fuujin Networks LLC
>>>> <erich at 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
>> _______________________________________________
>> freebsd-scsi at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-scsi
>> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe at freebsd.org"
> Hrm...just to check, do you have the following in your loader.conf:
> ispfw_load="YES"
>
> ?
>
More information about the freebsd-scsi
mailing list