Hi, As you can see below, the driver says "enable 64bit addressing=0" when dumping nvram settings. The qlogic-1040 card is only a 32-bit card plugged into a 64-bit slot. I guess the card is not original to the ES40, I have other cards that I can use, i.e a 53c8xx is also present in the system. Would it make sense to have the driver honor the nvram flag for 64-bit addressing, at least for the 1040 cards? I'm thinking I should give it a go... btw. the card runs fine even when the driver is compiled in 64bit mode, just as long as I stay below 2GB ram or when explicitly setting the DMA_BIT_MASK when building the driver. (I guess most systems around when the qla1040 was hot stuff had less than 2GB ram). This is the output I get from running the driver with debug enabled: [ 19.109365] qla1280: QLA1040 found on PCI bus 2, dev 4 [ 19.110341] scsi(0): 64 Bit PCI Addressing Enabled [ 19.110341] Configure PCI space for adapter... [ 19.111318] scsi(2): Verifying chip [ 19.111318] qla1280_chip_diag: Checking mailboxes of chip [ 19.111318] Loading firmware: qlogic/1040.bin [ 19.749013] qla1280_start_firmware: Verifying checksum of loaded RISC code. [ 19.757802] qla1280_start_firmware: start firmware running. [ 19.760732] scsi(2): Configure NVRAM parameters [ 19.760732] Using defaults for NVRAM: [ 19.760732] qla1280 : initiator scsi id bus[0]=7 [ 19.760732] qla1280 : initiator scsi id bus[1]=7 [ 19.760732] qla1280 : bus reset delay[0]=3 [ 19.760732] qla1280 : bus reset delay[1]=3 [ 19.760732] qla1280 : retry count[0]=0 [ 19.760732] qla1280 : retry delay[0]=1 [ 19.760732] qla1280 : retry count[1]=0 [ 19.760732] qla1280 : retry delay[1]=1 [ 19.760732] qla1280 : async data setup time[0]=6 [ 19.760732] qla1280 : async data setup time[1]=6 [ 19.760732] qla1280 : req/ack active negation[0]=1 [ 19.760732] qla1280 : req/ack active negation[1]=1 [ 19.760732] qla1280 : data line active negation[0]=1 [ 19.760732] qla1280 : data line active negation[1]=1 [ 19.760732] qla1280 : disable loading risc code=0 [ 19.760732] qla1280 : enable 64bit addressing=0 [ 19.760732] qla1280 : selection timeout limit[0]=250 [ 19.760732] qla1280 : selection timeout limit[1]=250 [ 19.760732] qla1280 : max queue depth[0]=32 [ 19.760732] qla1280 : max queue depth[1]=32 [ 19.772450] scsi(2:0): Resetting SCSI BUS [ 22.812488] scsi host2: QLogic QLA1040 PCI to SCSI Host Adapter Firmware version: 7.65.06, Driver version 3.27.2 On Fri, Oct 25, 2024 at 10:00 PM Martin K. Petersen <martin.petersen@xxxxxxxxxx> wrote: > > > Hi Magnus! > > > I've been running linux on alpha (alphaserver es40) for a while, using > > a qlogic-1040 scsi controller. A few weeks ago I added more RAM to the > > es40, but as soon as I got above 2GB RAM I started seeing file system > > corruptions on the drive attached to the qlogic controller. > > The qla1280 driver has been used extensively on 64-bit platforms. > > Is your isp1040 original to the ES40? My Alphas used 53c8xx series > controllers if I remember correctly. And with the ES40 being fairly > recent (21264), I would have thought it would have used a slightly more > modern controller than a 1040. > > > The nvram flag "enable_64bit_addressing" on the qlogic board is not > > checked nor set by the driver. > > That would be a good place to start. Maybe if you could dump the NVRAM > contents and validate if that is set by the 1040 firmware? I'm afraid I > don't have a databook. But the 1040 was current right around the time > the industry transitioned from 32 to 64-bit so it could very well be > broken. > > If you can establish whether that flag is unset on your controller, > we could use that as a heuristic for configuring DMA. > > -- > Martin K. Petersen Oracle Linux Engineering