BIOS bug: `_TZ.ETMD` missing in ACPI tables

When booting up Ubuntu 22.04 (kernel 5.15.0-25), I get the following error in the kernel log:

apr 18 13:22:25 dottie kernel: ACPI BIOS Error (bug): Could not resolve symbol [\_TZ.ETMD], AE_NOT_FOUND (20210730/psargs-330)
apr 18 13:22:25 dottie kernel: 
apr 18 13:22:25 dottie kernel: No Local Variables are initialized for Method [_OSC]
apr 18 13:22:25 dottie kernel: 
apr 18 13:22:25 dottie kernel: Initialized Arguments for Method [_OSC]:  (4 arguments defined for method invocation)
apr 18 13:22:25 dottie kernel:   Arg0:   00000000fb231197 <Obj>           Buffer(16) 5D A8 3B B2 B7 C8 42 35
apr 18 13:22:25 dottie kernel:   Arg1:   0000000025d9a193 <Obj>           Integer 0000000000000001
apr 18 13:22:25 dottie kernel:   Arg2:   0000000078b55545 <Obj>           Integer 0000000000000002
apr 18 13:22:25 dottie kernel:   Arg3:   00000000bf92f763 <Obj>           Buffer(8) 00 00 00 00 05 00 00 00
apr 18 13:22:25 dottie kernel: 
apr 18 13:22:25 dottie kernel: ACPI Error: Aborting method \_SB.IETM._OSC due to previous error (AE_NOT_FOUND) (20210730/psparse-529)

I think this indicates a bug in the ACPI tables (so BIOS?).

I wondered if this might be a bug in Linux instead, but looking at the ACPI tables themselves, it indeed seems like _TZ.ETMD is declared as external and (in the failing _SB.IETM._OSC method) written to, but never actually defined:

# acpidump > tables.dump
# acpixtract -a tables.dump
# iasl -d *.dat
# grep ETMD *.dsl
dsdt.dsl:    External (_TZ_.ETMD, IntObj)
ssdt2.dsl:    External (_TZ_.ETMD, IntObj)
ssdt2.dsl:                                \_TZ.ETMD = Zero
ssdt2.dsl:                                \_TZ.ETMD = One
ssdt2.dsl:                            \_TZ.ETMD = One

I am not entirely sure what the impact of this failure is. I could not find any documentation on this failing _SB.IETM object using the name or the INTC1040 _HID, but looking around the kernel code, it seems that this _HID loads the int3400_thermal.c driver, so it is some thermal-related thing. But looking at the code, it seems the failing _OSC method handles a UUID (b23ba85d-c8b7-3542-88de-8de2ffcfd698) that is not listed in the kernel driver, and I also cannot find the “IDSP” object that the kernel seems to use to detect which UUIDs are supported, so I’m not quite sure about any of this.

Any Framework devs or other users that can shed some light on this?

1 Like

It seems that this thermal driver does not do any control itself, but exposes /sys/devices/platform/INTC1040:00, where you can set the “current uuid” and then do some operations on it there. It seems thermald source explicitly lists this path as well, so probably uses this interface. The UUID (Arg0) listed in the error message is listed in the kernel as INT3400_THERMAL_CRITICAL (full UUID is 97C68AE7-15FA-499c-B8C9-5DA81D606E0A), but does not seem to be listed in thermald sources, so maybe there is some other userspace component that triggered this error.

Also, the UUID that is handled by the method in the ACPI table, is apparently a new UUID that will be supported from kernel 5.18 (or so) and onwards: [PATCH v2] thermal: int340x: Update OS policy capability — Linux Kernel

If I read this correctly, this ACPI method being broken mostly means that userspace cannot indicate to the firmware that it supports managing the thermal stuff, meaning the firmware would handle it (which may result in limited turbo performance, IIUC).

Everything still confirms that the ACPI table is broken, though.

1 Like

Hi, In my systemlog I see the same “ACPI BIOS Error (bug): Could not resolve symbol [_TZ.ETMD], AE_NOT_FOUND (20210730/psargs-330)”
I also see 3 times thermald “Unsupported condition 58 (UKNKNOWN)”.
Using Kubuntu 22.04 LTS
Can anybody help with this?
Thank you.

1 Like

Just installed a fresh PopOS 22 LTS (also ubuntu-based) after 21 and see the same error. For me it’s shown at the shutdown time.

I don’t know whether it’s related or not, but I hear fan more often on 22 compared to 21.

It’d be nice to hear from the Framework team on this matter

UPD: just upgraded to the latest BIOS 3.10 and can confirm that issue is still there

@ololobus @Matthijs_Kooijman were you able to fix the issue? Any tip to share?

I’ve got the exact same error, not sure what the impact is :wink:
I’m on 11th gen Intel, Ubuntu 22.04.1 latest patches (w/o TLP).
BIOS is factory-provided 3.07, hesitating to move to 3.10

1 Like

I haven’t looked into this issue any further. I am also unsure of the impact, there is nothing obviously broken in my daily workflow.

1 Like

Same for me, it’s still here, but I didn’t notice any problem that are clearly related to this error. It looks like some firmware issue, but I wonder why it never reproduced for me on PopOS / Ubuntu 21, only on 22

Agreed, ACPI error doesn’t seem to be a real issue.

Others are more a concern: (at every boot, the 5.15 kernel messages appearing, making the device look buggy)

Trying to find a way to fix or at least hide them. Do you have a trick?

I’m really glad I found you all. I was looking through dmesg after getting noticing this error shutting down my laptop. That started me on a path to considering a BIOS update after discovering I was three versions (3.07) behind the latest. Has anyone attempted to update? The disclaimer about having to rebuild EFI on a Debian based system has given me pause. I was wondering if anyone else has attempted the 3.10 update?

@retromat see above, 3.10 has been tried but does not fix this particular message.

Thank you. I read right past that update.

Did you have to rebuild EFI after the update?

If I recall correctly, I first reinstalled PopOS from 21 to 22 and had some problems with it, as I wanted to enable full-disk encryption + hibernation. So I spent quite some time to make it bootable. During the same time I did something with EFI.

But I updated BIOS to 3.10 after that and I don’t remember any problems. Yet, PopOS uses systemd-boot, which appeared to be really nice and handy.

I updated to 3.10 using LVFS today. The update was smooth but it did fail the first time I suspect due to my laptop being fully charged. There is a note in the documentation about letting it drain a few % and attempting the update again.

Hi guys. Have error similar to that. Debian 11, 5.19 kernel.
I guess it thermald polling non-existent sensors. In my case it wrote “sensor id 12 : No temp sysfs for reading raw temp”.
And error _tz.etmd appears I had run “systemctl start thermald.service” only.

Just FYI.