Browse Source

Platform/Sgi: Fix ACPI Low Power Idle states for RD-N2

RD-N2 platform supports only the platform co-ordinated LPI. So fix the
LPI Level ID value accordingly.

Additionally, as this platform does not support residency counter, clear
the residency counter frequency from _LPI object's control method. As
the cpus are directly connected to the interconnect on this platform,
remove the cluster _LPI control method as well.

Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Thomas Abraham <thomas.abraham@arm.com>
Pranav Madhu 2 years ago
parent
commit
aab1521c03
1 changed files with 4 additions and 74 deletions
  1. 4 74
      Platform/ARM/SgiPkg/AcpiTables/RdN2/Dsdt.asl

+ 4 - 74
Platform/ARM/SgiPkg/AcpiTables/RdN2/Dsdt.asl

@@ -62,38 +62,16 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
       Return (Arg3)
     }
 
-    Name (CLPI, Package () {  /* LPI for Cluster, support 1 LPI state */
-      0,                      // Version
-      0,                      // Level Index
-      1,                      // Count
-      Package () {            // Power Gating state for Cluster
-        2500,                 // Min residency (uS)
-        1150,                 // Wake latency (uS)
-        1,                    // Flags
-        1,                    // Arch Context Flags
-        100,                  // Residency Counter Frequency
-        0,                    // No Parent State
-        0x00000020,           // Integer Entry method
-        ResourceTemplate () { // Null Residency Counter
-          Register (SystemMemory, 0, 0, 0, 0)
-        },
-        ResourceTemplate () { // Null Usage Counter
-          Register (SystemMemory, 0, 0, 0, 0)
-        },
-        "LPI2-Cluster"
-      },
-    })
-
     Name (PLPI, Package () {  /* LPI for Processor, support 2 LPI states */
       0,                      // Version
-      1,                      // Level Index
+      0,                      // Level Index
       2,                      // Count
       Package () {            // WFI for CPU
         1,                    // Min residency (uS)
         1,                    // Wake latency (uS)
         1,                    // Flags
         0,                    // Arch Context lost Flags (no loss)
-        100,                  // Residency Counter Frequency
+        0,                    // Residency Counter Frequency
         0,                    // No parent state
         ResourceTemplate () { // Register Entry method
           Register (FFixedHW,
@@ -116,8 +94,8 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
         350,                  // Wake latency (uS)
         1,                    // Flags
         1,                    // Arch Context lost Flags (Core context lost)
-        100,                  // Residency Counter Frequency
-        1,                    // Parent node can be in any shallower state
+        0,                    // Residency Counter Frequency
+        0,                    // No parent state
         ResourceTemplate () { // Register Entry method
           Register (FFixedHW,
             32,               // Bit Width
@@ -139,9 +117,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL00) {   // Cluster 0
       Name (_HID, "ACPI0010")
       Name (_UID, 0)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP00) { // Neoverse N2 core 0
         Name (_HID, "ACPI0007")
@@ -166,9 +141,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL01) {   // Cluster 1
       Name (_HID, "ACPI0010")
       Name (_UID, 1)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP01) { // Neoverse N2 core 1
         Name (_HID, "ACPI0007")
@@ -193,9 +165,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL02) {   // Cluster 2
       Name (_HID, "ACPI0010")
       Name (_UID, 2)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP02) { // Neoverse N2 core 2
         Name (_HID, "ACPI0007")
@@ -220,9 +189,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL03) {   // Cluster 3
       Name (_HID, "ACPI0010")
       Name (_UID, 3)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP03) { // Neoverse N2 core 3
         Name (_HID, "ACPI0007")
@@ -247,9 +213,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL04) {   // Cluster 4
       Name (_HID, "ACPI0010")
       Name (_UID, 4)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP04) { // Neoverse N2 core 4
         Name (_HID, "ACPI0007")
@@ -274,9 +237,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL05) {   // Cluster 5
       Name (_HID, "ACPI0010")
       Name (_UID, 5)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP05) { // Neoverse N2 core 5
         Name (_HID, "ACPI0007")
@@ -301,9 +261,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL06) {   // Cluster 6
       Name (_HID, "ACPI0010")
       Name (_UID, 6)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP06) { // Neoverse N2 core 6
         Name (_HID, "ACPI0007")
@@ -328,9 +285,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL07) {   // Cluster 7
       Name (_HID, "ACPI0010")
       Name (_UID, 7)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP07) { // Neoverse N2 core 7
         Name (_HID, "ACPI0007")
@@ -355,9 +309,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL08) {   // Cluster 8
       Name (_HID, "ACPI0010")
       Name (_UID, 8)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP08) { // Neoverse N2 core 8
         Name (_HID, "ACPI0007")
@@ -382,9 +333,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL09) {   // Cluster 9
       Name (_HID, "ACPI0010")
       Name (_UID, 9)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP09) { // Neoverse N2 core 9
         Name (_HID, "ACPI0007")
@@ -409,9 +357,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL10) {   // Cluster 10
       Name (_HID, "ACPI0010")
       Name (_UID, 10)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP10) { // Neoverse N2 core 10
         Name (_HID, "ACPI0007")
@@ -436,9 +381,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL11) {   // Cluster 11
       Name (_HID, "ACPI0010")
       Name (_UID, 11)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP11) { // Neoverse N2 core 11
         Name (_HID, "ACPI0007")
@@ -463,9 +405,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL12) {   // Cluster 12
       Name (_HID, "ACPI0010")
       Name (_UID, 12)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP12) { // Neoverse N2 core 12
         Name (_HID, "ACPI0007")
@@ -490,9 +429,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL13) {   // Cluster 13
       Name (_HID, "ACPI0010")
       Name (_UID, 13)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP13) { // Neoverse N2 core 13
         Name (_HID, "ACPI0007")
@@ -517,9 +453,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL14) {   // Cluster 14
       Name (_HID, "ACPI0010")
       Name (_UID, 14)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP14) { // Neoverse N2 core 14
         Name (_HID, "ACPI0007")
@@ -544,9 +477,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 2, "ARMLTD", "ARMSGI",
     Device (CL15) {   // Cluster 15
       Name (_HID, "ACPI0010")
       Name (_UID, 15)
-      Method (_LPI, 0, NotSerialized) {
-        Return (\_SB.CLPI)
-      }
 
       Device (CP15) { // Neoverse N2 core 15
         Name (_HID, "ACPI0007")