UEFI Shell Memory Commands

How memmap, mem, and mm help firmware engineers inspect memory maps, MMIO registers, and low-level platform state before OS boot.

2 min read
Shell & Firmware Tools cover

Sometimes the question is brutally simple:

Did the register really change?

UEFI Shell memory commands are useful when the bug sits below drivers and above hardware documentation.

memmap

Shell> memmap

Useful when investigating:

  • ExitBootServices issues
  • memory type changes
  • runtime region visibility
  • ACPI reclaim memory
  • reserved MMIO ranges

mem

Shell> mem 0x00000000 0x100

mem dumps memory content. Depending on Shell implementation and platform policy, access may be restricted.

mm

Shell> mm 0xFED40000

mm can read or modify memory / IO / PCI configuration depending on syntax and Shell support.

A firmware engineer may use it to inspect:

PM registers
GPIO controller MMIO
EC-related status register
PCI config space
chipset strap / lock bit

Real world example: power management register sanity check

A sleep bug appears only after a BIOS change. Before diving into OS logs, a low-level check may ask:

Did firmware program the expected PM base?
Does the register range decode?
Is the lock bit already set?

Shell cannot replace a silicon debugger, but it can quickly show whether the platform state is obviously wrong.

Common pitfall: reading a register without context

A raw value like this is not useful by itself:

0x00000005

A useful debug note records:

Address
Access width
Expected bit definition
Original value
New value if modified
Reason for reading it
Board / BIOS version

Found this useful?

Save it or share it with someone learning firmware, BIOS/UEFI, and embedded systems.

Nội dung liên quan

Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.