Re: NMI errors in 2.0.30??

Gabriel Paubert (
Mon, 28 Apr 1997 12:39:04 +0200 (METDST)

On Sun, 27 Apr 1997, Rogier Wolff wrote:

> MarchG is (cut-and-paste from a memory test program that I'm writing):
> MARCH(UPDN,W0, TT,order,stride); \
> MARCH(UP ,R0W1R1W0R0W1,TT,order,stride); \
> MARCH(UP ,R1W0W1, TT,order,stride); \
> MARCH(DOWN,R1W0W1W0, TT,order,stride); \
> MARCH(DOWN,R0W1W0, TT,order,stride); \
> DELAY; \
> MARCH(UPDN,R0W1R1, TT,order,stride); \
> DELAY; \
> MARCH(UPDN,R1W0R0, TT,order,stride);
> This is supposed to also find errors caused by the refresh not working
> for some memory cells. That is what the "DELAY" things are for.

I was wrong when I claimed that there is no way to disable refresh, at
least on Intel FX/HX/VX (the ones for which I've got the docs), you can
clear the three low order bits of byte 0x57 in PCI configuration space to
disable DRAM refresh. This could perhaps be used to check how much refresh
security margin the RAM has. The problem is that this technique is very
chipset dependant.

There are however a few tricks to get such a program successfully
running. The only solution I see for now is to copy all the code and data
to video memory and execute from there. This type of program must be
somehow like memtest86: stand-alone booting from floppy (no OS would
survive since it will end corrupting memory for sure).