Commit Graph

44 Commits

Author SHA1 Message Date
Sam Demeulemeester 036922ab26 Bump version to v6.01 2022-12-30 16:41:28 +01:00
Sam Demeulemeester 9a86f115f4 Add 'press any key to remove' message on banner
By default, don't re-display FAIL banner after it has been discarded (#130 & #173)
Add an option to re-display FAIL banner even if previously discarded
2022-11-27 23:34:43 +01:00
Sam Demeulemeester d3bc8fa7c2 V6.00 Final Release - Fix title '+' char shift 2022-10-23 20:21:09 +02:00
Sam Demeulemeester 1ee1078cf5
V6.00 Final Release PR (#187)
* Avoid FAIL banner being partially overwriten by new errors

* Remove beta on main title

* Remove v6 Beta Disclaimer & some README.me changes for release
2022-10-23 17:32:17 +02:00
Sam Demeulemeester ddbee66c85 Fix a cast issue that broke the run time clock on (very) fast CPUs 2022-09-14 20:47:29 +02:00
Sam Demeulemeester 0f8981412c
Various fixes on SPD decoding algorithms (#152)
* [DDR5] Fix rounding errors on SPD Timings

* [DDR5] Add a rounding factor of ~0.3% according to JEDEC to solve the last rounding issue found on NETAC Modules

* [DDR5] Add missing package ranks per channel parameter in total module capacity algorithm

* [DDR4] Fix rounding issues in SPD timings & frequency

* [DDR3] Fix rounding issues in SPD timings & frequency decoding. Check XMP Profile #2. Add a quirk for Kingston based on very early XMP 1.0 specs

* [DDR2] Fix CAS detection & rounding issues in SPD timings w/ EPP

* [DDR] Correct SPD timings rounding issues & add support for x.5 CAS latencies

* [SDR] Correct SPD Timings decoding due to rounding errors

* Add various JEP106 Manufacturers found while debugging

* Update timings display function to handle x.5 CAS
2022-08-26 21:56:12 +02:00
Sam Demeulemeester 37cb966f39 Version change to 6.00 Beta 3 (v6.00-beta3) 2022-07-17 22:31:47 +02:00
Sam Demeulemeester 034372f4bf
Add much bigger PASS/FAIL banner (#113)
The goal is to see the actual test result (PASS or FAIL) far away.
2022-07-17 20:20:52 +02:00
Sam Demeulemeester 89e2643de4
Add AP Enumeration to distinguish P-Core from E-Core on Hybrid CPUs (#62)
Add AP Enumeration to distinguish E-Core from P-Core on Intel Hybrid CPUs, and exclude them from the selected cores by default.  Including E-Cores slows down some tests and takes longer to catch memory errors.

A new exclude_ecores flag has been added in config.c to include E-Cores if needed.
2022-07-16 13:28:53 +02:00
01e3 1c88824a7d
Optimize screen & serial output handling. (#85)
- Enable VGA/FB to output box drawing characters while maintaining VT100
   character set for serial. Shorten and simplify the screen setup code.

 - Track the background color to decide if the serial output needs to be
   inverted. Remove no longer needed logic for known areas of the screen that
   need to be inverted. As a bonus - popup menu can now be also inverted on
   serial.

 - Reduce the amount of data sent to serial by using CR+LF when possible
   instead of always relying on absolute positioning. Add tty_print()
   for positioning the cursor, remove no longer needed tty_print().

 - Remove no longer needed "LF -> LF+CR" logic from serial_echo_print().

Before (gcc-11.3.0-x86_64):
      text       data        bss      total filename
       929        357         64       1350 system/serial.o
      3517       1356         54       4927 app/display.o

After (gcc-11.3.0-x86_64):
      text       data        bss      total filename
       907        336         64       1307 system/serial.o
      3442       1242         54       4738 app/display.o

Co-authored-by: Sam Demeulemeester <38105886+x86fr@users.noreply.github.com>
2022-06-19 16:40:30 +02:00
Sam Demeulemeester e154320790 v6.00-beta2 release 2022-06-03 00:42:38 +02:00
Sam Demeulemeester 0adcdfa160 Fix display issue when current temperature and/or max temperature >= 100°C 2022-05-22 18:02:54 +02:00
Sam Demeulemeester 076e133415 Add support for non-DDR RAM in display.c 2022-05-19 16:02:31 +02:00
Sam Demeulemeester 7b2964dd21 Fix display of Paging Mode (PAE/LM/*NONE*) on 32bit binary 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 2a994e7ff5 Various code cleanup following PR review 2022-04-16 13:31:28 +02:00
Sam Demeulemeester bd5d3e865f Move various function in display.h. Finalize wording on CPU Topology 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 96a9021c93 Increase right block on line 7/8 by 1 char. 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 6fca9bedc9 Rework Line 9. Add DDR1->DDR5 Timing Detection to display on this line 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 979b85548d Rework Line #7 left block. Add preliminary CPUID function to detect CPU Topology 2022-04-16 13:31:28 +02:00
Sam Demeulemeester fac6e2a973 Rework the right block of lines 8/9 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 5580f7562d Add tracking & display for maximum CPU Temperature. Make the enable_temperature flag working as expected 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 272f1ce4f6 Rework line 2. Add placeholder for a dual temperature display (Actual/Max). Paging mode will move to line 7 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 5f92ff1a64 Rework first line, add build number based on git hash, move 32/64b info to build number, add githash.h to git ignore. A better implementation of Makefile is needed (check if git is present and avoid rebuild (APP)*.c if hash is the same 2022-04-16 13:31:28 +02:00
Sam Demeulemeester faa0252e9c Final title color for maximum readability and to avoid confusion with the commercial Memtest86 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 2e048a7c61
Add support for Serial/TTY (#32)
* Add preliminary support for TTY Serial/UART (#15)

* Use shadow_buffer instead of VGA buffer to get a framebuffer-agnostic TTY supprot

* Added menu browsing & inputs from Serial TTY (#15)

* Add fix for degree symbol on TTY. Correct serial.c & serial.h file created with CRLF (#15)

* Move tty_error_redraw() to insure correct redraw when a error occurs

* Many reindent / cleanup

* Various optimization from @martinwhitaker comments
2022-04-04 18:31:54 +02:00
Sam Demeulemeester bd5e6f3c6b Bring back the cache & memory benchmark feature (preliminary) 2022-03-24 21:49:56 +01:00
Sam DEMEULEMEESTER 2266151fe6 Early SMBUS functions (#2) & EFI Reset (#17) 2022-03-24 21:49:56 +01:00
Sam DEMEULEMEESTER 63904403b2 Added preliminary BIOS/EFI SMBIOS table parsing & basic printing (#1) 2022-03-24 21:49:56 +01:00
Martin Whitaker 4078b7760e Faster barrier implementation.
The old barrier implementation was very slow when running on a multi-socket
machine (pcmemtest issue 16).

The new implementation provides two options:

  - when blocked, spin on a thread-local flag
  - when blocked, execute a HLT instruction and wait for a NMI

The first option might be faster, but we need to measure it to find out. A
new boot command line option is provided to select between the two, with a
third setting that uses a mixture of the two.
2022-02-28 22:05:21 +00:00
Martin Whitaker d04ec9f681 Rename to Memtest86+ v6.0. 2022-02-19 19:44:58 +00:00
Martin Whitaker 16d55b7dad Remove distinction between physical and virtual CPUs.
This is no longer needed, now we can display as many CPUs as we can
physically handle.
2022-01-31 22:59:14 +00:00
Martin Whitaker f04cb1adb6 Make spinner rotate at a constant speed. 2022-01-29 15:06:21 +00:00
Martin Whitaker 3c69cd07b7 Guard against missing TSC and divide by zero in elapsed time calculations. 2022-01-29 15:06:21 +00:00
Martin Whitaker 09890bf0cd Support more than 32 CPU cores in main display.
Either one core is active or all enabled cores are active, so we don't
really need a separate spinner for each core.
2022-01-29 15:06:05 +00:00
Martin Whitaker ea28112e08 Update the version number to show this is a development version. 2021-12-23 19:14:03 +00:00
Martin Whitaker ad6c7d0455 Use F10 (or '0'), not ESC to exit menus.
This avoids accidentally rebooting by pressing the key too many times.
2021-12-23 11:11:42 +00:00
Martin Whitaker 21e7c6fb49 Update version to 1.5. 2021-10-16 10:39:03 +01:00
Martin Whitaker 33230c511d Allow F10 to be used as an alternative to ESC (issue #5). 2021-10-16 10:35:58 +01:00
Martin Whitaker 6a0c7943d9 Update version to 1.4. 2020-12-12 10:21:22 +00:00
Martin Whitaker 8ad806bfcf Don't clear message area at start of run if trace enabled. 2020-12-11 16:18:39 +00:00
Martin Whitaker 31a586a9d9 Update version to 1.3. 2020-11-05 19:25:49 +00:00
Martin Whitaker 610cad7c36 Update version to 1.2. 2020-07-09 17:27:48 +01:00
Martin Whitaker 955886b48e Update version to 1.1. 2020-05-30 11:18:53 +01:00
Martin Whitaker fbd3376668 Initial commit. 2020-05-24 21:30:55 +01:00