Hi Hanjun,
I think the patch I just sent out should correct your reported issues, sorry for the mistake.
Graeme
On 02/07/13 13:53, Hanjun Guo wrote:
On 2013-6-25 22:38, Graeme Gregory wrote:
From: Graeme Gregory graeme.gregory@linaro.org
This is the proto ASL code for CPU topology support, based on the CPU topology of one phsical CPU and two cpu cores.
According to ACPI 5.0, _MAT should return GIC type of MADT entry, but I not sure about the parking_version, performance_interrupt, parked_address and base_address value of the _MAT method return buffer, if anyone give me some hints, that would be helpful.
Comments are welcomed!
Signed-off-by: Hanjun Guo hanjun.guo@linaro.org Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl | 102 ++++++++++++++++++++ 1 file changed, 102 insertions(+)
diff --git a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl index 67b1b42..c67aeec 100644 --- a/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl +++ b/arch/arm/boot/asl/exynos5250-arndale.acpi/dsdt.asl @@ -52,4 +52,106 @@ DefinitionBlock ( } } }
Hi Graeme,
Scope (_PR) should be deleted, because Each processor in the system must be declared in the ACPI namespace in either the _SB or _PR scope but not both,
Since we declared ACPI0007 processor device, processors in _PR are not needed.
- Device (SCK0)
Device (SCK0) should be in the Scope (_SB), right?
Sorry for the late review and reply, should I make a patch for this?
Thanks Hanjun
- {
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 (_MAT, 0, NotSerialized)
{
If (_STA())
{
Return (MAT0)
}
Else
{
Return (MAT1)
}
}
}
- }
}