* [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).