> + /*
> + * May be sort out what memory chip is failing ?
> + * Heh ... with parity memory we can be a good memory
> + * test program too :)
> + * It should be something like:
> + *
> + * (1) disable NMI interrupts writing 1 in bit 7 of
> + * port 0x70
> + * (2) reset the NMI memory parity error flag (bit 7)
> + * toggling bit 2 of 0x61 port to 1 and then to 0
> + * (3) while all flat memory is tested:
> + * (4) write 4Kb page in memory
> + * (5) test if any NMI is pending: if yes, the
> + * last page written is bogus, printk its
> + * address.
> + * (6) ++ page
> + * (7) panic() out: we have no more things other that
> + * raw kernel, running on this machine now.
> + *
> + * In (4) we should care not to overwrite the kernel
> + * because I suspect we need it at least for printk()
> + * and panic()
> + */
Someone said that it's possible to get the failing address.
If this is the case, it would be nice to printk() that.
Additionally, it would be nice to have memory holes => that failing
address could be marked as a hole and it could be added to kernel paramters
so it is of no trouble again :)
I suggest this because I have an old 386 here (4M memory), and it
has bad memory (NMI's occur), and it would be nice to have that as a
terminal. Now I can't even install Linux on that because the install crashes!