Page MenuHomeFreeBSD

Implement ACPI CPU support when Processor object is not present
ClosedPublic

Authored by cem on Dec 12 2017, 12:25 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Oct 2, 4:52 AM
Unknown Object (File)
Tue, Sep 30, 3:38 AM
Unknown Object (File)
Mon, Sep 22, 11:44 PM
Unknown Object (File)
Sep 14 2025, 4:07 PM
Unknown Object (File)
Sep 8 2025, 1:41 PM
Unknown Object (File)
Aug 19 2025, 6:55 AM
Unknown Object (File)
Aug 1 2025, 2:55 PM
Unknown Object (File)
Jul 28 2025, 8:43 PM
Subscribers

Details

Summary

By standard (ACPI 5 chapter 8.4 Declaring Processors) Processors can be
implemented in 2 distinct ways:

  • Through a Processor object type (which provides P_BLK)
  • Through a Device object type

Right now FreeBSD driver only supports the former, while AMD Epyc/Poweredge so
far both implement the latter. Add the missing support.

Because P_BLK is not defined in the device object case, C-states entering must
be completely controlled via _CST methods rather than P_LVL2/3.

Submitted by: Attilio

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Looks ok to me, but I'm relatively unfamiliar with this code and with ACPI in general.

This revision is now accepted and ready to land.Dec 12 2017, 2:50 PM
rang_acm.org added a subscriber: rang_acm.org.

Looks correct to me per the spec.

@jhb , @jkim : Any objection? Are you planning on reviewing in the next few days, or should I go ahead and commit this?

This looks good to me. As far as the commit log, ACPI 6.0 formally deprecates the Processor keyword, so eventually processors will only be enumerated as Device() objects.

This revision was automatically updated to reflect the committed changes.