Project

General

Profile

Actions

Bug #623

open
HH

On T480/S, missing P-state data from ACPI tables prevents Xen from performing frequency scaling

Bug #623: On T480/S, missing P-state data from ACPI tables prevents Xen from performing frequency scaling

Added by herme herme about 1 month ago. Updated 17 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
01/16/2026
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
T480/S
Affected OS:
QubesOS

Description

Hello

Currently, P-state data is missing from ACPI tables on T480/S. On my T480S running libreboot, this was confirmed by using the iasl command to decompile the tables at /sys/firmware/acpi/tables/; grepping for _PSS, _PCT and _PPC didn't return any results. Another user has confirmed that this is also the case for the similar T480 device, with latest release build of libreboot (26.01 RC1).

Meanwhile, in the vendor T480S BIOS, this data is present (contributed by @henk on #coreboot IRC channel):

# grep -r -e _PCT -e _PPC -e _PSS *.dsl
DSDT.dsl:                        If (CondRefOf (\_PR.PR00._PPC))
DSDT.dsl:                        If ((CondRefOf (\_PR.PR00._PSS) && CondRefOf (\_PR.PR00._PPC)))
SSDT1.dsl:    External (_PR_.PR00._PSS, MethodObj)    // 0 Arguments
SSDT1.dsl:        Name (_PPC, Zero)  // _PPC: Performance Present Capabilities
SSDT1.dsl:            If (CondRefOf (\_PR.PR00._PSS))
SSDT1.dsl:        Method (_PSS, 0, NotSerialized)  // _PSS: Performance Supported States
SSDT1.dsl:            If (CondRefOf (\_PR.PR00._PSS))
SSDT1.dsl:                Return (\_PR.PR00._PSS ())
SSDT1.dsl:            If (CondRefOf (\_PR.PR00._PSS))
SSDT8.dsl:            If (CondRefOf (\_PR.PR00._PSS))

The Linux kernel doesn't rely on this data to perform frequency scaling, because native support is provided by the intel_pstate driver. However, the Xen kernel lacks this native support. When the data is missing, as in my case, the Xen-based QubesOS runs underclocked and is only barely usable.

HH Updated by herme herme about 1 month ago Actions #1

  • Description updated (diff)

IB Updated by Ivi Ballou 26 days ago · Edited Actions #2

herme herme wrote:

Hello

Currently, P-state data is missing from ACPI tables on T480/S. On my T480S running libreboot, this was confirmed by using the iasl command to decompile the tables at /sys/firmware/acpi/tables/; grepping for _PSS, _PCT and _PPC didn't return any results. Another user has confirmed that this is also the case for the similar T480 device, with latest release build of libreboot (26.01 RC1).

Meanwhile, in the vendor T480S BIOS, this data is present (contributed by @henk on #coreboot IRC channel):

# grep -r -e _PCT -e _PPC -e _PSS *.dsl
DSDT.dsl:                        If (CondRefOf (\_PR.PR00._PPC))
DSDT.dsl:                        If ((CondRefOf (\_PR.PR00._PSS) && CondRefOf (\_PR.PR00._PPC)))
SSDT1.dsl:    External (_PR_.PR00._PSS, MethodObj)    // 0 Arguments
SSDT1.dsl:        Name (_PPC, Zero)  // _PPC: Performance Present Capabilities
SSDT1.dsl:            If (CondRefOf (\_PR.PR00._PSS))
SSDT1.dsl:        Method (_PSS, 0, NotSerialized)  // _PSS: Performance Supported States
SSDT1.dsl:            If (CondRefOf (\_PR.PR00._PSS))
SSDT1.dsl:                Return (\_PR.PR00._PSS ())
SSDT1.dsl:            If (CondRefOf (\_PR.PR00._PSS))
SSDT8.dsl:            If (CondRefOf (\_PR.PR00._PSS))

The Linux kernel doesn't rely on this data to perform frequency scaling, because native support is provided by the intel_pstate driver. However, the Xen kernel lacks this native support. When the data is missing, as in my case, the Xen-based QubesOS runs underclocked and is only barely usable.

Hi!

Could you include the entire .dsl files? I might be able to add the missing entries, but I'd need to know what the vendor BIOS does. Thanks :)

PR Updated by Patrick Rudolph 26 days ago Actions #3

Set register "eist_enable" = "true" in devicetree.cb?

HH Updated by herme herme 18 days ago · Edited Actions #4

Hi Ivi, many thanks for taking an interest in this issue! I was able to obtain the following:

There is some variation across T480/S models (e.g several different CPU models and dozens of device models). I didn't know if this makes a difference, which is why I tried to include more than one source (but my guess is if the motherboard is the same, then it shouldn't matter). Please let me know in case you think additional dumps might be useful and I'll try to find more volunteers.

Actions

Also available in: PDF Atom