Re: qla1280 driver for qlogic-1040 on alpha

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

 



>  Thomas, Magnus, can you please check what hardware revision is actually
> reported by your devices?  Also a dump of the PCI configuration space
> would be very useful, or at the very least the value of the PCI Revision
> ID register, which is independent from the hardware revision reported via
> the device I/O registers.

Below is some info from my Alpha ES40 with an ISP1040. I've added a
printout of hardware revision number to the driver, as previously
pointed out the revision numbers in qla1280.h is wrong so I've used
info from NetBSD
rev5 is a "B" which matches what is actually printed on the chip as
well. This seems to be consistent with PCI Revision ID register.

output from driver:

qla1280: QLA1040 found on PCI bus 2, dev 4
revision=5 <-- printout of cfg0 register 5 = rev B
QLogic QLA1040 PCI to SCSI Host Adapter
Firmware version:  7.65.06, Driver version 3.27.1

#lspci -s 0001:02:04.0 -vvv
0001:02:04.0 SCSI storage controller: QLogic Corp. ISP1020/1040
Fast-wide SCSI (rev 05)
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 248, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 52
        Region 0: I/O ports at 200008000 [size=256]
        Region 1: Memory at 209050000 (32-bit, non-prefetchable) [size=4K]
        Expansion ROM at 209040000 [disabled] [size=64K]
        Kernel driver in use: qla1280
        Kernel modules: qla1280


>If all else fails, I would still recommend to disable by default 32-bit
>DMA addressing for pre-ISP1040C hardware, as that matches documentation,
>and then have a platform quirk to enable it specifically for ISP1040B for
>the relevant SGI configurations.  But I do hope there is a better approach
>possible.

I have put together a patch which if we have an ISP1040 chip with chip
revision less than "C" it uses dma_get_required_mask() to se
DMA_BIT_MASK otherwise it will set the full 64-bit mask. If
dma_get_required_mask() works properly on IP30/MIPS it should return a
64bit-something mask, right? Maybe this can be the quirk that makes
this work on both Alpha and SGI/Octane? (Assuming we don't find a
better approach)

Magnus




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux