Sam Demeulemeester
70e4ec1881
Add support for 100+ new DRAM vendors & update JEP106 list
2026-10-06 17:59:40 +02:00
Sam Demeulemeester
bf9dff4632
Document AArch64 support status on README.md
2026-10-06 16:14:31 +02:00
Sam Demeulemeester
6c28a985bc
imc/mtl: read timings from CH1 when CH0 is unpopulated
2026-10-06 14:56:00 +02:00
Sam Demeulemeester
3334d7296a
Fix failed read on SPD5 Hub due to incomplete previous write
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
ed5770abfa
Add proper cache detection for Transmetta CPUs
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
ccbac76118
Fix swapped L1D/L1I on CPUID 0x8000005 decoding
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
48cdcffb9e
Generate .sbat from sbat_csv.h so the version tracks MT_VERSION
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
e78311db5a
i2c: add support for Intel Wildcat Lake SoC (tested working)
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
1e556aec7c
aarch64: fix SMBIOS parsing crash when loaded via shim
...
map startup-only regions as Normal memory
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
a520744ac9
Fix direct shim loading due to zero-padded sbat section
...
use exact .sbat VirtualSize, section moved last (regressed by .osrel in dae548f )
Remove dead .bss-clear debug code from efi_handover (shim-review)
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
20e6302cca
Fix dead PS/2 KBs on AT-class 8042 controllers (ie: MSI MS-6167)
...
Since e285fbb ('Ignore PS/2 mouse events') every scancode was discarded as a
mouse event: AT-class KB Controllers set status bit 5 as a transmit timeout,
not AUX data. Only honour the filter when the config byte enables AUX.
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
269fbcceea
Fix save-to-USB fails after drive hotplug or replug
...
Validate the cached MSD and rescan if stale, detect a replug via CCS+PED on xHCI,
retry msd_init once via port-reset re-enumeration, clear unit attention with REQUEST SENSE
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
e18aa349ff
USB: relocate BARs left unassigned or in DRAM-decoded space by the BIOS
...
Add pci_alloc_mmio() on x86; retry first GET_DESCRIPTOR on stalling drives
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
568e471c3d
Use the git commit date for fallback FAT timestamps to keep builds reproducible (shim-review)
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
3942d25f2a
Add FAT file timestamps to USB report saving (RTC on x86, build date elsewhere)
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
306bcd0659
EHCI: don't give up on BIOS handoff timeout
...
On any init failure, clear CONFIGFLAG so ports revert to companion HCs
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
a04347dddd
Improve USB mass storage reliability on legacy EHCI/UHCI systems
...
EHCI: don't treat the qTD Ping State bit as an error, disable SMIs at BIOS
handoff, fail fast and recover when the controller halts, and stop DMA before
freeing controller memory (also on UHCI).
MSD: retry failed BOT commands.
FAT32: cache the current sector.
Quirk: fix VIA VT823x EHCI bus starvation.
2026-09-08 14:45:45 +02:00
Sam Demeulemeester
f9ab5e36cf
Fix L3 cache size on AMD Asymmetric Dual-CCD CPUs
2026-07-20 13:57:56 +02:00
Sam Demeulemeester
6789cd5148
Fix random SMP hangs in x2APIC mode by fencing the ICR write
...
WRMSR to the x2APIC MSRs is not serializing, so an IPI could be sent
before older stores (eg: the barrier wakeup flags) are globally visible,
deadlocking the woken CPU on stale data.
Insert MFENCE;LFENCE before the ICR write, as required by the
Intel SDM (vol 3A, 11.12.3) and matching the linux kernerl
weak_wrmsr_fence(). The need for lfence is mostly black magic...
2026-07-19 17:16:21 +02:00
Sam Demeulemeester
0738fdd2a0
Replace JEDEC code/pointer pairs with a code array + string table, saving 172 relocations and a few KB.
...
Suggested-by: Lionel Debroux <lionel_debroux@yahoo.fr >
Suggested-by: 01e3 <01e3@ans.pl >
2026-07-13 07:26:46 +02:00
Sam Demeulemeester
2dc40e0885
Add System/MB Serials to USB Report. Remove disabled tests
2026-07-12 23:55:07 +02:00
Sam Demeulemeester
115b98e922
Fix hang when the BSP is NOT the first CPU listed in the MADT
...
Find the boot CPU's APIC ID in the table and move it to slot 0, otherwise
smp_start() sends INIT-SIPI to the BSP itself and hangs the system.
Also skip entries whose APIC ID is already listed, as some firmwares
declare the same core as both a local APIC and an x2APIC entry.
This is a strict violation of the ACPI specs, but it happens...
2026-07-12 20:02:16 +02:00
Sam Demeulemeester
d105c55e15
Normalize membw.c to LF and enforce LF endings via .gitattributes
2026-07-12 18:30:19 +02:00
Sam Demeulemeester
951cd58833
benchmark: account for RFO traffic in cached copies (fixes L3 speed too low)
2026-07-12 18:29:04 +02:00
Sam Demeulemeester
c21e2cfa00
Move bus stress test from test 9 to test 3 to minimise time to first fault
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
80717a1c5b
Invert the PRSG xorshift stages by repeated squaring (~25% faster)
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
72d08688ba
Add rowhammer test (new test 11), disabled by default
...
Blacksmith-style non-uniform, REFRESH-synchronised many-sided hammering with DRAMA-lite row-stride discovery and a blind-stride fallback
x86 clflush(opt) engine with a coarse whole-cache-flush fallback for other targets. LA64 TBT
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
eaeaff181b
Add bus stress test with fine-grained R/W turnarounds (new test 9)
...
Two per-CPU streams alternate NT-store bursts of a fresh PRSG sequence with read-verify of the previous round, forcing write-to-read turnarounds and row conflicts; odd rounds insert idle gaps to provoke PMIC load steps. Targets DDR5-era interface faults (link SI, marginal XMP/EXPO training, voltage droop) that on-die ECC cannot correct
Moving PRSG vector kernels from mov_inv_rng.C to a shared module in tests/
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
6639e5cfb8
Enhance bit fade test: solid + random rounds (4 x 120s), parallel fill/check
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
7f281dc670
Slightly adjust test dispatch (NT Store faster than expected
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
55d4508adc
Reorder tests and rebalance iterations to reduce time-to-first-fault
...
Run the random sequence test (now #4 ) and Modulo-20 (now #6 ) before the 64-bit shifting pattern test (now #8 ), so that every fault class is probed early in the pass.
Trade the walker's redundant repetitions (3 -> 1 iteration, plus only every other offset on the fast first pass) for more never-repeating work (random sequence 24 -> 96 rounds, Modulo-20 6 -> 9), at unchanged pass time.
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
4e76e517eb
Add SIMD moving inversions test with random sequences (AVX2/SSE2)
...
Replace tests 5 & 8 with a single moving inversions test using per-lane
xorshift sequences and non-temporal stores. Kernels (inline asm) are picked
at runtime via the new system/simd module: AVX2, SSE2 or scalar, with the
tier shown in the test name.
Fix and enable the AVX/XCR0 startup code and decode the XSAVE/AVX/AVX2 CPUID flags.Suite shrinks from 11 to 10 tests.
2026-07-11 11:22:01 +02:00
Sam Demeulemeester
7ff45d9466
Early version bump to v9.00
2026-07-07 16:40:42 +02:00
Sam Demeulemeester
ffe3890502
Add acknowlegdment for LA64 port in README.md
2026-07-07 16:39:56 +02:00
Sam Demeulemeester
997d4d2da2
Suppress GCC 12+ warnings from BIOS Direct Access
2026-05-22 15:34:56 +02:00
Sam Demeulemeester
494689a7ac
Add many JEDEC IDs for unknown DRAM manufacturers
2026-05-06 22:25:51 +02:00
Sam Demeulemeester
f0ae889c7e
Make Invalid Temperature Sentinel Agnostic
...
Do not display DDR5 Temperature when not available
2026-04-07 18:52:38 +02:00
Sam Demeulemeester
7eb2568dfe
Add support for Intel Lunar Lake & Panther Lake CPUs
2026-03-23 17:52:55 +01:00
Sam Demeulemeester
a90edd63ce
Fix tRP measurement on Intel LPDDR5 laptop
...
Use tRPpb instead of tRPab
2026-03-23 17:52:02 +01:00
Sam Demeulemeester
82bb87a710
Early bump to v8.10
2026-03-17 00:37:45 +01:00
Sam Demeulemeester
e486dde638
Fix shadowed var declaration and whitespaces issues in config.c
2026-03-17 00:37:18 +01:00
Sam Demeulemeester
feeb7d2d01
Fix Core Topology Determination on some CPUs (eg: Intel PTL)
2026-03-17 00:15:46 +01:00
Sam Demeulemeester
6af76b804b
Enable DDR5 Temperature polling
2025-10-07 15:38:27 +02:00
Sam Demeulemeester
ac7d092417
Added various DRAM manufacturers from JEP106 list
...
Manually reworked strings
2025-10-05 16:26:58 +02:00
Sam Demeulemeester
6888b1d5a0
Add support for Intel Arrow Lake-H (SOC)
...
Tested OK on NUC 15th Gen.
2025-10-05 16:02:07 +02:00
Sam Demeulemeester
2f9b165eec
Add support for AMD Hawk Point FP7 (Phoenix)
2025-05-27 22:02:41 +02:00
Sam Demeulemeester
4d08b14a3d
Remove Ubuntu 20.04 from workflows due to deprecation
2025-04-20 19:22:33 +02:00
Sam Demeulemeester
a47b2bc053
Fix DDR5 SPD parsing issue for XMP 3.0 frequency
...
On DDR5, limit XMP profile parsing to 2 to avoid conflict between XMP and EXPO
Add a check to skip very low tCK values
2025-04-20 19:16:51 +02:00
Sam Demeulemeester
3b1d85291d
Change README.md to add recently added 'dark' mode
2025-02-10 23:39:13 +01:00
Sam Demeulemeester
b51c6e75f3
Add Thermaltake and SSTC Jedec IDs
2025-01-27 19:41:36 +01:00
Sam Demeulemeester
a65857b702
Early bump to v8.00
2025-01-27 19:28:03 +01:00
Sam Demeulemeester
5a046291fa
Add a few RAM manufacturers in JEDEC DB
2024-11-12 00:25:38 +01:00
Sam Demeulemeester
52c6c64d57
Bump version to v7.20
2024-11-11 15:28:41 +01:00
Sam Demeulemeester
46e3b43859
Add support for latest AMD Zen5 CPU (Ryzen 9000)
...
Change DDR5 SPD Bank switch method on AMD according to feedbacks from betatesters
2024-11-10 23:45:49 +01:00
Sam Demeulemeester
2d3b14ed1a
Add detection for various JEDEC Manufacturers
2024-01-07 15:20:19 +01:00
Sam Demeulemeester
fc2826726b
Early Bump to v7.00
...
Requested by many betatesters due to the amount of changes since 6.20 release
ECC support for a few platforms planned before v7.00 release
2023-08-06 20:33:30 +02:00
Sam Demeulemeester
10782c2aad
Remove HOW_TO_DEBUG_WITH_GDB.md from root
2023-08-06 20:28:57 +02:00
Sam Demeulemeester
555908137e
Move HOW_TO_DEBUG_WITH_GDB.md to doc/
2023-08-06 17:28:16 +02:00
Sam Demeulemeester
03b6cbe4e4
Add IMC polling for AMD Rembrandt
...
Refactor cpuinfo() for AMD Family 19h CPUs and add detection for AMD Chagall, Storm Peak, Rembrandt, Phoenix and Granite Ridge
2023-06-01 22:00:02 +02:00
Sam Demeulemeester
de4f4768fc
Fix various temperature-related issues on older Atom CPUs
...
Also, remove the no_temperature var to keep only the enable_temperature flag
Older Atom still have the enable_temperature flag hard-coded to false until further tests are done
2023-05-18 16:03:48 +02:00
Sam Demeulemeester
5dcd424ea7
Bump version to v6.20
2023-05-07 16:55:03 +02:00
Sam Demeulemeester
1f1fe5bfe8
Generalize the SMBus IO Enable quirk on all Intel ICHs
...
This has been tested safe on every ICH since the very first one by CPU-Z.
It also solves various SMBus access issues on Mobile PCHs (like #157 )
2023-04-26 00:42:58 +02:00
Sam Demeulemeester
0fd2e4c37a
Add support for Intel AlderLake-N CPUs
2023-04-24 00:29:37 +02:00
Sam Demeulemeester
fa4e903509
Fix APIC Timer detection fail on some modern mobile/embedded PCH
...
On some modern ULV cores (eg: Gracemont), the 2 following I/O reads to check APIC Timer working status are fused in the frontend, leading to the same value being reported twice and the code falling back to the (unusually disabled on these platforms) PIT timer.
Whether this behavior is intentional or not is unknown.
As usleep/sleep is not available at this point, a dirty delay is added between the two reads.
2023-04-23 22:45:27 +02:00
Sam Demeulemeester
79bb781431
Better handling of big FAIL banned in case of errors
2023-03-29 18:29:59 +02:00
Sam Demeulemeester
c6b04e5414
Display big banner only once
2023-03-29 17:58:12 +02:00
Sam Demeulemeester
5cbcd2046b
Add 'Jade Star' & 'InnoDisk' JEDEC Manufacturers
2023-03-09 23:08:01 +01:00
Sam Demeulemeester
bf0dae04bc
Remove deprecated ubuntu-18.04 job
2023-03-07 00:34:31 +01:00
Sam Demeulemeester
ee0c400821
[SMBUS] Add support for VIA VT8233 Southbridge
2023-02-18 19:01:59 +01:00
Sam Demeulemeester
e1fc02bfe0
[SMBUS] Add support for VIA VT8233A Southbridge
2023-02-18 18:58:34 +01:00
Sam Demeulemeester
a1d046fc3a
Fix a typo in README.md (serial console baud rate)
2023-02-18 18:51:02 +01:00
Sam Demeulemeester
c38b0cbc5f
[SMBUS] Add support for nVidia nForce 3
2023-02-13 19:43:09 +01:00
Sam Demeulemeester
dfc41f7196
Solve incorrect core/thread count on some VIA CPUs
...
No Cyrix / VIA / CentaurHauls / Zhaoxin CPUs support HT, so disable it.
2023-02-11 19:00:36 +01:00
Sam Demeulemeester
ce2c29eddc
Bump version to v6.10
2023-02-02 23:52:18 +01:00
Sam Demeulemeester
b15a8bb632
Add SPD support for ATI SB400 Southbridge
2023-01-23 16:09:32 +01:00
Sam Demeulemeester
10e8435604
Add SPD support for legacy VIA Southbridges (VT82C686A/B & VT8235)
...
(From PR #236 )
Author: Corentin Labbe clabbe.montjoie@gmail.com
Co-developed-by: Lionel Debroux lionel_debroux@yahoo.fr
2023-01-23 15:01:48 +01:00
Sam Demeulemeester
d3d52b8a11
Add Memtest86+ Version String to Kernel Header ( #75 )
2023-01-03 01:35:51 +01:00
Sam Demeulemeester
da7b9b955d
Move Memtest86+ version number to an external file (along with the the latest GIT commit hash) ( #75 )
2023-01-03 00:39:10 +01:00
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
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
03a5222ee2
Add support for Zen4/AM5 DDR5 SPD
2022-09-09 18:09:13 +02:00
Sam Demeulemeester
18f12116c0
Fix a rare capacity detection issue with DDR3 modules built using 3 or 4 ranks
2022-08-29 02:50:11 +02:00
Sam Demeulemeester
385f912776
Fix date decoding issue: week 53 is actually valid for some years
2022-08-29 02:12:05 +02:00
Sam Demeulemeester
6799bfba3c
Fix timings decoding issues with DDR3 XMP Modules. Add quirks for early modules based on XMP Draft
2022-08-29 01:59:36 +02:00
Sam Demeulemeester
02702fa8c5
Change check to be sure Extended Topology Information (CPUID.0BH:EBX[15:0]) is supported
2022-08-15 22:26:22 +02:00
Sam Demeulemeester
8a3cac8133
Fix an issue while detection Core topology on Core 2 CPU.
...
Some CPU like Intel Yorkfield (Core 2 Quad) reports max CPUID > 0xB but doesn't support CPUID = 0xB. Check x2apic flag to be sure CPUID 0xB is supported. If not, fallback to older detection method
2022-07-26 20:02:58 +02:00
Sam Demeulemeester
740df34656
Remove now useless IMC check to allow temperature reporting on more older CPUs
2022-07-23 23:59:49 +02:00
Sam Demeulemeester
cf156adc4a
Solve an issue with Core 2 Duo/Quad and same gen CPUs, where HTT flag is enabled in CPUID while the CPU does not support SMT. ( #125 #129 )
...
Now compare the number of physical core with the number of reserved APIC to check if SMT is really available or not
2022-07-23 23:47:06 +02:00
Sam Demeulemeester
53f61e6b87
Add 'Heoriady' and 'Golden Empire' to the list of known JEDEC Manufacturers for SPD decoding ( #22 )
2022-07-23 23:01:53 +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
187bc8609e
Add support for nForce 410/430 & 680a/680i/780i/790i chipsets (tested)
2022-07-17 20:28:58 +02:00
Sam Demeulemeester
6b998e82e7
[TTY/Serial] Always use absolute positioning instead of relying on CR-LF
2022-06-19 16:47:10 +02:00
Sam Demeulemeester
680e6ad79b
Typo on smp.c (missing ;)
2022-06-19 16:39:03 +02:00
Sam Demeulemeester
231b389b3c
Various minor cosmetic changes on acpi.c/h (mainly comments and code format)
2022-06-19 16:39:03 +02:00
Sam Demeulemeester
a5576974cf
Add ACPI Timer as the primary TSC correction source and PIT Timer as fallback
2022-06-19 16:39:03 +02:00
Sam Demeulemeester
eac4d03462
Parse FADT to find ACPI Timer Base Address and specs
2022-06-19 16:39:03 +02:00
Sam Demeulemeester
cee2d32766
Add a few ACPI Tables Signature that could be useful later
2022-06-19 16:39:03 +02:00
Sam Demeulemeester
221a66da1a
Split ACPI Functions from SMP functions.
...
Add ACPI Table detection for FADT & HPET (as we need better timers)
2022-06-19 16:39:03 +02:00