On Sat, 16 Nov 2024, Magnus Lindholm wrote: > Thanks for taking the time to test this on sgi/octane. I guess the > results of your test means that only relying on the chip revision is > not going to do it. I had hoped for full `lspci -xxx' dumps actually, which could reveal differences perhaps in the device-specific range of config registers. > I've put my ISP1040 rev B into a HPZ440 (x86_64) with 128GB RAM. When > booting the system I get > "PCI Configuration error" when BIOS configures the card. I also see > this in the kernel message log: > > "DMAR: [DMA Read NO_PASID] Request device [09:00.0] fault addr > 0xfebba000 [fault reason 0x06] PTE Read access is not set" It looks like an IOMMU fault to me and might mean that the device has requested access to a memory location it may not have permission for. It could or could not be a result of address truncation to 32 bits. > I've used the standard qla1280 driver and hence enabled full 64-bit > DMA_MASK. Even if I got some generic errors when booting, > the card works and I can mount a drive, format a partition and > copy/paste files without any filesystem corruption. > However, when I enable the debug output I notice that the driver never > uses bus-addresses for DMA transfers that go any > higher than 32-bit. So using DMA_BIT_MASK of 64 or 32 bits does not > have any effect on the actual addresses generated. > The address always stays within a 32-bit mask in both cases. Given that your HPZ440 system appears to have an IOMMU chances are it's used such as to squeeze all PCI-side DMA mappings into the low 32-bit range for the very purpose of avoiding issues with odd devices. Maciej