linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 5/8] cciss: disable DMA prefetch for P600
@ 2006-11-01 22:06 Mike Miller (OS Dev)
  2006-11-02 14:12 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Mike Miller (OS Dev) @ 2006-11-01 22:06 UTC (permalink / raw)
  To: akpm, jens.axboe; +Cc: linux-kernel, linux-scsi


PATCH 5/8 

This disables DMA prefetch for the P600 on IPF. A chip bug may result in
a DMA prefetch going falling off into holes in memory. On Proliant x86[_64]
systems the top page of memory is mapped out and the io hole below 4GB is
similiarly protected because the memory at the lower boundary of the hole 
is used by ACPI and other things.
Please consider this for inclusion.

Thanks,
mikem

Signed-off-by: Mike Miller <mike.miller@hp.com>

 cciss.c     |   14 ++++++++++++++
 cciss_cmd.h |    1 +
 2 files changed, 15 insertions(+)
--------------------------------------------------------------------------------
diff -urNp linux-2.6-p00004/drivers/block/cciss.c linux-2.6/drivers/block/cciss.c
--- linux-2.6-p00004/drivers/block/cciss.c	2006-10-31 15:20:25.000000000 -0600
+++ linux-2.6/drivers/block/cciss.c	2006-10-31 15:42:59.000000000 -0600
@@ -2997,6 +2997,20 @@ static int cciss_pci_init(ctlr_info_t *c
 	}
 #endif
 
+#ifdef CONFIG_IA64
+	{
+		/* DMA prefetch must be disabled on P600 on platforms that may
+		 * present noncontiguous memory.
+		 */
+		__u32 dma_prefetch
+		if(board_id == 0x3225103C) {
+			dma_prefetch = readl(c->vaddr + I2O_DMA1_CFG);
+			dma_prefetch |= 0x8000;
+			writel(dma_prefetch, c->vaddr + I2O_DMA1_CFG);
+		}
+	}
+#endif /* CONFIG_IA64 */
+
 #ifdef CCISS_DEBUG
 	printk("Trying to put board into Simple mode\n");
 #endif				/* CCISS_DEBUG */
diff -urNp linux-2.6-p00004/drivers/block/cciss_cmd.h linux-2.6/drivers/block/cciss_cmd.h
--- linux-2.6-p00004/drivers/block/cciss_cmd.h	2006-10-31 14:31:05.000000000 -0600
+++ linux-2.6/drivers/block/cciss_cmd.h	2006-10-31 15:43:18.000000000 -0600
@@ -55,6 +55,7 @@
 #define I2O_INT_MASK            0x34
 #define I2O_IBPOST_Q            0x40
 #define I2O_OBPOST_Q            0x44
+#define I2O_DMA1_CFG		0x214
 
 //Configuration Table
 #define CFGTBL_ChangeReq        0x00000001l

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH 5/8] cciss: disable DMA prefetch for P600
  2006-11-01 22:06 [PATCH 5/8] cciss: disable DMA prefetch for P600 Mike Miller (OS Dev)
@ 2006-11-02 14:12 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2006-11-02 14:12 UTC (permalink / raw)
  To: Mike Miller (OS Dev); +Cc: akpm, linux-kernel, linux-scsi

On Wed, Nov 01 2006, Mike Miller (OS Dev) wrote:
> 
> PATCH 5/8 
> 
> This disables DMA prefetch for the P600 on IPF. A chip bug may result in
> a DMA prefetch going falling off into holes in memory. On Proliant x86[_64]
> systems the top page of memory is mapped out and the io hole below 4GB is
> similiarly protected because the memory at the lower boundary of the hole 
> is used by ACPI and other things.
> Please consider this for inclusion.
> 
> Thanks,
> mikem
> 
> Signed-off-by: Mike Miller <mike.miller@hp.com>
> 
>  cciss.c     |   14 ++++++++++++++
>  cciss_cmd.h |    1 +
>  2 files changed, 15 insertions(+)
> --------------------------------------------------------------------------------
> diff -urNp linux-2.6-p00004/drivers/block/cciss.c linux-2.6/drivers/block/cciss.c
> --- linux-2.6-p00004/drivers/block/cciss.c	2006-10-31 15:20:25.000000000 -0600
> +++ linux-2.6/drivers/block/cciss.c	2006-10-31 15:42:59.000000000 -0600
> @@ -2997,6 +2997,20 @@ static int cciss_pci_init(ctlr_info_t *c
>  	}
>  #endif
>  
> +#ifdef CONFIG_IA64
> +	{
> +		/* DMA prefetch must be disabled on P600 on platforms that may
> +		 * present noncontiguous memory.
> +		 */
> +		__u32 dma_prefetch
> +		if(board_id == 0x3225103C) {
> +			dma_prefetch = readl(c->vaddr + I2O_DMA1_CFG);
> +			dma_prefetch |= 0x8000;
> +			writel(dma_prefetch, c->vaddr + I2O_DMA1_CFG);
> +		}
> +	}
> +#endif /* CONFIG_IA64 */

Hmm, what about other platforms with discontig memory support?

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-11-02 14:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-01 22:06 [PATCH 5/8] cciss: disable DMA prefetch for P600 Mike Miller (OS Dev)
2006-11-02 14:12 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).