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)
Apr 5 2024, 2:52 PM
Unknown Object (File)
Jan 13 2024, 4:15 AM
Unknown Object (File)
Dec 22 2023, 10:48 PM
Unknown Object (File)
Dec 14 2023, 6:44 PM
Unknown Object (File)
Oct 27 2023, 10:06 PM
Unknown Object (File)
Aug 30 2023, 7:02 AM
Unknown Object (File)
Jul 13 2023, 9:53 PM
Unknown Object (File)
Jul 9 2023, 11:24 AM
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.