Re: NatSemi Geode improvement

Alan Cox (alan@lxorguk.ukuu.org.uk)
21 Oct 2002 15:06:18 +0100


> + printk(KERN_INFO "Enable Memory access reorder on Cyrix/NSC processor.\n");
> + local_irq_save(flags);
> + ccr3 = getCx86(CX86_CCR3);
> + setCx86(CX86_CCR3, (ccr3 & 0x0f) | 0x10); /* enable MAPEN */
> + /* Load/Store Serialize to mem access disable (=reorder it) */
> + setCx86(CX86_PCR0, getCx86(CX86_PCR0) & ~0x80);
> +#ifdef CONFIG_NOHIGHMEM
> + /* set load/store serialize from 1GB to 4GB */
> + ccr3 |= 0xe0;
> +#endif
> + setCx86(CX86_CCR3, ccr3);

I dont think this is safe. You now need store fences on bus mastering
DMA. You should be able to reuse the IDT winchip code for that - I set
the winchip up for weak store ordering too, and its a big win (I also
saw about 30% on block copies)

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/