This is the proto ASL code for CPU topology support. In the code, I not sure about the parking_version, performance_interrupt, parked_address and base_address value of the _MAT Method return buffer.
Comments are welcomed!
Signed-off-by: Hanjun Guo hanjun.guo@linaro.org --- arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl | 106 +++++++++++++++++++- 1 file changed, 104 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl index 0ae1b12..cab32db 100644 --- a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl +++ b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl @@ -14,14 +14,116 @@ DefinitionBlock ( "ARNDALE ", // table ID 0x00000001) // OEM revision { + /* Scope (_PR) { Processor (CPU0, 0x01, 0x00000410, 0x06) {} Processor (CPU1, 0x02, 0x00000410, 0x06) {} } + */
Scope (_SB) { - } -} + Device (SCK0) + { + Name (_HID, "ACPI0004") + Name (_UID, 0x00) + Method (_STA, 0, NotSerialized) + { + Return (0x0F) + } + + Device (PRC0) + { + Name (_HID, "ACPI0007") + Name (_UID, 0x00) + + /* CPU0 will be always present */ + Method (_STA, 0, NotSerialized) + { + Return (0x0F) + } + + Name (MAT0, Buffer (0x28) + { + /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* type, len, reserved, gic_id */ + /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* uid, flags */ + /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parking_version, performance_interrupt */ + /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parked_address */ + /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* base_address */ + }) + + Name (MAT1, Buffer (0x28) + { + /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }) + + Method (_MAT, 0, NotSerialized) + { + If (_STA()) + { + Return (MAT0) + } + Else + { + Return (MAT1) + } + } + } + + Device (PRC1) + { + Name (_HID, "ACPI0007") + Name (_UID, 0x01)
+ Name (STA1, 0x0F) + Method (_STA, 0, NotSerialized) + { + Return (STA1) + } + + Method (_EJ0, 1, NotSerialized) + { + If (LEqual (STA1, 0x0F)) + { + Store (0x00, STA1) + } + } + + Name (MAT0, Buffer (0x28) + { + /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* type, len, reserved, gic_id */ + /* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, /* uid, flags */ + /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parking_version, performance_interrupt */ + /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parked_address */ + /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* base_address */ + }) + + Name (MAT1, Buffer (0x28) + { + /* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + /* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }) + + Method (_CRS, 0, NotSerialized) + { + If (LEqual (STA1, 0x0F)) + { + Return (MAT0) + } + Else + { + Return (MAT1) + } + } + } + } +} +}
On 2013-6-3 21:50, Hanjun Guo wrote:
This is the proto ASL code for CPU topology support. In the code, I not sure about the parking_version, performance_interrupt, parked_address and base_address value of the _MAT Method return buffer.
Comments are welcomed!
Signed-off-by: Hanjun Guo hanjun.guo@linaro.org
arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl | 106 +++++++++++++++++++- 1 file changed, 104 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl index 0ae1b12..cab32db 100644 --- a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl +++ b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl @@ -14,14 +14,116 @@ DefinitionBlock ( "ARNDALE ", // table ID 0x00000001) // OEM revision {
- /* Scope (_PR) { Processor (CPU0, 0x01, 0x00000410, 0x06) {} Processor (CPU1, 0x02, 0x00000410, 0x06) {} }
- */
Scope (_SB) {
- }
-}
- Device (SCK0)
- {
Name (_HID, "ACPI0004")
Name (_UID, 0x00)
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Device (PRC0)
{
Name (_HID, "ACPI0007")
Name (_UID, 0x00)
/* CPU0 will be always present */
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Name (MAT0, Buffer (0x28)
{
/* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* type, len, reserved, gic_id */
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* uid, flags */
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parking_version, performance_interrupt */
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parked_address */
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* base_address */
})
Name (MAT1, Buffer (0x28)
{
/* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Method (_MAT, 0, NotSerialized)
{
If (_STA())
{
Return (MAT0)
}
Else
{
Return (MAT1)
}
}
}
Device (PRC1)
{
Name (_HID, "ACPI0007")
Name (_UID, 0x01)
Name (STA1, 0x0F)
Method (_STA, 0, NotSerialized)
{
Return (STA1)
}
Method (_EJ0, 1, NotSerialized)
{
If (LEqual (STA1, 0x0F))
{
Store (0x00, STA1)
}
}
Name (MAT0, Buffer (0x28)
{
/* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, /* type, len, reserved, gic_id */
/* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, /* uid, flags */
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parking_version, performance_interrupt */
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* parked_address */
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* base_address */
})
Name (MAT1, Buffer (0x28)
{
/* 0000 */ 0x0B, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
/* 0008 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0018 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0020 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
})
Method (_CRS, 0, NotSerialized)
Ah, typo, _CRS should be _MAT. I will fix it and resend this patch .
{
If (LEqual (STA1, 0x0F))
{
Return (MAT0)
}
Else
{
Return (MAT1)
}
}
}
- }
+} +}
On 06/03/2013 07:50 AM, Hanjun Guo wrote:
This is the proto ASL code for CPU topology support. In the code, I not sure about the parking_version, performance_interrupt, parked_address and base_address value of the _MAT Method return buffer.
Comments are welcomed!
Signed-off-by: Hanjun Guo hanjun.guo@linaro.org
arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl | 106 +++++++++++++++++++- 1 file changed, 104 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl index 0ae1b12..cab32db 100644 --- a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl +++ b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl @@ -14,14 +14,116 @@ DefinitionBlock ( "ARNDALE ", // table ID 0x00000001) // OEM revision {
- /* Scope (_PR) { Processor (CPU0, 0x01, 0x00000410, 0x06) {} Processor (CPU1, 0x02, 0x00000410, 0x06) {} }
- */
In the interest of cleanliness, the above can just be removed instead of being commented out. It was only added to ensure that the DSDT would be non-empty; it is not correct, and definitely not very useful.