Qlogic FC scsi_target ISP2310
Sean Bruno
sbruno at miralink.com
Sat Aug 30 06:02:16 UTC 2008
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"
?
--
Sean Bruno
MiraLink Corporation
6015 NE 80th Ave, Ste 100
Portland, OR 97218
Cell 503-358-6832
Phone 503-621-5143
Fax 503-621-5199
MSN: sbruno at miralink.com
Google: seanwbruno at gmail.com
More information about the freebsd-scsi
mailing list