MemTest86 depends on the services provided by the UEFI firmware, which include mouse/keyboard support, multiprocessor services, file input/output, and PCI device management. Because the services that are provided by the firmware are developed individually by the motherboard manufacturers, there may be functional differences than can limit or prevent the proper operation of MemTest86. Some of these issues are highlighted below:
- Some UEFI implementation do not provide full mouse support, preventing the use of the mouse in MemTest86. If this is the case, use the keyboard or try updating to a new firmware build.
- Multiple CPU testing may not be available due to limited or non-functional implementations of Multiprocessor services provided by UEFI, especially for older firmware.
This may cause a reduced number of processors available for testing, or even program freeze when attempting to run on other processors. If this is the case,
run in single CPU mode or try updating to a new firmware build. There is a blacklist.cfg file that contains a list of baseboards that are known to have issues running MemTest86.
Adding a baseboard to the list may allow MemTest86 to run, albeit with limited functionality. The following is a snipbit of the blacklist.cfg file:
"Mac-F42C88C8",ALL,EXACT,RESTRICT_STARTUP "80AF",ALL,EXACT,RESTRICT_MP "Z97MX-Gaming 5",ALL,EXACT,RESTRICT_MP "Z170MX-Gaming 5",ALL,EXACT,RESTRICT_MP "Z170X-Gaming 3",ALL,EXACT,RESTRICT_MP "Z170X-Gaming 7",ALL,EXACT,RESTRICT_MP "Z170X-Gaming GT",ALL,EXACT,RESTRICT_MP "Z170X-UD3-CF",ALL,EXACT,RESTRICT_MP "Z170-HD3P",ALL,EXACT,RESTRICT_MP
Each blacklisted baseboard is stored on a separate line with the following format:
[baseboard],[BIOS version],[exact|partial match],[restriction flags]
[baseboard] is the case-sensitive baseboard string in double quotes
[bios version] is the first BIOS version (string in double quotes) that no longer exhibits the issue. If no fix is available, specify ALL
[exact|partial match] determines whether exact or partial matching is used on [baseboard string].
[restriction flags] determines the restriction policy to impose if there is a match. This can be one of the following values:
- RESTRICT_STARTUP - Display a warning message before MemTest86 boots
- RESTRICT_MP - Do not perform the multiprocessor test during startup, and set the default CPU mode to SINGLE
- DISABLE_MP - Completely disable multiprocessor support, restricting the CPU mode to SINGLE only
- DISABLE_CONCTRL - Disable console control protocol, which may be needed for some older systems (eg. iMac 7.1)
- FIXED_SCREENRES - Do not modify the default screen resolution, which is known to cause issues on some Lenovo systems
- RESTRICT_ADDR - Set the lower address limit to 0x100000 by default, which may be needed for some Mac systems (eg. Late 2013 27" iMac)
- TEST12_SINGLECPU - Run Test 12 in SINGLE CPU Mode, which may be necessary to workaround CPU threads hanging in PARALLEL mode
- DISABLE_LANG - Disable language support and font installation, which is known to cause issues on some Dell systems
- On some newer machines, UEFI BIOS no longer emulate PS2 keyboard input. This can result in the keyboard being completely unresponsive or intermittently responsive. In these cases we suggest leaving the test to run automatically and powering down the machine once the tests have been completed.
MemTest86 is also inherently limited by the UEFI environment and as such, gives rise to the following limitations:
- MemTest86 USB flash drives cannot be read in Windows XP (32-bit) due to its lack of support of GPTdisks
- MemTest86 cannot remap itself to different portions of memory in order to run tests in the section of memory it was occupying.
- Dual UEFI entries may be present in UEFI BIOS as boot devices. There is no difference in selecting either entry. This is due to a workaround that allows MemTest86 USB flash drives to be accessible in Windows.