ACPI BIOS Error (AE_AML_BUFFER_LIMIT) on Lenovo ThinkPad E480

Hello NixOS community,

I have encountered an ACPI BIOS Error on my Lenovo ThinkPad E480 after updating the BIOS to version 1.50 (released on 11/07/2023). Below are the details of the issue:

Error Log:

ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [TBF3] at bit offset/length 262144/32768 exceeds size of target Buffer (262144 bits) (20240827/dsopcode-198)
ACPI Error: Aborting method \_SB.PCI0.GFX0.GETB due to previous error (AE_AML_BUFFER_LIMIT) (20240827/psparse-529)
ACPI Error: Aborting method \_SB.PCI0.GFX0.ATRM due to previous error (AE_AML_BUFFER_LIMIT) (20240827/psparse-529)
[drm:amdgpu_get_bios [amdgpu]] *ERROR* failed to evaluate ATRM got AE_AML_BUFFER_LIMIT

System Information:

  • Laptop Model: Lenovo ThinkPad E480 (2017)
  • BIOS Version: R0PET73W (1.50) - released on 11/07/2023
  • Kernel Version: 6.12.10-zen1
  • Graphics: Intel UHD Graphics 620 (i915 driver), AMD Radeon 540 (amdgpu driver)

Troubleshooting Steps I’ve Taken:

  • I have tried adding several kernel parameters, such as acpi=strict and acpi_osi=Linux, but the issue persists.
  • I have updated my NixOS and checked all related system configurations, including ACPI settings in the BIOS, but no resolution has been found.

Possible Cause:

Given that my BIOS version was updated recently, I wonder if the updated BIOS (2023) is incompatible with my older hardware (2017 model). I’m seeing a mismatch between the ACPI tables in the BIOS and the kernel’s expectations, which could be causing the AE_AML_BUFFER_LIMIT error.

Has anyone experienced similar issues with a BIOS update on a ThinkPad, particularly with newer versions of BIOS on older hardware? Any suggestions on how to resolve this or any further kernel parameters I could try would be greatly appreciated.

Thank you for your help!


q@NixOS:~/ > sudo dmidecode -t bios
[sudo] пароль для root: 
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x000B, DMI type 0, 24 bytes
BIOS Information
	Vendor: LENOVO
	Version: R0PET73W (1.50 )
	Release Date: 11/07/2023
	Address: 0xE0000
	Runtime Size: 128 kB
	ROM Size: 16 MB
	Characteristics:
		PCI is supported
		PNP is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		Boot from CD is supported
		Selectable boot is supported
		EDD is supported
		3.5"/720 kB floppy services are supported (int 13h)
		Print screen service is supported (int 5h)
		8042 keyboard services are supported (int 9h)
		Serial services are supported (int 14h)
		Printer services are supported (int 17h)
		CGA/mono video services are supported (int 10h)
		ACPI is supported
		USB legacy is supported
		BIOS boot specification is supported
		Targeted content distribution is supported
		UEFI is supported
	BIOS Revision: 1.50
	Firmware Revision: 1.50

Handle 0x0022, DMI type 13, 22 bytes
BIOS Language Information
	Language Description Format: Abbreviated
	Installable Languages: 1
		en-US
	Currently Installed Language: en-US

q@NixOS:~/ > journalctl -b -p err    
01 23:29:15 NixOS kernel: thinkpad_acpi: acpi_evalf(MMTS, dd, ...) failed: AE_OK
01 23:29:15 NixOS kernel: leds platform::micmute: Setting an LED's brightness failed (-5)
01 23:29:15 NixOS kernel: ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [TBF3] at bit offset/length 262144/32768 exceeds size of target Buffer (262144 bits) (20240827/dsopcode-198)
01 23:29:15 NixOS kernel: ACPI Error: Aborting method \_SB.PCI0.GFX0.GETB due to previous error (AE_AML_BUFFER_LIMIT) (20240827/psparse-529)
01 23:29:15 NixOS kernel: ACPI Error: Aborting method \_SB.PCI0.GFX0.ATRM due to previous error (AE_AML_BUFFER_LIMIT) (20240827/psparse-529)
01 23:29:15 NixOS kernel: [drm:amdgpu_get_bios [amdgpu]] *ERROR* failed to evaluate ATRM got AE_AML_BUFFER_LIMIT

q@NixOS:~/ > inxi -F
System:
  Host: NixOS Kernel: 6.12.10-zen1 arch: x86_64 bits: 64
  Desktop: Xfce v: 4.20.0 Distro: NixOS 25.05 (Warbler)
Machine:
  Type: Laptop System: LENOVO product: 20KN003WUS v: ThinkPad E480
    serial: <superuser required>
  Mobo: LENOVO model: 20KN003WUS v: SDK0J40697 WIN
    serial: <superuser required> UEFI: LENOVO v: R0PET73W (1.50 )
    date: 11/07/2023
Battery:
  ID-1: BAT0 charge: 34.7 Wh (100.0%) condition: 34.7/45.7 Wh (75.9%)
CPU:
  Info: quad core model: Intel Core i7-8550U bits: 64 type: MT MCP cache:
    L2: 1024 KiB
  Speed (MHz): avg: 550 min/max: 400/4000 cores: 1: 700 2: 400 3: 700 4: 400
    5: 700 6: 700 7: 400 8: 400
Graphics:
  Device-1: Intel UHD Graphics 620 driver: i915 v: kernel
  Device-2: AMD Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X]
    driver: amdgpu v: kernel
  Device-3: Bison SunplusIT Integrated Camera driver: uvcvideo type: USB
  Display: x11 server: X.org v: 1.21.1.15 driver: gpu: i915
    resolution: 1920x1080~60Hz
  API: EGL v: 1.5 drivers: iris,radeonsi,swrast
    platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 24.3.4
    renderer: Mesa Intel UHD Graphics 620 (KBL GT2)
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio driver: snd_hda_intel
  API: ALSA v: k6.12.10-zen1 status: kernel-api
  Server-1: PipeWire v: 1.2.7 status: active
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    driver: r8169
  IF: enp3s0 state: down mac: e8:6a:64:18:00:c7
  Device-2: Realtek RTL8822BE 802.11a/b/g/n/ac WiFi adapter
    driver: rtw_8822be
  IF: wlp5s0 state: up mac: 80:2b:f9:15:ad:b1
Bluetooth:
  Device-1: Realtek RTL8822BE Bluetooth 4.2 Adapter driver: btusb type: USB
  Report: rfkill ID: hci0 rfk-id: 1 state: down bt-service: not found
    rfk-block: hardware: no software: no address: see --recommends
Drives:
  Local Storage: total: 476.95 GiB used: 54.95 GiB (11.5%)
  ID-1: /dev/nvme0n1 vendor: Toshiba model: N/A size: 238.47 GiB
  ID-2: /dev/sda vendor: Samsung model: MZ7LN256HCHP-000L7 size: 238.47 GiB
Partition:
  ID-1: / size: 199.48 GiB used: 54.65 GiB (27.4%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-2: /boot size: 511 MiB used: 85 MiB (16.6%) fs: vfat
    dev: /dev/nvme0n1p1
Swap:
  ID-1: swap-1 type: zram size: 31.12 GiB used: 0 KiB (0.0%) dev: /dev/zram0
  ID-2: swap-2 type: partition size: 34.23 GiB used: 0 KiB (0.0%)
    dev: /dev/nvme0n1p3
Sensors:
  Src: /sys System Temperatures: cpu: 50.0 C pch: 41.0 C mobo: N/A gpu: amdgpu
    temp: 40.0 C
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 32 GiB note: est. available: 31.12 GiB used: 3.69 GiB (11.9%)
  Processes: 257 Uptime: 0h 22m Shell: Zsh inxi: 3.3.35
q@NixOS:~/ >

q@NixOS:~/ > sudo dmesg | grep acpi
[sudo] пароль для root: 
[    0.000000] Command line: initrd=\EFI\nixos\12ly93prc3xlcvd5lp5a1yaa5h26ijcg-initrd-linux-zen-6.12.10-initrd.efi init=/nix/store/vvx7d0nlayxld0cs9nhw6bgcdxybzfr7-nixos-system-NixOS-25.05.20250129.9d3ae80/init acpi_osi=Linux acpi=strict splash loglevel=3
[    0.090596] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.090599] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.090600] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.090602] ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
[    0.090603] ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
[    0.090604] ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
[    0.090605] ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
[    0.090607] ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
[    0.090608] ACPI: LAPIC_NMI (acpi_id[0x09] high edge lint[0x1])
[    0.090609] ACPI: LAPIC_NMI (acpi_id[0x0a] high edge lint[0x1])
[    0.090610] ACPI: LAPIC_NMI (acpi_id[0x0b] high edge lint[0x1])
[    0.090611] ACPI: LAPIC_NMI (acpi_id[0x0c] high edge lint[0x1])
[    0.090613] ACPI: LAPIC_NMI (acpi_id[0x0d] high edge lint[0x1])
[    0.090614] ACPI: LAPIC_NMI (acpi_id[0x0e] high edge lint[0x1])
[    0.090615] ACPI: LAPIC_NMI (acpi_id[0x0f] high edge lint[0x1])
[    0.090616] ACPI: LAPIC_NMI (acpi_id[0x10] high edge lint[0x1])
[    0.101287] Kernel command line: initrd=\EFI\nixos\12ly93prc3xlcvd5lp5a1yaa5h26ijcg-initrd-linux-zen-6.12.10-initrd.efi init=/nix/store/vvx7d0nlayxld0cs9nhw6bgcdxybzfr7-nixos-system-NixOS-25.05.20250129.9d3ae80/init acpi_osi=Linux acpi=strict splash loglevel=3
[    0.294897] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.499866] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]
[    0.503776] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME PCIeCapability LTR]
[    0.551491] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    0.653886] hpet_acpi_add: no address or irqs in _CRS
[    4.056770] thinkpad_acpi: ThinkPad ACPI Extras v0.26
[    4.056776] thinkpad_acpi: http://ibm-acpi.sf.net/
[    4.056778] thinkpad_acpi: ThinkPad BIOS R0PET73W (1.50 ), EC R0PHT73W
[    4.056782] thinkpad_acpi: Lenovo ThinkPad E480, model 20KN003WUS
[    4.057243] thinkpad_acpi: radio switch found; radios are enabled
[    4.057782] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
[    4.057786] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
[    4.063259] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is blocked
[    4.461466] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
[    4.494431] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
[    4.597695] thinkpad_acpi: secondary fan control detected & enabled
[    4.617718] thinkpad_acpi: battery 1 registered (start 95, stop 100, behaviours: 0x7)
[    4.622664] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input12
[    7.704148] thinkpad_acpi: acpi_evalf(MMTS, dd, ...) failed: AE_OK

Given this is a thinkpad I assume you’re using fwupdmgr? Seems unlikely to be anything like flashing the wrong firmware then. Even if not, that’s quite hard to do these days, especially for lenovo; and if they made a mistake the internet would be filled with complaints, especially since that firmware is over a year old.

Have you tried booting a live CD with an older kernel, to see if the issue persists?

Have you tried flashing again, directly from BIOS, in case something was corrupted?

I didn’t find the UEFI Capsule Firmware Updates setting in my BIOS, I’ll try to rebuild the kernels tomorrow

q@NixOS:~/ > journalctl -b -p err
02 21:03:33 NixOS kernel: ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [TBF3] at bit offset/length 262144/32768 exceeds size of target Buffer (262144 bits) (20240827/dsopcode-198)
02 21:03:33 NixOS kernel: ACPI Error: Aborting method \_SB.PCI0.GFX0.GETB due to previous error (AE_AML_BUFFER_LIMIT) (20240827/psparse-529)
02 21:03:33 NixOS kernel: ACPI Error: Aborting method \_SB.PCI0.GFX0.ATRM due to previous error (AE_AML_BUFFER_LIMIT) (20240827/psparse-529)
02 21:03:33 NixOS kernel: [drm:amdgpu_get_bios [amdgpu]] *ERROR* failed to evaluate ATRM got AE_AML_BUFFER_LIMIT
q@NixOS:~/ > fwupdmgr get-upgrades
WARNING: UEFI capsule updates not available or enabled in firmware setup
See https://github.com/fwupd/fwupd/wiki/PluginFlag:capsules-unsupported for more information.
Devices with no available firmware updates: 
 • KXG50ZNV256G TOSHIBA
 • MZ7LN256HCHP-000L7
Devices with the latest available firmware version:
 • UEFI dbx
No updates available
q@NixOS:~/ > nix repl              
Nix 2.24.12
Type :? for help.
nix-repl> :l <nixpkgs>       
Added 23674 variables.

nix-repl> pkgs.linuxPackages
pkgs.linuxPackages                           pkgs.linuxPackages_6_10                      pkgs.linuxPackages_custom                    pkgs.linuxPackages_rpi4
pkgs.linuxPackages-libre                     pkgs.linuxPackages_6_11                      pkgs.linuxPackages_custom_tinyconfig_kernel  pkgs.linuxPackages_rt_5_10
pkgs.linuxPackages-rt                        pkgs.linuxPackages_6_11_hardened             pkgs.linuxPackages_hardened                  pkgs.linuxPackages_rt_5_15
pkgs.linuxPackages-rt_latest                 pkgs.linuxPackages_6_12                      pkgs.linuxPackages_latest                    pkgs.linuxPackages_rt_5_4
pkgs.linuxPackagesFor                        pkgs.linuxPackages_6_12_hardened             pkgs.linuxPackages_latest-libre              pkgs.linuxPackages_rt_6_1
pkgs.linuxPackages_4_14                      pkgs.linuxPackages_6_13                      pkgs.linuxPackages_latest_hardened           pkgs.linuxPackages_testing
pkgs.linuxPackages_4_19                      pkgs.linuxPackages_6_1_hardened              pkgs.linuxPackages_latest_xen_dom0           pkgs.linuxPackages_testing_bcachefs
pkgs.linuxPackages_5_10                      pkgs.linuxPackages_6_4                       pkgs.linuxPackages_latest_xen_dom0_hardened  pkgs.linuxPackages_xanmod
pkgs.linuxPackages_5_10_hardened             pkgs.linuxPackages_6_5                       pkgs.linuxPackages_lqx                       pkgs.linuxPackages_xanmod_latest
pkgs.linuxPackages_5_15                      pkgs.linuxPackages_6_6                       pkgs.linuxPackages_rpi0                      pkgs.linuxPackages_xanmod_stable
pkgs.linuxPackages_5_15_hardened             pkgs.linuxPackages_6_6_hardened              pkgs.linuxPackages_rpi02w                    pkgs.linuxPackages_xen_dom0
pkgs.linuxPackages_5_4                       pkgs.linuxPackages_6_7                       pkgs.linuxPackages_rpi1                      pkgs.linuxPackages_xen_dom0_hardened
pkgs.linuxPackages_5_4_hardened              pkgs.linuxPackages_6_8                       pkgs.linuxPackages_rpi2                      pkgs.linuxPackages_zen
pkgs.linuxPackages_6_1                       pkgs.linuxPackages_6_9                       pkgs.linuxPackages_rpi3
nix-repl>

I installed Windows from Lenovo Vantage to check for BIOS updates, I also checked via fwupd:

q@NixOS:~/ > fwupdmgr get-updates
Devices with no available firmware updates: 
 • KXG50ZNV256G TOSHIBA
 • MZ7LN256HCHP-000L7
 • System Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
No updatable devices
q@NixOS:~/ > fwupdmgr get-upgrades
Devices with no available firmware updates: 
 • KXG50ZNV256G TOSHIBA
 • MZ7LN256HCHP-000L7
 • System Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
No updatable devices

I recently bought this used laptop and maybe it is a battery incompatibility that was possibly replaced? I tried kernels 5 and 6 versions, I have no idea