+++ /dev/null
-/** @file\r
-CPU T-state control methods\r
-\r
-Copyright (c) 2013-2015 Intel Corporation.\r
-\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-DefinitionBlock (\r
- "CPU0TST.aml",\r
- "SSDT",\r
- 0x01,\r
- "SsgPmm",\r
- "Cpu0Tst",\r
- 0x0013\r
- )\r
-{\r
- External (PDC0, IntObj)\r
- External (CFGD, FieldUnitObj)\r
- External(\_PR.CPU0, DeviceObj)\r
- External(_PSS)\r
-\r
- Scope(\_PR.CPU0)\r
- {\r
- Method(_TPC,0)\r
- {\r
- Return(ZERO) // Return All States Available.\r
- }\r
-\r
- Name(TPTC, ResourceTemplate()\r
- {\r
- Memory32Fixed(ReadOnly, 0, 0, FIX1) // IO APIC\r
- })\r
-\r
- //\r
- // If OSPM is capable of direct access to on demand throttling MSR,\r
- // we use MSR method;otherwise we use IO method.\r
- //\r
- //\r
- // PDCx[2] = Indicates whether OSPM is capable of direct access to\r
- // on demand throttling MSR.\r
- //\r
- Method(_PTC, 0)\r
- {\r
- If(And(PDC0, 0x0004))\r
- {\r
- Return(Package() // MSR Method\r
- {\r
- ResourceTemplate(){Register(FFixedHW, 0, 0, 0)},\r
- ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}\r
- }\r
- )\r
- }\r
- Return(Package() // IO Method\r
- {\r
- //\r
- // PM IO base ("PMBALVL0" will be updated at runtime)\r
- //\r
- ResourceTemplate(){Register(SystemIO, 4, 1, 0x304C564C41424D50)},\r
- ResourceTemplate(){Register(SystemIO, 4, 1, 0x304C564C41424D50)}\r
- }\r
- )\r
- }\r
-\r
- //\r
- // _TSS returned package for IO Method\r
- //\r
- Name(TSSI, Package()\r
- {\r
- Package(){100, 1000, 0, 0x00, 0}\r
- }\r
- )\r
- //\r
- // _TSS returned package for MSR Method\r
- //\r
- Name(TSSM, Package()\r
- {\r
- Package(){100, 1000, 0, 0x00, 0}\r
- }\r
- )\r
-\r
- Method(_TSS, 0)\r
- {\r
- //\r
- // If OSPM is capable of direct access to on demand throttling MSR,\r
- // we report TSSM;otherwise report TSSI.\r
- //\r
- If(And(PDC0, 0x0004))\r
- {\r
- Return(TSSM)\r
- }\r
- Return(TSSI)\r
- }\r
-\r
- Method(_TSD, 0)\r
- {\r
- //\r
- // If CMP is suppored, we report the dependency with two processors\r
- //\r
- If(LAnd(And(CFGD, 0x1000000), LNot(And(PDC0, 4))))\r
- {\r
- Return(Package()\r
- {\r
- Package()\r
- {\r
- 5, // # entries.\r
- 0, // Revision.\r
- 0, // Domain #.\r
- 0xFD, // Coord Type- SW_ANY\r
- 2 // # processors.\r
- }\r
- }\r
- )\r
- }\r
- //\r
- // Otherwise, we report the dependency with one processor\r
- //\r
- Return(Package()\r
- {\r
- Package()\r
- {\r
- 5, // # entries.\r
- 0, // Revision.\r
- 0, // Domain #.\r
- 0xFC, // Coord Type- SW_ALL\r
- 1 // # processors.\r
- }\r
- }\r
- )\r
- }\r
- }\r
-}\r