Re: please help: detecting the type of pci slot ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The vendor has told me the card will not work in a "64-bit PCI-66" slot, but
only in a "64-bit PCI-X" slot (as reported by 'dmidecode').

I'm assuming the driver provided with the card doesn't check, but rather
blindly assumes PCI-X, and when it tries treating the hardware as such,
ends up locking up the system.

I've added the following snippet of code to the beginning of the probe
function, to determine what capabilities are available:

        int pos;
        u32 status;
        pos = pci_find_capability(dev, PCI_CAP_ID_PCIX);
        if (!pos) {
                printk( "<0>PROBE: No PCIX capability\n" );
                return -EINVAL;
        }
        pci_read_config_dword(dev, pos + PCI_X_STATUS, &status);
        printk( "<0>PROBE: status = %x\n", status );

On the machine where 'dmidecode' reported "64-bit PCI-66", I get back
status=30610000. On the box with "64-bit PCI-X", I get status=10610360

The significant difference here seems to be that, on "64-bit PCI-66" I get
back a 'PCI_X_STATUS_SPL_ERR' "Split Completion Error", whereas on
"64-bit PCI-X" I do not. Is it safe to assume that this is the cause of
my troubles, and, BTW, what does "Split Completion Error" mean ? :)

Is receiving this error code a good reason to assume things are broken
and exit from the probe function with an error ? Doing so would
save me from having my 64-bit pci-66-only machine freeze up.

I realize the help I can get here is limited if the driver is proprietary,
but, as I said elsewhere, I gets my thrills where I finds'em (GPLed drivers
tend to not stay broken long enough for *me* to get my hands on them :)
And, after all, I only want to teach myself something, so having someone
else do it for me is less fun... If I *just* wanted the thing to work, I'd
slap it into a box with PCI-X and move on to greener pastures :) :)

Thanks a ton for all your help,
Gabriel

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux