Re: Intel RAID Controller SRCU42X in SGI Altix 350

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

 



On Thursday, June 29, 2006 8:18 am, Robert Nagy wrote:
> Hi,
>
> Distribution: Debian testing/unstable
> Hardware Environment: SGI Altix 350, 2xItanium 2, EFI (read dmesg)
> http://bsd.hu/~robert/altix.dmesg
> http://bsd.hu/~robert/altix.kconf
>
> Problem Description: I've installed an Intel(r) RAID Controller
> SRCU42X (PCI-X) controller to this machine.
> http://www.intel.com/design/servers/raid/srcu42x/index.htm
> I've never used such a controller so if someone has any idea about
> this please tell me. The dmesg will show everyhing, but:
>
> megaraid cmm: 2.20.2.6 (Release Date: Mon Mar 7 00:01:03 EST 2005)
> megaraid: 2.20.4.8 (Release Date: Mon Apr 11 12:27:22 EST 2006)
> megaraid: probe new device 0x1000:0x0407:0x8086:0x0532: bus 2:slot
> 0:func 0 megaraid: out of memory, megaraid_alloc_cmd_packets 965
> megaraid: maibox adapter did not initialize

IIRC some Altix boxes don't support 32 bit DMA for PCI-X devices.  Based 
on the initialization code I looked at (just a quick scan), it looks 
like the command packet initialization is done before the switch to a 64 
bit DMA mask, which might cause the failure you see here.  You can try 
this patch out (totally untested).  It's not fully correct, it should 
probably try 64 bit first then fall back to 32 bit if that fails then 
give up, and the other 64 bit DMA mask call should probably be removed.

Anyway, good luck.  If this one doesn't work you'll have to talk with one 
of the SGI guys and get some more debug info about the allocation 
failure for the command packets.

Jesse
diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c
index b7caf60..032a3d7 100644
--- a/drivers/scsi/megaraid/megaraid_mbox.c
+++ b/drivers/scsi/megaraid/megaraid_mbox.c
@@ -457,7 +457,7 @@ megaraid_probe_one(struct pci_dev *pdev,
 
 	// Setup the default DMA mask. This would be changed later on
 	// depending on hardware capabilities
-	if (pci_set_dma_mask(adapter->pdev, DMA_32BIT_MASK) != 0) {
+	if (pci_set_dma_mask(adapter->pdev, DMA_64BIT_MASK) != 0) {
 
 		con_log(CL_ANN, (KERN_WARNING
 			"megaraid: pci_set_dma_mask failed:%d\n", __LINE__));

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux