FW16 hibernation fails to resume, firmware presenting different memory map every boot?

Just to chime in to share that for my machine with AMD dGPU and Ryzen AI chip (AMD Ryzen AI 9 HX 370 w/ Radeon 890M, more details in Ubuntu 26.04 AMD GPU compute ) I am facing a similar issue when trying to get hibernation to work on the Framework 16 laptop.

FYI,

uname -r && cat /etc/os-release |grep PRETTY && dmidecode -s bios-version

returns

7.0.0-22-generic
PRETTY_NAME="Ubuntu 26.04 LTS"
03.06

Running

systemctl hibernate

successfully hibernates, but on waking from hibernate the same memory mapping issue reported pops:

journalctl -b --no-pager | grep -Ei 'hibernate|hibernation|resume'

returns

Jun 23 05:45:16 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x73383000-0x73383fff]
Jun 23 05:45:16 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x76d7f000-0x79ffefff]
Jun 23 05:45:16 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x7a000000-0xffffffff]
Jun 23 05:45:16 framework kernel: PM: hibernation: Basic memory bitmaps created
Jun 23 05:45:16 framework kernel: Hibernate inconsistent memory map detected!
Jun 23 05:45:16 framework kernel: PM: hibernation: Image mismatch: architecture specific data
Jun 23 05:45:16 framework kernel: PM: hibernation: Read 9386828 kbytes in 0.01 seconds (938682.80 MB/s)
Jun 23 05:45:16 framework kernel: PM: hibernation: Failed to load image, recovering.
Jun 23 05:45:16 framework kernel: PM: hibernation: Basic memory bitmaps freed
Jun 23 05:45:16 framework systemd-hibernate-resume[1157]: Unable to resume from device '/dev/mapper/ubuntu--vg-swaplv' (252:2) offset 0, continuing boot process.
Jun 23 05:45:16 framework kernel: PM: hibernation: resume failed (-1)
Jun 23 05:45:16 framework systemd[1]: systemd-hibernate-resume.service: Deactivated successfully.
Jun 23 05:45:16 framework systemd[1]: Finished systemd-hibernate-resume.service - Resume from hibernation.

and on “re-hibernating” and rebooting the machine I get jittering memory addresses as reported here by @Hello_human (and other posts such as Hibernate image mismatch: arch specific data ):

Log Time Primary Hardware Memory Range Shift Direction
04:45:19 0x689b4000 - 0x689c3fff N/A
05:00:09 0x689da000 - 0x689e9fff +152 KB
05:11:20 0x689d8000 - 0x68a67fff -8 KB
05:28:56 0x67120000 - 0x6712ffff -24 MB
05:39:03 0x68bef000 - 0x68bfefff +26 MB
05:45:16 0x68c18000 - 0x68c27fff +168 KB

Earlier, I also had some lucky shots where I successfully (randomly) recovered a hibernated GNOME session.

Besides moving from GRUB to systemd-boot failed attempts not fixing the issue include:

  • in /etc/default/grub (running update-grub && dracut --force --regenerate-all after):
    • Standardized double-dash LVM mapper naming alignment
    • Disabled AMD Secure Memory Encryption (mem_encrypt=off)
    • Kernel memory layout validation override parameter (hibernate=relaxed_regions)
      through:
      GRUB_CMDLINE_LINUX_DEFAULT="rd.luks.uuid=luks-17396226-aaaa-bbbb-cccc-aa41fd6ffe11 rd.lvm.lv=ubuntu-vg/swaplv rd.lvm.lv=ubuntu-vg/ubuntu-lv resume=/dev/mapper/ubuntu--vg-swaplv mem_encrypt=off hibernate=relaxed_regions"
      
  • in BIOS configuration:
    • Set integrated graphics (iGPU) hardware memory configuration to Custom Fixed size (512MB)
    • Disabled advanced motherboard firmware subsystem features (USB4 and hardware TPM configurations).
  • Removed external hardware components (HDMI and SD card expansion modules)

Note: [SOLVED] Hibernate “inconsistent memory map” on Framework 13 12th Gen Intel suggests that GRUB may be the culprit. I switched to systemd-boot by running

sudo apt install systemd-boot
sudo bootctl install
echo 'root=/dev/mapper/ubuntu--vg-ubuntu--lv ro resume=/dev/mapper/ubuntu--vg-swaplv' \
| sudo tee /etc/kernel/cmdline
sudo tee /etc/dracut.conf.d/bootloader.conf << 'EOF'
bootloader="systemd-boot"
uefi="yes"
EOF
sudo dracut --force --regenerate-all
sudo reboot
systemctl hibernate

such that hibernating the system works, but on wake it boots without loading the hibernated state, and

journalctl -b --no-pager | grep -Ei 'hibernate|hibernation|resume' 

returns

Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x000fffff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x09b00000-0x09dfffff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x09f00000-0x09f3bfff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x68bd2000-0x68bddfff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x68c2d000-0x68c7bfff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x7094e000-0x72b4dfff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x72b67000-0x72b6cfff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x72b6f000-0x72b6ffff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x73383000-0x73383fff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x76d7f000-0x79ffefff]
Jun 23 08:22:15 framework kernel: PM: hibernation: Registered nosave memory: [mem 0x7a000000-0xffffffff]
Jun 23 08:22:15 framework kernel: Kernel command line: initrd=\8a88bfdd345678912647442a5b4634f7\7.0.0-1005-oem\initrd root=/dev/mapper/ubuntu--vg-ubuntu--lv ro rd.luks.uuid=luks-12345678-aaaa-bbbb-cccc-123456789011 rd.lvm.lv=ubuntu-vg/swaplv rd.lvm.lv=ubuntu-vg/ubuntu-lv resume=/dev/mapper/ubuntu--vg-swaplv mem_encrypt=off hibernate=relaxed_regions systemd.machine_id=8a88bfdd345678912647442a5b4634f7
Jun 23 08:22:15 framework systemd-hibernate-resume-generator[263]: Reported hibernation image: ID=ubuntu VERSION_ID=26.04 kernel=7.0.0-1005-oem UUID=12345678-aaaa-bbbb-eeee-123456789011 offset=0
Jun 23 08:22:27 framework systemd[1]: Starting systemd-hibernate-resume.service - Resume from hibernation...
Jun 23 08:22:27 framework systemd-hibernate-resume[1247]: Reported hibernation image: ID=ubuntu VERSION_ID=26.04 kernel=7.0.0-1005-oem UUID=12345678-aaaa-bbbb-eeee-123456789011 offset=0
Jun 23 08:22:27 framework kernel: PM: hibernation: resume from hibernation
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x00000000-0x00000fff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x0009f000-0x000fffff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x09b00000-0x09dfffff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x09f00000-0x09f3bfff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x68bd2000-0x68bddfff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x68c2d000-0x68c7bfff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x7094e000-0x72b4dfff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x72b67000-0x72b6cfff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x72b6f000-0x72b6ffff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x73383000-0x73383fff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x76d7f000-0x79ffefff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Marking nosave pages: [mem 0x7a000000-0xffffffff]
Jun 23 08:22:27 framework kernel: PM: hibernation: Basic memory bitmaps created
Jun 23 08:22:27 framework kernel: Hibernate inconsistent memory map detected!
Jun 23 08:22:27 framework kernel: PM: hibernation: Image mismatch: architecture specific data
Jun 23 08:22:27 framework kernel: PM: hibernation: Read 10513700 kbytes in 0.01 seconds (1051370.00 MB/s)
Jun 23 08:22:27 framework kernel: PM: hibernation: Failed to load image, recovering.
Jun 23 08:22:27 framework kernel: PM: hibernation: Basic memory bitmaps freed
Jun 23 08:22:27 framework systemd-hibernate-resume[1247]: Unable to resume from device '/dev/mapper/ubuntu--vg-swaplv' (252:1) offset 0, continuing boot process.
Jun 23 08:22:27 framework kernel: PM: hibernation: resume failed (-1)
Jun 23 08:22:27 framework systemd[1]: systemd-hibernate-resume.service: Deactivated successfully.

i.e., the memory map is static now, but the kernel still rejects the image. Wild guess: amdgpu driver initialization, potentially: Hibernate resume failures on Framework 13 AMD (Ryzen AI 300 / Krackan): A/B-tested workaround — `pm_async=0` , update: and indeed, adding the pm_async=0 option increases the chances of a successful hibernation and resume, but still a cold start in more than 80% of the attempts.