From: Jes Sorensen <jes@wildopensource.com>
To: Andrew Vasquez <andrew.vasquez@qlogic.com>
Cc: Linux-SCSI <linux-scsi@vger.kernel.org>, jeremy@sgi.com, jbarnes@sgi.com
Subject: Re: [ANNOUNCE] QLogic qla2xxx driver update available (v8.00.00b6).
Date: 20 Nov 2003 04:19:33 -0500 [thread overview]
Message-ID: <yq0islf5rdm.fsf@wildopensource.com> (raw)
In-Reply-To: <B179AE41C1147041AA1121F44614F0B060ED75@AVEXCH02.qlogic.org>
>>>>> "Andrew" == Andrew Vasquez <andrew.vasquez@qlogic.com> writes:
>> - Call pci_set_consistent_dma_mask() to allow for 64 bit consistent
>> allocations, required on some platforms such as the SN2.
Andrew> Yes, I believe Jeremy forwarded a patchset for the 6.x driver.
Andrew,
Yep, my patch is basically a consolidation of Jeremy's changes and a
few extras of my own.
>> - Wait 20 usecs (not sure how long is really necessary, but this
>> seems safe) after setting CSR_ISP_SOFT_RESET in the ctrl_status
>> register as the card doesn't respond to PCI reads while in reset
>> state. This causes a machine check on some architectures. - Flush
>> PCI writes before calling udelay() to ensure the write is not
>> sitting idle in-flight for a while before hitting the hardware.
Andrew> Yes, we also need to look at some PCI posting issues with our
Andrew> move to MMIO.
I went through the init code and I didn't notice any other posting
issues, but that doesn't mean there aren't any ;-) Some of the higher
end ia64 McKinley boxees such as hte HP and SGI ones are good for
triggering these.
>> - Use auto-negotiate link speed when using default parameters
>> rather than NVRAM settings. Disable NVRAM reading on SN2 since it's
>> not possible to execute the HBA's BIOS on an SN2.
Andrew> Internally, we've been talking about taking a more defensive
Andrew> route within the driver if the NVRAM data is not valid --
Andrew> failing the initialization process completely, and therefore,
Andrew> removing this code completely from the driver.
I would really like to discourage this approach. Instead I think it
would be better to sit down with a manual and plug in safe defaults
for all the entries. I have run into the problem several times in
particular with the qla1280 based cards that the NVRAM settings were
bogus and I couldn't get to them. I don't know if this can happen with
the FC cards, but I have seen cases where machines have OEM'd SCSI
parts without and NVRAM and QL HBAs in their PCI slots, in this case
you end up with a situation where some of the devices have to be
mangled via a BIOS mangling tool and otheres require command line
parameters.
The Linux model is quite different here, we normally rely on sane
defaults in the driver and then allow users to tweek these settings in
/etc/modules.conf or through /proc at runtime.
Then there's the problems non-x86 platforms not having tools
available, and even if they are out there, they might not match the
version of glibc you are running or your distribution of choice. I
checked out your web page and I only see references to Red Hat Linux
and SuSE Linux both in 32 and 64 bit (presuming that by 32 bit you
mean x86 and by 64 bit you mean ia64 - just that naming doesn't make
any sense in the Linux space since we support a lot of different 32
and 64 bit architectures).
If the tools were open source that would make it slightly easier, but
even then you have the problem that you need to be able to boot the
system to get to the settings. If I have say an PPC64 box with my root
file system on a QL2344, I lose.
Andrew> Manufacturing writes a pre-canned NVRAM image along with a
Andrew> rolling serial number (unique to each HBA) to each card that
Andrew> leaves QLogic. One obvious example of a potential problem in
Andrew> the case of using the (driver) doctored NVRAM data is how to
Andrew> assign a unique serial number to the ISP that is being
Andrew> initialized. BTW: The serial number is actually encoded in
Andrew> bytes 5, 6, and 7 of the WWPN (portname); coupled with the
Andrew> hardcoded port number (33) and the QLogic copany code of (224
Andrew> and 139), code from qla2x00_nvram_config():
Ok this one is more tricky. There's a couple of options though, we
could generate a unique serial number based on the random driver
output, or maybe it's worth coming up with an infrastructure for this,
other FC card drivers will run into the same problem.
Andrew> I don't believe this is going to be a safe route. QLogic does
Andrew> offer other methods to modify NVRAM parameters besides the
Andrew> BIOS utility, a GUI (SANsurfer) as well as a command-line tool
Andrew> (SANblade CLI) - the 64bit versions are available here:
I didn't actually know these existed, I never noticed a reference to
them in the driver. However as Matthew pointed out, they don't really
solve the problem for non-x86 and non-ia64 users.
>> /* Bad NVRAM data, set defaults parameters. */ if (chksum ||
Andrew> How about we keep the current byte array definition and add
Andrew> the following code:
Andrew> nv->special_options[1] = BIT_7;
Andrew> Same effect, less BE/LE structure overhead.
I prefer the other way, it's a lot more readable for outsiders who do
not have a copy of the firmware programming guide (such as myself).
Thanks,
Jes
next prev parent reply other threads:[~2003-11-20 9:19 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-19 23:03 [ANNOUNCE] QLogic qla2xxx driver update available (v8.00.00b6) Andrew Vasquez
2003-11-19 23:18 ` Matthew Wilcox
2003-11-20 9:19 ` Jes Sorensen [this message]
2003-11-21 8:43 ` Jeremy Higdon
-- strict thread matches above, loose matches on Subject: below --
2003-12-02 18:22 Andrew Vasquez
2003-12-02 18:10 Andrew Vasquez
2003-12-01 23:21 Andrew Vasquez
2003-12-02 2:02 ` Jeremy Higdon
2003-12-02 10:01 ` Andrew Vasquez
2003-12-02 9:36 ` Jeremy Higdon
2003-12-02 3:22 ` Jeremy Higdon
2003-12-02 10:15 ` Andrew Vasquez
2003-12-02 9:50 ` Jeremy Higdon
2003-11-25 19:29 Andrew Vasquez
2003-11-25 23:31 ` Jeremy Higdon
2003-11-27 1:20 ` Jeremy Higdon
2003-11-24 17:37 Andrew Vasquez
2003-11-25 1:22 ` Jeremy Higdon
2003-11-25 8:18 ` Christoph Hellwig
2003-11-25 8:21 ` Jes Sorensen
2003-11-19 23:38 Andrew Vasquez
2003-11-06 19:33 Andrew Vasquez
2003-11-07 9:39 ` Christoph Hellwig
2003-11-06 17:45 Andrew Vasquez
2003-11-06 17:59 ` Arjan van de Ven
2003-11-07 9:37 ` Christoph Hellwig
2003-11-06 17:11 Andrew Vasquez
2003-11-06 17:14 ` Jens Axboe
2003-11-06 17:43 ` Arjan van de Ven
2003-11-06 17:50 ` Jens Axboe
2003-11-06 17:55 ` Arjan van de Ven
2003-11-06 17:58 ` Jens Axboe
2003-11-06 17:02 Andrew Vasquez
2003-11-06 17:53 ` Matthew Wilcox
2003-11-07 9:58 ` Christoph Hellwig
2003-11-07 9:33 ` Christoph Hellwig
2003-11-05 18:39 Andrew Vasquez
2003-11-06 9:17 ` Jens Axboe
2003-11-05 1:15 Andrew Vasquez
2003-11-05 9:17 ` Mike Anderson
2003-11-06 9:36 ` Christoph Hellwig
2003-11-06 10:51 ` Christoph Hellwig
2003-11-10 14:00 ` Jes Sorensen
[not found] ` <20031114115847.GA32664@lst.de>
2003-11-17 12:18 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=yq0islf5rdm.fsf@wildopensource.com \
--to=jes@wildopensource.com \
--cc=andrew.vasquez@qlogic.com \
--cc=jbarnes@sgi.com \
--cc=jeremy@sgi.com \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).