# XMP and EXPO on Windows: enable it, then prove it is stable

> What XMP/EXPO actually changes, how to enable it safely, which Windows errors reveal instability, and how to roll back to JEDEC defaults.

**Tested on**

- Build: 26300.9457
- Edition: Pro (26H2)
- Architecture: x64
- Evidence: E1
- Verified: 2026-10-29

## The short answer

XMP (Intel) and EXPO (AMD) are **firmware profiles stored on the memory module**. Enabling one tells the board to run the kit at its advertised speed and timings instead of the JEDEC baseline (often 4800 or 5600 MT/s on DDR5).

Two facts decide everything:

1. Running above JEDEC is **overclocking**, even if the profile is "certified" for the kit.
2. Stability is per **CPU memory controller + board + kit** combination, not per kit. The same modules can be stable on one board and not another.

Enable it, then prove it. "It booted" is not proof.

## What actually changes

| Profile | Effect |
|---|---|
| JEDEC default | Conservative speed/timings; the fallback everything must survive |
| XMP/EXPO | Advertised speed, primary timings, and often a higher memory voltage |
| Board auto-OC | Board's own attempt beyond the profile; least predictable |

Your CPU's officially supported memory speed is a separate number from the kit's rating. Running the kit's XMP can exceed the CPU/board validated speed — which is exactly when instability appears.

## Enable it

1. Enter firmware setup (usually `Del`/`F2` during POST).
2. Find `XMP`, `EXPO`, `DOCP` or `A-XMP` — the naming is board-specific.
3. Select **Profile 1**, save, reboot.
4. Confirm the machine POSTs at the new speed and Windows boots.

If it fails to POST, clear CMOS and try again — most boards have a clear-CMOS jumper or button. Do not keep power-cycling a board stuck at memory training; clear it properly.

## Verify what Windows sees

```powershell
Get-CimInstance Win32_PhysicalMemory |
  Select-Object BankLabel,DeviceLocator,Capacity,Speed,ConfiguredClockSpeed,Manufacturer,PartNumber
```

- `Speed` is the module's rated speed.
- `ConfiguredClockSpeed` is what the firmware actually configured.

If `ConfiguredClockSpeed` still shows the JEDEC value, the profile did not apply — check that the firmware saved, or that the board downclocked after a failed training attempt.

## Prove stability, in this order

1. **Boot and light use** — a day of normal work. Many XMP faults only appear at idle or in sleep transitions.
2. **Memory test** — a full pass of a memory tester overnight.
3. **Real workload** — a compile, a game, a VM workload for an hour.
4. **Sleep/resume cycles** — ten cycles of sleep and wake.

Only after all four should you keep the profile.

## What instability looks like in Windows

Memory errors rarely say "memory error". They look like:

- `WHEA-Logger` events in Event Viewer (correctable or uncorrectable);
- random `0x1A MEMORY_MANAGEMENT`, `0x50`, `0x3B` bugchecks;
- applications crashing with a different faulting module each time;
- silent file corruption — the worst outcome, because it looks like a software bug.

```powershell
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-WHEA-Logger'} -MaxEvents 20 |
  Select-Object TimeCreated,Id,LevelDisplayName,Message
```

Any WHEA memory error after enabling XMP is a strong signal to drop the profile.

> **Caution: Corrected errors are not harmless**
>
> A corrected error that repeats means the link is marginal. The next one may be uncorrectable — and that one corrupts data rather than crashing. Treat repeats as failure, not noise.

## Roll back cleanly

1. Firmware → disable XMP/EXPO (back to JEDEC).
2. Boot, confirm `ConfiguredClockSpeed` matches JEDEC.
3. Re-run one memory test pass to confirm the machine is back to known-good.
4. Record the profile, voltage and speed in your notes.

## When to just leave it off

- Servers and always-on machines: stability beats a few percent of bandwidth.
- Small-form-factor builds with limited airflow: higher memory voltage adds heat.
- Four-DIMM configurations: the memory controller is under more load and the rated profile often cannot be sustained.

## Related

- [RAM sizing](https://windows.homes/en/hardware/ram/)
- [ECC and WHEA](https://windows.homes/en/hardware/ram/ecc-whea/)
- [Memory diagnostics](https://windows.homes/en/hardware/ram/diagnostics/)

## Lab boundary

E1. This page documents the firmware/Windows interaction and the verification procedure. The lab runs virtual machines with no XMP setting, so no profile was tested here — treat performance expectations as unverified until you test your own kit.

## Sources

- [Microsoft Learn — Win32_PhysicalMemory](https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-physicalmemory)
- [Microsoft Learn — Windows processor requirements](https://learn.microsoft.com/en-us/windows-hardware/design/minimum/windows-processor-requirements)
- [Microsoft Learn — WHEA reference](https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/)

---

Source: https://windows.homes/en/hardware/ram/xmp-expo/
