> 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