summaryrefslogtreecommitdiff
path: root/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/DSDT.ASL
blob: 49b018c53626467f6068d7049a0fe813a090d573 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/** @file
  ACPI DSDT table

  Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>

  This program and the accompanying materials
  are licensed and made available under the terms and conditions of the BSD License
  which accompanies this distribution.  The full text of the license may be found at
  http://opensource.org/licenses/bsd-license.php.

  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

DefinitionBlock (
  "DSDT.aml",
  "DSDT",
  0x02,       // DSDT revision.
              // A Revision field value greater than or equal to 2 signifies that integers
              // Declared within the Definition Block are to be evaluated as 64-bit values
  "INTEL",    // OEM ID (6 byte string)
  "BXT-SOC",  // OEM table ID  (8 byte string)
  0x0         // OEM version of DSDT table (4 byte Integer)
  )

{
  External(\_SB.PCI0.GFX0, DeviceObj)
// Miscellaneous services enabled in Project
  include ("token.asl")
  Include ("AMLUPD.asl")
  include ("GloblNvs.asl")
  include ("PciTree.asl")
  include ("Sc.asl")
  include ("LpcB.asl")
  include ("Bxt.asl")
  include ("CPU.asl")
  include ("Platform.asl")
  include ("THERMAL.ASL")
  include ("PCI_DRC.ASL")
  include ("Video.asl")
  Include ("PcieRpPxsxWrapper.asl")
  include ("Pep/Pep.asl")
  include ("Gpe.asl") //Need this for xHCI D3 wake flow.

  if (LEqual(ECR1,1)) {
    Scope(\_SB.PCI0) {
      //
      // PCI-specific method's GUID
      //
      Name(PCIG, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))
      Method(PCID, 4, Serialized) {
        If (LEqual(Arg0, PCIG)) {         // PCIE capabilities UUID
          If (LGreaterEqual(Arg1,3)) {                                              // revision at least 3
            If (LEqual(Arg2,0)) { Return (Buffer(2){0x01,0x03}) }                   // function 0: list of supported functions
            If (LEqual(Arg2,8)) { Return (1) }                                      // function 8: Avoiding Power-On Reset Delay Duplication on Sx Resume
            If (LEqual(Arg2,9)) { Return (Package(5){50000,Ones,Ones,50000,Ones}) } // function 9: Specifying Device Readiness Durations
          }
        }
        return (Buffer(1){0})
      }
    } //scope
  } //if

  Scope(\_SB.PCI0) {
    //PciCheck, Arg0=UUID, returns true if support for 'PCI delays optimization ECR' is enabled and the UUID is correct
    Method(PCIC,1,Serialized) {
      If (LEqual(ECR1,1)) {
        If (LEqual(Arg0, PCIG)) {
          return (1)
        }
      }
      return (0)
    }
  }

// Sleep states supported by Chipset/Board.
//----------------------------------------------------------------------
// SSx - BIOS setup controlled enabled _Sx Sleep state status
// Values to be written to SLP_TYPE register are provided by SBACPI.SDL (South Bridge ACPI ModulePart)

  Name(\_S0, Package(4) {0x0,0x0,0,0}) // mandatory System state
  if (SS1) {Name(\_S1, Package(4) {0x1,0x0,0,0})}
  if (SS3) {Name(\_S3, Package(4) {0x5,0x0,0,0})}
  if (SS4) {Name(\_S4, Package(4) {0x6,0x0,0,0})}
  Name(\_S5, Package(4) {0x7,0x0,0,0}) // mandatory System state

  Method(PTS, 1) {        // METHOD CALLED FROM _PTS PRIOR TO ENTER ANY SLEEP STATE
    If (Arg0) {
    // entering any sleep state
    }
  }
  Method(WAK, 1) {        // METHOD CALLED FROM _WAK RIGHT AFTER WAKE UP
  }
}// End of ASL File