Memtest86

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!

The Memtest86 payload.

Memtest86 is a program which checks your RAM modules.

It can be run from within GRUB, but also as a coreboot payload (i.e. included in your ROM chip).

Building

Memtest86

$ mkdir foo
$ cd foo
$ wget http://www.memtest86.com/memtest86-3.5.tar.gz
$ tar xfvz memtest86-3.5.tar.gz
$ cd memtest86-3.5

(Optional: edit config.h and set #define SERIAL_CONSOLE_DEFAULT 1 for serial support)

$ make

The file memtest is your final payload which you can use with coreboot, either on real hardware or in a QEMU image.

Memtest86+

Prerequisite: on non-i386 hosts be sure to have the i386 libc installed (e.g. libc6-dev-i386).

$ wget http://www.memtest.org/download/4.20/memtest86+-4.20.tar.gz
$ tar xfvz memtest86+-4.20.tar.gz
$ cd memtest86+-4.20

(Optional: edit config.h and set #define SERIAL_CONSOLE_DEFAULT 1 for serial support)

$ make

coreboot

Finally, you have to build coreboot with Memtest86 as payload:

$ cd ..
$ svn co svn://coreboot.org/coreboot/trunk coreboot
$ cp memtest86-3.5/memtest coreboot/payload.elf
$ cd coreboot
$ make menuconfig

Now enter the Payload menu and select Payload type and then An ELF executable payload file. Then, exit the menu, save your settings, and build coreboot:

$ make

The file build/coreboot.rom is your final coreboot image, which also contains the payload.

Running Memtest86 in QEMU

For running the coreboot+Memtest86 image in QEMU, you need a patched version of vgabios-cirrus.bin in your build directory first:

$ cd build
$ wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip
$ unzip Vgabios-cirrus.zip
$ cd ..

You can now run coreboot and Memtest86 in QEMU:

qemu -L build -hda /dev/zero -serial stdio

Ready-made QEMU image

Please follow these instructions if you want to try out coreboot and Memtest86 in QEMU.

Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.