Due to bad RAM soldered to my laptop motherboard, I'm wondering if there's a way to make the kernel uncompress to and boot from a specific memory location.
I've already tried using the kernel boot parameter memmap to sort of disable the lower 256MB of the 1GB soldered to the motherboard, but with no success. I've tried these:
but the two first give a "malformed option" message in dmesg, and the last two cause kernel panic on bootup.
May compiling my own kernel and changing SYSSEG in arch/x86/boot/header.S help? Are there other memory addresses defined somewhere that I can change to make the kernel uncompress to a specific location, to avoid using the low memory?
Creating a zImage instead of a bzImage won't help, as memory corruption appears both above and below 640K (I've been looking at Documentation/x86/boot.txt to see the kernel memory layout).
memtest86 sometimes crashes, so the memory where memtest86 runs seems bad, therefore I'm having problems pinpointing what addresses are bad. When I do manage to run memtest86, and configure it to check the memory above 256MB, it reports no errors, so I assume the bad memory is all below 256MB somewhere.
memtest86+ only detects the low 640K, and only tests the range 176K-636K no matter how I try to configure it, and never reports any errors, even though memtest86 reports error at 0x31F00 (among other places).
If this question belongs somewhere else, please point me there. The description of linux-kernel was kind of intimidating, and since this is a debian system kernel I figured I'd ask here first.