C. Appendix C: Deprecated Content

This section lists content (if any) that is being deprecated from the ACPI specification in this release.


Section 8.4: Declaring Processors

In the first paragraph of this section, removed the following text:

Declaration of processors in the \_PR scope was only required for platforms desiring compatibility with ACPI 1.0-based OSPM implementations. It is deprecated for all other uses. Processors are declared via the ASL Device statement. Declarations via the ASL Processor statement are deprecated.


Section 9.4: Battery Device

A battery device is required to either have an ACPI Smart Battery Table or a Control Method Battery interface. In the case of an ACPI Smart Battery Table, the Definition Block needs to include a Bus/Device Package for the SMBus host controller. This will install an OS specific driver for the SMBus, which in turn will locate the Smart Battery System Manager or Smart Battery Selector and Smart Battery Charger SMBus devices.

The Control Method Battery interface is defined in Section 10.2.


Section 9.7: Embedded Controller Device

Operation of the embedded controller host controller register interface requires that the embedded controller driver has ACPI-specific knowledge. Specifically, the driver needs to provide an “operational region” of its embedded controller address space, and needs to use an ACPI event to service the host controller interface. For more information, see Section 12.

The embedded controller device object provides the _HID of an ACPI-integrated embedded controller device of PNP0C09 and the host controller register locations using the device standard methods. In addition, the embedded controller must be declared as a named device object that includes a set of control methods. For more information, see Section 12.11.


Section 8.4.1 _PDC (Processor Driver Capabilities)

The use of _PDC is deprecated in ACPI 3.0 in favor of _OSC. For backwards compatibility, _PDC may be implemented using _OSC as follows:

Method(_PDC,1)
{
   CreateDWordField (Arg0, 0, REVS)
   CreateDWordField (Arg0, 4, SIZE)

   //
   // Local0 = Number of bytes for Arg0
   //
   Store (SizeOf (Arg0), Local0)

   //
   // Local1 = Number of Capabilities bytes in Arg0
   //
   Store (Subtract (Local0, 8), Local1)

   //
   // TEMP = Temporary field holding Capability DWORDs
   //
   CreateField (Arg0, 64, Multiply (Local1, 8), TEMP)

   //
   // Create the Status (STS0) buffer with the first DWORD = 0
   // This is required to return errors defined by \_OSC.
   //
   Name (STS0, Buffer () {0x00, 0x00, 0x00, 0x00})

   //
   // Concatenate the \_PDC capabilities bytes to the STS0 Buffer
   // and store them in a local variable for calling OSC
   //
   Concatenate (STS0, TEMP, Local2)

   //
   // Note: The UUID passed into \_OSC is CPU vendor specific. Consult CPU
   // vendor documentation for UUID and Capabilities Buffer bit
   definitions
   //
   \_OSC (ToUUID("4077A616-290C-47BE-9EBD-D87058713953"), REVS, SIZE,
   Local2)
}

_OSC (Operating System Capabilities) describes the _OSC object that can be used to convey processor related OSPM capabilities to the platform. Consult vendor-specific CPU documentation for the UUID and Capabilities Buffer bit definitions used by _OSC for a specific processor.