acpi: Generate valid ACPI processor objects
The existing code generated invalid ACPI processor objects if the core number was greater than 9. The first invalid object instance was autocorrected by Linux, but subsequent instances conflicted with each other, leading to a failure to boot if more than 10 CPU cores were installed. The modified code will function with up to 99 cores. Change-Id: I62dc0eb61ae2e2b7f7dcf30e9c7de09cd901a81c Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com> Reviewed-on: http://review.coreboot.org/8422 Tested-by: build bot (Jenkins) Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-by: Marc Jones <marc.jones@se-eng.com>
This commit is contained in:
parent
4f731f2eab
commit
033bb4bc8d
|
@ -293,7 +293,7 @@ int acpigen_write_processor(u8 cpuindex, u32 pblock_addr, u8 pblock_len)
|
||||||
len = acpigen_write_len_f();
|
len = acpigen_write_len_f();
|
||||||
|
|
||||||
snprintf(pscope, sizeof (pscope),
|
snprintf(pscope, sizeof (pscope),
|
||||||
"\\_PR.CPU%x", (unsigned int) cpuindex);
|
"\\_PR.CP%02d", (unsigned int) cpuindex);
|
||||||
len += acpigen_emit_namestring(pscope);
|
len += acpigen_emit_namestring(pscope);
|
||||||
acpigen_emit_byte(cpuindex);
|
acpigen_emit_byte(cpuindex);
|
||||||
acpigen_emit_byte(pblock_addr & 0xff);
|
acpigen_emit_byte(pblock_addr & 0xff);
|
||||||
|
|
|
@ -20,31 +20,31 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These devices are created at runtime */
|
/* These devices are created at runtime */
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
External (\_PR.CPU2, DeviceObj)
|
External (\_PR.CP02, DeviceObj)
|
||||||
External (\_PR.CPU3, DeviceObj)
|
External (\_PR.CP03, DeviceObj)
|
||||||
External (\_PR.CPU4, DeviceObj)
|
External (\_PR.CP04, DeviceObj)
|
||||||
External (\_PR.CPU5, DeviceObj)
|
External (\_PR.CP05, DeviceObj)
|
||||||
External (\_PR.CPU6, DeviceObj)
|
External (\_PR.CP06, DeviceObj)
|
||||||
External (\_PR.CPU7, DeviceObj)
|
External (\_PR.CP07, DeviceObj)
|
||||||
|
|
||||||
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x81) // _CST
|
Notify (\_PR.CP00, 0x81) // _CST
|
||||||
Notify (\_PR.CPU1, 0x81) // _CST
|
Notify (\_PR.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x81) // _CST
|
Notify (\_PR.CP02, 0x81) // _CST
|
||||||
Notify (\_PR.CPU3, 0x81) // _CST
|
Notify (\_PR.CP03, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x81) // _CST
|
Notify (\_PR.CP04, 0x81) // _CST
|
||||||
Notify (\_PR.CPU5, 0x81) // _CST
|
Notify (\_PR.CP05, 0x81) // _CST
|
||||||
Notify (\_PR.CPU6, 0x81) // _CST
|
Notify (\_PR.CP06, 0x81) // _CST
|
||||||
Notify (\_PR.CPU7, 0x81) // _CST
|
Notify (\_PR.CP07, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,18 +52,18 @@ Method (PNOT)
|
||||||
Method (PPCN)
|
Method (PPCN)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x80) // _PPC
|
Notify (\_PR.CP00, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU1, 0x80) // _PPC
|
Notify (\_PR.CP01, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x80) // _PPC
|
Notify (\_PR.CP02, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU3, 0x80) // _PPC
|
Notify (\_PR.CP03, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x80) // _PPC
|
Notify (\_PR.CP04, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU5, 0x80) // _PPC
|
Notify (\_PR.CP05, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU6, 0x80) // _PPC
|
Notify (\_PR.CP06, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU7, 0x80) // _PPC
|
Notify (\_PR.CP07, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,18 +71,18 @@ Method (PPCN)
|
||||||
Method (TNOT)
|
Method (TNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x82) // _TPC
|
Notify (\_PR.CP00, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU1, 0x82) // _TPC
|
Notify (\_PR.CP01, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x82) // _TPC
|
Notify (\_PR.CP02, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU3, 0x82) // _TPC
|
Notify (\_PR.CP03, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x82) // _TPC
|
Notify (\_PR.CP04, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU5, 0x82) // _TPC
|
Notify (\_PR.CP05, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU6, 0x82) // _TPC
|
Notify (\_PR.CP06, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU7, 0x82) // _TPC
|
Notify (\_PR.CP07, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,13 +90,13 @@ Method (TNOT)
|
||||||
Method (PPKG)
|
Method (PPKG)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3,
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03,
|
||||||
\_PR.CPU4, \_PR.CPU5, \_PR.CPU6, \_PR.CPU7})
|
\_PR.CP04, \_PR.CP05, \_PR.CP06, \_PR.CP07})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3})
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,31 +20,31 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These devices are created at runtime */
|
/* These devices are created at runtime */
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
External (\_PR.CPU2, DeviceObj)
|
External (\_PR.CP02, DeviceObj)
|
||||||
External (\_PR.CPU3, DeviceObj)
|
External (\_PR.CP03, DeviceObj)
|
||||||
External (\_PR.CPU4, DeviceObj)
|
External (\_PR.CP04, DeviceObj)
|
||||||
External (\_PR.CPU5, DeviceObj)
|
External (\_PR.CP05, DeviceObj)
|
||||||
External (\_PR.CPU6, DeviceObj)
|
External (\_PR.CP06, DeviceObj)
|
||||||
External (\_PR.CPU7, DeviceObj)
|
External (\_PR.CP07, DeviceObj)
|
||||||
|
|
||||||
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x81) // _CST
|
Notify (\_PR.CP00, 0x81) // _CST
|
||||||
Notify (\_PR.CPU1, 0x81) // _CST
|
Notify (\_PR.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x81) // _CST
|
Notify (\_PR.CP02, 0x81) // _CST
|
||||||
Notify (\_PR.CPU3, 0x81) // _CST
|
Notify (\_PR.CP03, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x81) // _CST
|
Notify (\_PR.CP04, 0x81) // _CST
|
||||||
Notify (\_PR.CPU5, 0x81) // _CST
|
Notify (\_PR.CP05, 0x81) // _CST
|
||||||
Notify (\_PR.CPU6, 0x81) // _CST
|
Notify (\_PR.CP06, 0x81) // _CST
|
||||||
Notify (\_PR.CPU7, 0x81) // _CST
|
Notify (\_PR.CP07, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,18 +52,18 @@ Method (PNOT)
|
||||||
Method (PPCN)
|
Method (PPCN)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x80) // _PPC
|
Notify (\_PR.CP00, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU1, 0x80) // _PPC
|
Notify (\_PR.CP01, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x80) // _PPC
|
Notify (\_PR.CP02, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU3, 0x80) // _PPC
|
Notify (\_PR.CP03, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x80) // _PPC
|
Notify (\_PR.CP04, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU5, 0x80) // _PPC
|
Notify (\_PR.CP05, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU6, 0x80) // _PPC
|
Notify (\_PR.CP06, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU7, 0x80) // _PPC
|
Notify (\_PR.CP07, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,18 +71,18 @@ Method (PPCN)
|
||||||
Method (TNOT)
|
Method (TNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x82) // _TPC
|
Notify (\_PR.CP00, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU1, 0x82) // _TPC
|
Notify (\_PR.CP01, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x82) // _TPC
|
Notify (\_PR.CP02, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU3, 0x82) // _TPC
|
Notify (\_PR.CP03, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x82) // _TPC
|
Notify (\_PR.CP04, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU5, 0x82) // _TPC
|
Notify (\_PR.CP05, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU6, 0x82) // _TPC
|
Notify (\_PR.CP06, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU7, 0x82) // _TPC
|
Notify (\_PR.CP07, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,13 +90,13 @@ Method (TNOT)
|
||||||
Method (PPKG)
|
Method (PPKG)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3,
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03,
|
||||||
\_PR.CPU4, \_PR.CPU5, \_PR.CPU6, \_PR.CPU7})
|
\_PR.CP04, \_PR.CP05, \_PR.CP06, \_PR.CP07})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3})
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,31 +20,31 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These devices are created at runtime */
|
/* These devices are created at runtime */
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
External (\_PR.CPU2, DeviceObj)
|
External (\_PR.CP02, DeviceObj)
|
||||||
External (\_PR.CPU3, DeviceObj)
|
External (\_PR.CP03, DeviceObj)
|
||||||
External (\_PR.CPU4, DeviceObj)
|
External (\_PR.CP04, DeviceObj)
|
||||||
External (\_PR.CPU5, DeviceObj)
|
External (\_PR.CP05, DeviceObj)
|
||||||
External (\_PR.CPU6, DeviceObj)
|
External (\_PR.CP06, DeviceObj)
|
||||||
External (\_PR.CPU7, DeviceObj)
|
External (\_PR.CP07, DeviceObj)
|
||||||
|
|
||||||
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x81) // _CST
|
Notify (\_PR.CP00, 0x81) // _CST
|
||||||
Notify (\_PR.CPU1, 0x81) // _CST
|
Notify (\_PR.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x81) // _CST
|
Notify (\_PR.CP02, 0x81) // _CST
|
||||||
Notify (\_PR.CPU3, 0x81) // _CST
|
Notify (\_PR.CP03, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x81) // _CST
|
Notify (\_PR.CP04, 0x81) // _CST
|
||||||
Notify (\_PR.CPU5, 0x81) // _CST
|
Notify (\_PR.CP05, 0x81) // _CST
|
||||||
Notify (\_PR.CPU6, 0x81) // _CST
|
Notify (\_PR.CP06, 0x81) // _CST
|
||||||
Notify (\_PR.CPU7, 0x81) // _CST
|
Notify (\_PR.CP07, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,18 +52,18 @@ Method (PNOT)
|
||||||
Method (PPCN)
|
Method (PPCN)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x80) // _PPC
|
Notify (\_PR.CP00, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU1, 0x80) // _PPC
|
Notify (\_PR.CP01, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x80) // _PPC
|
Notify (\_PR.CP02, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU3, 0x80) // _PPC
|
Notify (\_PR.CP03, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x80) // _PPC
|
Notify (\_PR.CP04, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU5, 0x80) // _PPC
|
Notify (\_PR.CP05, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU6, 0x80) // _PPC
|
Notify (\_PR.CP06, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU7, 0x80) // _PPC
|
Notify (\_PR.CP07, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,18 +71,18 @@ Method (PPCN)
|
||||||
Method (TNOT)
|
Method (TNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x82) // _TPC
|
Notify (\_PR.CP00, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU1, 0x82) // _TPC
|
Notify (\_PR.CP01, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x82) // _TPC
|
Notify (\_PR.CP02, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU3, 0x82) // _TPC
|
Notify (\_PR.CP03, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x82) // _TPC
|
Notify (\_PR.CP04, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU5, 0x82) // _TPC
|
Notify (\_PR.CP05, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU6, 0x82) // _TPC
|
Notify (\_PR.CP06, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU7, 0x82) // _TPC
|
Notify (\_PR.CP07, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,13 +90,13 @@ Method (TNOT)
|
||||||
Method (PPKG)
|
Method (PPKG)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3,
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03,
|
||||||
\_PR.CPU4, \_PR.CPU5, \_PR.CPU6, \_PR.CPU7})
|
\_PR.CP04, \_PR.CP05, \_PR.CP06, \_PR.CP07})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3})
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,31 +20,31 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These devices are created at runtime */
|
/* These devices are created at runtime */
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
External (\_PR.CPU2, DeviceObj)
|
External (\_PR.CP02, DeviceObj)
|
||||||
External (\_PR.CPU3, DeviceObj)
|
External (\_PR.CP03, DeviceObj)
|
||||||
External (\_PR.CPU4, DeviceObj)
|
External (\_PR.CP04, DeviceObj)
|
||||||
External (\_PR.CPU5, DeviceObj)
|
External (\_PR.CP05, DeviceObj)
|
||||||
External (\_PR.CPU6, DeviceObj)
|
External (\_PR.CP06, DeviceObj)
|
||||||
External (\_PR.CPU7, DeviceObj)
|
External (\_PR.CP07, DeviceObj)
|
||||||
|
|
||||||
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x81) // _CST
|
Notify (\_PR.CP00, 0x81) // _CST
|
||||||
Notify (\_PR.CPU1, 0x81) // _CST
|
Notify (\_PR.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x81) // _CST
|
Notify (\_PR.CP02, 0x81) // _CST
|
||||||
Notify (\_PR.CPU3, 0x81) // _CST
|
Notify (\_PR.CP03, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x81) // _CST
|
Notify (\_PR.CP04, 0x81) // _CST
|
||||||
Notify (\_PR.CPU5, 0x81) // _CST
|
Notify (\_PR.CP05, 0x81) // _CST
|
||||||
Notify (\_PR.CPU6, 0x81) // _CST
|
Notify (\_PR.CP06, 0x81) // _CST
|
||||||
Notify (\_PR.CPU7, 0x81) // _CST
|
Notify (\_PR.CP07, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,18 +52,18 @@ Method (PNOT)
|
||||||
Method (PPCN)
|
Method (PPCN)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x80) // _PPC
|
Notify (\_PR.CP00, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU1, 0x80) // _PPC
|
Notify (\_PR.CP01, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x80) // _PPC
|
Notify (\_PR.CP02, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU3, 0x80) // _PPC
|
Notify (\_PR.CP03, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x80) // _PPC
|
Notify (\_PR.CP04, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU5, 0x80) // _PPC
|
Notify (\_PR.CP05, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU6, 0x80) // _PPC
|
Notify (\_PR.CP06, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU7, 0x80) // _PPC
|
Notify (\_PR.CP07, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,18 +71,18 @@ Method (PPCN)
|
||||||
Method (TNOT)
|
Method (TNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x82) // _TPC
|
Notify (\_PR.CP00, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU1, 0x82) // _TPC
|
Notify (\_PR.CP01, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x82) // _TPC
|
Notify (\_PR.CP02, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU3, 0x82) // _TPC
|
Notify (\_PR.CP03, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x82) // _TPC
|
Notify (\_PR.CP04, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU5, 0x82) // _TPC
|
Notify (\_PR.CP05, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU6, 0x82) // _TPC
|
Notify (\_PR.CP06, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU7, 0x82) // _TPC
|
Notify (\_PR.CP07, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,13 +90,13 @@ Method (TNOT)
|
||||||
Method (PPKG)
|
Method (PPKG)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3,
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03,
|
||||||
\_PR.CPU4, \_PR.CPU5, \_PR.CPU6, \_PR.CPU7})
|
\_PR.CP04, \_PR.CP05, \_PR.CP06, \_PR.CP07})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3})
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,34 +4,34 @@ External(PDC1)
|
||||||
|
|
||||||
// Power notification
|
// Power notification
|
||||||
|
|
||||||
External (\_PR_.CPU0, DeviceObj)
|
External (\_PR_.CP00, DeviceObj)
|
||||||
External (\_PR_.CPU1, DeviceObj)
|
External (\_PR_.CP01, DeviceObj)
|
||||||
External (\_PR_.CPU0._PPC)
|
External (\_PR_.CP00._PPC)
|
||||||
External (\_PR_.CPU1._PPC)
|
External (\_PR_.CP01._PPC)
|
||||||
|
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
If(And(PDC0, 0x08)) {
|
If(And(PDC0, 0x08)) {
|
||||||
Notify (\_PR_.CPU0, 0x80) // _PPC
|
Notify (\_PR_.CP00, 0x80) // _PPC
|
||||||
|
|
||||||
If (And(PDC0, 0x10)) {
|
If (And(PDC0, 0x10)) {
|
||||||
Sleep(100)
|
Sleep(100)
|
||||||
Notify(\_PR_.CPU0, 0x81) // _CST
|
Notify(\_PR_.CP00, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
If(And(PDC1, 0x08)) {
|
If(And(PDC1, 0x08)) {
|
||||||
Notify (\_PR_.CPU1, 0x80) // _PPC
|
Notify (\_PR_.CP01, 0x80) // _PPC
|
||||||
If (And(PDC1, 0x10)) {
|
If (And(PDC1, 0x10)) {
|
||||||
Sleep(100)
|
Sleep(100)
|
||||||
Notify(\_PR_.CPU1, 0x81) // _CST
|
Notify(\_PR_.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} Else { // UP
|
} Else { // UP
|
||||||
Notify (\_PR_.CPU0, 0x80)
|
Notify (\_PR_.CP00, 0x80)
|
||||||
Sleep(0x64)
|
Sleep(0x64)
|
||||||
Notify(\_PR_.CPU0, 0x81)
|
Notify(\_PR_.CP00, 0x81)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
* re-evaluate their _PPC and _CST tables.
|
* re-evaluate their _PPC and _CST tables.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
External (\_PR.CPU0._PPC, IntObj)
|
External (\_PR.CP00._PPC, IntObj)
|
||||||
|
|
||||||
Device (EC0)
|
Device (EC0)
|
||||||
{
|
{
|
||||||
|
@ -148,12 +148,12 @@ Device (EC0)
|
||||||
Store (CTMP, Local0)
|
Store (CTMP, Local0)
|
||||||
|
|
||||||
// Find and program number of P-States
|
// Find and program number of P-States
|
||||||
Store (SizeOf (\_PR.CPU0._PSS), MPST)
|
Store (SizeOf (\_PR.CP00._PSS), MPST)
|
||||||
Store ("Programming number of P-states: ", Debug)
|
Store ("Programming number of P-states: ", Debug)
|
||||||
Store (MPST, Debug)
|
Store (MPST, Debug)
|
||||||
|
|
||||||
// Find and program the current P-State
|
// Find and program the current P-State
|
||||||
Store(\_PR.CPU0._PPC, NPST)
|
Store(\_PR.CP00._PPC, NPST)
|
||||||
Store ("Programming Current P-state: ", Debug)
|
Store ("Programming Current P-state: ", Debug)
|
||||||
Store (NPST, Debug)
|
Store (NPST, Debug)
|
||||||
}
|
}
|
||||||
|
@ -192,7 +192,7 @@ Device (EC0)
|
||||||
{
|
{
|
||||||
Store ("Pstate Event 0x0E", Debug)
|
Store ("Pstate Event 0x0E", Debug)
|
||||||
|
|
||||||
Store(\_PR.CPU0._PPC, Local0)
|
Store(\_PR.CP00._PPC, Local0)
|
||||||
Subtract(PPCM, 0x01, Local1)
|
Subtract(PPCM, 0x01, Local1)
|
||||||
|
|
||||||
If(LLess(Local0, Local1)) {
|
If(LLess(Local0, Local1)) {
|
||||||
|
@ -207,7 +207,7 @@ Device (EC0)
|
||||||
Method (_Q0F)
|
Method (_Q0F)
|
||||||
{
|
{
|
||||||
Store ("Pstate Event 0x0F", Debug)
|
Store ("Pstate Event 0x0F", Debug)
|
||||||
Store(\_PR.CPU0._PPC, Local0)
|
Store(\_PR.CP00._PPC, Local0)
|
||||||
|
|
||||||
If(Local0) {
|
If(Local0) {
|
||||||
Decrement(Local0)
|
Decrement(Local0)
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
#define SPEEDSTEP_APIC_MAGIC 0xACAC
|
#define SPEEDSTEP_APIC_MAGIC 0xACAC
|
||||||
|
|
||||||
/* MWAIT coordination I/O base address. This must match
|
/* MWAIT coordination I/O base address. This must match
|
||||||
* the \_PR_.CPU0 PM base address.
|
* the \_PR_.CP00 PM base address.
|
||||||
*/
|
*/
|
||||||
#define PMB0_BASE 0x510
|
#define PMB0_BASE 0x510
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
||||||
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
||||||
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
||||||
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
||||||
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
val = GPE0_BLK_ADDRESS;
|
val = GPE0_BLK_ADDRESS;
|
||||||
WritePMIO(SB_PMIOA_REG68, AccWidthUint16, &val);
|
WritePMIO(SB_PMIOA_REG68, AccWidthUint16, &val);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
val = CPU_CNT_BLK_ADDRESS;
|
val = CPU_CNT_BLK_ADDRESS;
|
||||||
WritePMIO(SB_PMIOA_REG66, AccWidthUint16, &val);
|
WritePMIO(SB_PMIOA_REG66, AccWidthUint16, &val);
|
||||||
val = 0;
|
val = 0;
|
||||||
|
|
|
@ -105,7 +105,7 @@ Device(EC0)
|
||||||
// EC Query methods, called upon SCI interrupts.
|
// EC Query methods, called upon SCI interrupts.
|
||||||
Method (_Q01, 0)
|
Method (_Q01, 0)
|
||||||
{
|
{
|
||||||
Notify (\_PR.CPU0, 0x80)
|
Notify (\_PR.CP00, 0x80)
|
||||||
If(ADP) {
|
If(ADP) {
|
||||||
Store(1, \_SB.AC.ACST)
|
Store(1, \_SB.AC.ACST)
|
||||||
TRAP(0xe3)
|
TRAP(0xe3)
|
||||||
|
|
|
@ -95,15 +95,15 @@ Method(_WAK,1)
|
||||||
|
|
||||||
// Windows XP SP2 P-State restore
|
// Windows XP SP2 P-State restore
|
||||||
If (LAnd(LEqual(OSYS, 2002), And(CFGD, 1))) {
|
If (LAnd(LEqual(OSYS, 2002), And(CFGD, 1))) {
|
||||||
If (LGreater(\_PR.CPU0._PPC, 0)) {
|
If (LGreater(\_PR.CP00._PPC, 0)) {
|
||||||
Subtract(\_PR.CPU0._PPC, 1, \_PR.CPU0._PPC)
|
Subtract(\_PR.CP00._PPC, 1, \_PR.CP00._PPC)
|
||||||
PNOT()
|
PNOT()
|
||||||
Add(\_PR.CPU0._PPC, 1, \_PR.CPU0._PPC)
|
Add(\_PR.CP00._PPC, 1, \_PR.CP00._PPC)
|
||||||
PNOT()
|
PNOT()
|
||||||
} Else {
|
} Else {
|
||||||
Add(\_PR.CPU0._PPC, 1, \_PR.CPU0._PPC)
|
Add(\_PR.CP00._PPC, 1, \_PR.CP00._PPC)
|
||||||
PNOT()
|
PNOT()
|
||||||
Subtract(\_PR.CPU0._PPC, 1, \_PR.CPU0._PPC)
|
Subtract(\_PR.CP00._PPC, 1, \_PR.CP00._PPC)
|
||||||
PNOT()
|
PNOT()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,9 +79,9 @@ Scope (\_TZ)
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TC1 value for passive cooling
|
// TC1 value for passive cooling
|
||||||
|
|
|
@ -65,9 +65,9 @@ Scope (\_TZ)
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU1, \_PR.CPU2})
|
Return (Package() {\_PR.CP01, \_PR.CP02})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU1})
|
Return (Package() {\_PR.CP01})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TC1 value for passive cooling
|
// TC1 value for passive cooling
|
||||||
|
|
|
@ -65,9 +65,9 @@ Scope (\_TZ)
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU1, \_PR.CPU2})
|
Return (Package() {\_PR.CP01, \_PR.CP02})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU1})
|
Return (Package() {\_PR.CP01})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TC1 value for passive cooling
|
// TC1 value for passive cooling
|
||||||
|
|
|
@ -67,9 +67,9 @@ Scope (\_TZ)
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU1, \_PR.CPU2})
|
Return (Package() {\_PR.CP01, \_PR.CP02})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU1})
|
Return (Package() {\_PR.CP01})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TC1 value for passive cooling
|
// TC1 value for passive cooling
|
||||||
|
|
|
@ -65,9 +65,9 @@ Scope (\_TZ)
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU1, \_PR.CPU2})
|
Return (Package() {\_PR.CP01, \_PR.CP02})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU1})
|
Return (Package() {\_PR.CP01})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TC1 value for passive cooling
|
// TC1 value for passive cooling
|
||||||
|
|
|
@ -79,7 +79,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
||||||
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
||||||
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
||||||
|
|
||||||
|
|
|
@ -100,33 +100,33 @@ Method(_WAK,1)
|
||||||
|
|
||||||
// Power notification
|
// Power notification
|
||||||
|
|
||||||
External (\_PR_.CPU0, DeviceObj)
|
External (\_PR_.CP00, DeviceObj)
|
||||||
External (\_PR_.CPU1, DeviceObj)
|
External (\_PR_.CP01, DeviceObj)
|
||||||
|
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
If(And(PDC0, 0x08)) {
|
If(And(PDC0, 0x08)) {
|
||||||
Notify (\_PR_.CPU0, 0x80) // _PPC
|
Notify (\_PR_.CP00, 0x80) // _PPC
|
||||||
|
|
||||||
If (And(PDC0, 0x10)) {
|
If (And(PDC0, 0x10)) {
|
||||||
Sleep(100)
|
Sleep(100)
|
||||||
Notify(\_PR_.CPU0, 0x81) // _CST
|
Notify(\_PR_.CP00, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
If(And(PDC1, 0x08)) {
|
If(And(PDC1, 0x08)) {
|
||||||
Notify (\_PR_.CPU1, 0x80) // _PPC
|
Notify (\_PR_.CP01, 0x80) // _PPC
|
||||||
If (And(PDC1, 0x10)) {
|
If (And(PDC1, 0x10)) {
|
||||||
Sleep(100)
|
Sleep(100)
|
||||||
Notify(\_PR_.CPU1, 0x81) // _CST
|
Notify(\_PR_.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} Else { // UP
|
} Else { // UP
|
||||||
Notify (\_PR_.CPU0, 0x80)
|
Notify (\_PR_.CP00, 0x80)
|
||||||
Sleep(0x64)
|
Sleep(0x64)
|
||||||
Notify(\_PR_.CPU0, 0x81)
|
Notify(\_PR_.CP00, 0x81)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,9 +67,9 @@ Scope (\_TZ)
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TC1 value for passive cooling
|
// TC1 value for passive cooling
|
||||||
|
|
|
@ -100,33 +100,33 @@ Method(_WAK,1)
|
||||||
|
|
||||||
// Power notification
|
// Power notification
|
||||||
|
|
||||||
External (\_PR_.CPU0, DeviceObj)
|
External (\_PR_.CP00, DeviceObj)
|
||||||
External (\_PR_.CPU1, DeviceObj)
|
External (\_PR_.CP01, DeviceObj)
|
||||||
|
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
If(And(PDC0, 0x08)) {
|
If(And(PDC0, 0x08)) {
|
||||||
Notify (\_PR_.CPU0, 0x80) // _PPC
|
Notify (\_PR_.CP00, 0x80) // _PPC
|
||||||
|
|
||||||
If (And(PDC0, 0x10)) {
|
If (And(PDC0, 0x10)) {
|
||||||
Sleep(100)
|
Sleep(100)
|
||||||
Notify(\_PR_.CPU0, 0x81) // _CST
|
Notify(\_PR_.CP00, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
If(And(PDC1, 0x08)) {
|
If(And(PDC1, 0x08)) {
|
||||||
Notify (\_PR_.CPU1, 0x80) // _PPC
|
Notify (\_PR_.CP01, 0x80) // _PPC
|
||||||
If (And(PDC1, 0x10)) {
|
If (And(PDC1, 0x10)) {
|
||||||
Sleep(100)
|
Sleep(100)
|
||||||
Notify(\_PR_.CPU1, 0x81) // _CST
|
Notify(\_PR_.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} Else { // UP
|
} Else { // UP
|
||||||
Notify (\_PR_.CPU0, 0x80)
|
Notify (\_PR_.CP00, 0x80)
|
||||||
Sleep(0x64)
|
Sleep(0x64)
|
||||||
Notify(\_PR_.CPU0, 0x81)
|
Notify(\_PR_.CP00, 0x81)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify the Batteries
|
// Notify the Batteries
|
||||||
|
|
|
@ -86,9 +86,9 @@ Scope (\_TZ)
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TC1 value for passive cooling
|
// TC1 value for passive cooling
|
||||||
|
|
|
@ -30,8 +30,8 @@ Method(_PIC, 1, NotSerialized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
|
|
||||||
Scope(\_SB)
|
Scope(\_SB)
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,9 +56,9 @@ Scope(\_TZ) {
|
||||||
Method (_PSL, 0, Serialized)
|
Method (_PSL, 0, Serialized)
|
||||||
{
|
{
|
||||||
If (MPEN) {
|
If (MPEN) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
}
|
}
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
|
|
||||||
Method(_HOT,0) { /* return hot temp in tenths degree Kelvin */
|
Method(_HOT,0) { /* return hot temp in tenths degree Kelvin */
|
||||||
|
|
|
@ -80,7 +80,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
||||||
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
||||||
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
||||||
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
||||||
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
pm_iowrite(0x28, ACPI_GPE0_BLK & 0xFF);
|
||||||
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
pm_iowrite(0x29, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
pm_iowrite(0x26, ACPI_CPU_CONTORL & 0xFF);
|
||||||
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
pm_iowrite(0x27, ACPI_CPU_CONTORL >> 8);
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ DefinitionBlock ("dsdt.aml", "DSDT", 1, "CX700 ", "COREBOOT", 0x00000001)
|
||||||
*/
|
*/
|
||||||
Scope (\_PR)
|
Scope (\_PR)
|
||||||
{
|
{
|
||||||
Processor (\_PR.CPU0, 0x00, 0x00000410, 0x06) {}
|
Processor (\_PR.CP00, 0x00, 0x00000410, 0x06) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For now only define 2 power states:
|
/* For now only define 2 power states:
|
||||||
|
|
|
@ -139,7 +139,7 @@ ThermalZone (K8T1) {
|
||||||
Name(_UID, "k8-1")
|
Name(_UID, "k8-1")
|
||||||
Name(_STR, Unicode("K8 compatible CPU Core 1 Thermal Sensor 2"))
|
Name(_STR, Unicode("K8 compatible CPU Core 1 Thermal Sensor 2"))
|
||||||
|
|
||||||
Name(_TZD, Package () {\_PR.CPU0})
|
Name(_TZD, Package () {\_PR.CP00})
|
||||||
|
|
||||||
Method(_STA) {
|
Method(_STA) {
|
||||||
Store(CORE, Local0)
|
Store(CORE, Local0)
|
||||||
|
@ -190,7 +190,7 @@ ThermalZone (K8T2) {
|
||||||
Name(_UID, "k8-2")
|
Name(_UID, "k8-2")
|
||||||
Name(_STR, Unicode("K8 compatible CPU Core 2 Thermal Sensor 1"))
|
Name(_STR, Unicode("K8 compatible CPU Core 2 Thermal Sensor 1"))
|
||||||
|
|
||||||
Name(_TZD, Package () {\_PR.CPU0})
|
Name(_TZD, Package () {\_PR.CP00})
|
||||||
|
|
||||||
Method(_STA) {
|
Method(_STA) {
|
||||||
Store(CORE, Local0)
|
Store(CORE, Local0)
|
||||||
|
@ -241,7 +241,7 @@ ThermalZone (K8T3) {
|
||||||
Name(_UID, "k8-3")
|
Name(_UID, "k8-3")
|
||||||
Name(_STR, Unicode("K8 compatible CPU Core 2 Thermal Sensor 2"))
|
Name(_STR, Unicode("K8 compatible CPU Core 2 Thermal Sensor 2"))
|
||||||
|
|
||||||
Name(_TZD, Package () {\_PR.CPU0})
|
Name(_TZD, Package () {\_PR.CP00})
|
||||||
|
|
||||||
Method(_STA) {
|
Method(_STA) {
|
||||||
Store(CORE, Local0)
|
Store(CORE, Local0)
|
||||||
|
|
|
@ -147,16 +147,16 @@ Device (MCHC)
|
||||||
* Package (6) { freq, power, tlat, blat, control, status }
|
* Package (6) { freq, power, tlat, blat, control, status }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
External (\_PR.CPU0._PSS)
|
External (\_PR.CP00._PSS)
|
||||||
Method (PSSS, 1, NotSerialized)
|
Method (PSSS, 1, NotSerialized)
|
||||||
{
|
{
|
||||||
Store (One, Local0) /* Start at P1 */
|
Store (One, Local0) /* Start at P1 */
|
||||||
Store (SizeOf (\_PR.CPU0._PSS), Local1)
|
Store (SizeOf (\_PR.CP00._PSS), Local1)
|
||||||
|
|
||||||
While (LLess (Local0, Local1)) {
|
While (LLess (Local0, Local1)) {
|
||||||
/* Store _PSS entry Control value to Local2 */
|
/* Store _PSS entry Control value to Local2 */
|
||||||
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
||||||
(\_PR.CPU0._PSS, Local0)), 4)), 8, Local2)
|
(\_PR.CP00._PSS, Local0)), 4)), 8, Local2)
|
||||||
If (LEqual (Local2, Arg0)) {
|
If (LEqual (Local2, Arg0)) {
|
||||||
Return (Subtract (Local0, 1))
|
Return (Subtract (Local0, 1))
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,16 +157,16 @@ Device (MCHC)
|
||||||
* Package (6) { freq, power, tlat, blat, control, status }
|
* Package (6) { freq, power, tlat, blat, control, status }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
External (\_PR.CPU0._PSS)
|
External (\_PR.CP00._PSS)
|
||||||
Method (PSSS, 1, NotSerialized)
|
Method (PSSS, 1, NotSerialized)
|
||||||
{
|
{
|
||||||
Store (One, Local0) /* Start at P1 */
|
Store (One, Local0) /* Start at P1 */
|
||||||
Store (SizeOf (\_PR.CPU0._PSS), Local1)
|
Store (SizeOf (\_PR.CP00._PSS), Local1)
|
||||||
|
|
||||||
While (LLess (Local0, Local1)) {
|
While (LLess (Local0, Local1)) {
|
||||||
/* Store _PSS entry Control value to Local2 */
|
/* Store _PSS entry Control value to Local2 */
|
||||||
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
||||||
(\_PR.CPU0._PSS, Local0)), 4)), 8, Local2)
|
(\_PR.CP00._PSS, Local0)), 4)), 8, Local2)
|
||||||
If (LEqual (Local2, Arg0)) {
|
If (LEqual (Local2, Arg0)) {
|
||||||
Return (Subtract (Local0, 1))
|
Return (Subtract (Local0, 1))
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,16 +109,16 @@ Device (MCHC)
|
||||||
* Package (6) { freq, power, tlat, blat, control, status }
|
* Package (6) { freq, power, tlat, blat, control, status }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
External (\_PR.CPU0._PSS)
|
External (\_PR.CP00._PSS)
|
||||||
Method (PSSS, 1, NotSerialized)
|
Method (PSSS, 1, NotSerialized)
|
||||||
{
|
{
|
||||||
Store (One, Local0) /* Start at P1 */
|
Store (One, Local0) /* Start at P1 */
|
||||||
Store (SizeOf (\_PR.CPU0._PSS), Local1)
|
Store (SizeOf (\_PR.CP00._PSS), Local1)
|
||||||
|
|
||||||
While (LLess (Local0, Local1)) {
|
While (LLess (Local0, Local1)) {
|
||||||
/* Store _PSS entry Control value to Local2 */
|
/* Store _PSS entry Control value to Local2 */
|
||||||
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
||||||
(\_PR.CPU0._PSS, Local0)), 4)), 8, Local2)
|
(\_PR.CP00._PSS, Local0)), 4)), 8, Local2)
|
||||||
If (LEqual (Local2, Arg0)) {
|
If (LEqual (Local2, Arg0)) {
|
||||||
Return (Subtract (Local0, 1))
|
Return (Subtract (Local0, 1))
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,16 +147,16 @@ Device (MCHC)
|
||||||
* Package (6) { freq, power, tlat, blat, control, status }
|
* Package (6) { freq, power, tlat, blat, control, status }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
External (\_PR.CPU0._PSS)
|
External (\_PR.CP00._PSS)
|
||||||
Method (PSSS, 1, NotSerialized)
|
Method (PSSS, 1, NotSerialized)
|
||||||
{
|
{
|
||||||
Store (One, Local0) /* Start at P1 */
|
Store (One, Local0) /* Start at P1 */
|
||||||
Store (SizeOf (\_PR.CPU0._PSS), Local1)
|
Store (SizeOf (\_PR.CP00._PSS), Local1)
|
||||||
|
|
||||||
While (LLess (Local0, Local1)) {
|
While (LLess (Local0, Local1)) {
|
||||||
/* Store _PSS entry Control value to Local2 */
|
/* Store _PSS entry Control value to Local2 */
|
||||||
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
||||||
(\_PR.CPU0._PSS, Local0)), 4)), 8, Local2)
|
(\_PR.CP00._PSS, Local0)), 4)), 8, Local2)
|
||||||
If (LEqual (Local2, Arg0)) {
|
If (LEqual (Local2, Arg0)) {
|
||||||
Return (Subtract (Local0, 1))
|
Return (Subtract (Local0, 1))
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,21 +20,21 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These devices are created at runtime */
|
/* These devices are created at runtime */
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
External (\_PR.CPU2, DeviceObj)
|
External (\_PR.CP02, DeviceObj)
|
||||||
External (\_PR.CPU3, DeviceObj)
|
External (\_PR.CP03, DeviceObj)
|
||||||
|
|
||||||
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x81) // _CST
|
Notify (\_PR.CP00, 0x81) // _CST
|
||||||
Notify (\_PR.CPU1, 0x81) // _CST
|
Notify (\_PR.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x81) // _CST
|
Notify (\_PR.CP02, 0x81) // _CST
|
||||||
Notify (\_PR.CPU3, 0x81) // _CST
|
Notify (\_PR.CP03, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,12 +42,12 @@ Method (PNOT)
|
||||||
Method (PPCN)
|
Method (PPCN)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x80) // _PPC
|
Notify (\_PR.CP00, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU1, 0x80) // _PPC
|
Notify (\_PR.CP01, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x80) // _PPC
|
Notify (\_PR.CP02, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU3, 0x80) // _PPC
|
Notify (\_PR.CP03, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,12 +55,12 @@ Method (PPCN)
|
||||||
Method (TNOT)
|
Method (TNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x82) // _TPC
|
Notify (\_PR.CP00, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU1, 0x82) // _TPC
|
Notify (\_PR.CP01, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x82) // _TPC
|
Notify (\_PR.CP02, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU3, 0x82) // _TPC
|
Notify (\_PR.CP03, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,10 +68,10 @@ Method (TNOT)
|
||||||
Method (PPKG)
|
Method (PPKG)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3})
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
External (\_PR.CPU0._TSS, MethodObj)
|
External (\_PR.CP00._TSS, MethodObj)
|
||||||
External (\_PR.CPU0._TPC, MethodObj)
|
External (\_PR.CP00._TPC, MethodObj)
|
||||||
External (\_PR.CPU0._PTC, PkgObj)
|
External (\_PR.CP00._PTC, PkgObj)
|
||||||
External (\_PR.CPU0._TSD, PkgObj)
|
External (\_PR.CP00._TSD, PkgObj)
|
||||||
External (\_PR.CPU0._PSS, MethodObj)
|
External (\_PR.CP00._PSS, MethodObj)
|
||||||
|
|
||||||
Device (TCPU)
|
Device (TCPU)
|
||||||
{
|
{
|
||||||
|
@ -24,8 +24,8 @@ Device (TCPU)
|
||||||
|
|
||||||
Method (_TSS)
|
Method (_TSS)
|
||||||
{
|
{
|
||||||
If (CondRefOf (\_PR.CPU0._TSS)) {
|
If (CondRefOf (\_PR.CP00._TSS)) {
|
||||||
Return (\_PR.CPU0._TSS)
|
Return (\_PR.CP00._TSS)
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package ()
|
Return (Package ()
|
||||||
{
|
{
|
||||||
|
@ -36,8 +36,8 @@ Device (TCPU)
|
||||||
|
|
||||||
Method (_TPC)
|
Method (_TPC)
|
||||||
{
|
{
|
||||||
If (CondRefOf (\_PR.CPU0._TPC)) {
|
If (CondRefOf (\_PR.CP00._TPC)) {
|
||||||
Return (\_PR.CPU0._TPC)
|
Return (\_PR.CP00._TPC)
|
||||||
} Else {
|
} Else {
|
||||||
Return (0)
|
Return (0)
|
||||||
}
|
}
|
||||||
|
@ -45,8 +45,8 @@ Device (TCPU)
|
||||||
|
|
||||||
Method (_PTC)
|
Method (_PTC)
|
||||||
{
|
{
|
||||||
If (CondRefOf (\_PR.CPU0._PTC)) {
|
If (CondRefOf (\_PR.CP00._PTC)) {
|
||||||
Return (\_PR.CPU0._PTC)
|
Return (\_PR.CP00._PTC)
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package ()
|
Return (Package ()
|
||||||
{
|
{
|
||||||
|
@ -58,8 +58,8 @@ Device (TCPU)
|
||||||
|
|
||||||
Method (_TSD)
|
Method (_TSD)
|
||||||
{
|
{
|
||||||
If (CondRefOf (\_PR.CPU0._TSD)) {
|
If (CondRefOf (\_PR.CP00._TSD)) {
|
||||||
Return (\_PR.CPU0._TSD)
|
Return (\_PR.CP00._TSD)
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package ()
|
Return (Package ()
|
||||||
{
|
{
|
||||||
|
@ -70,8 +70,8 @@ Device (TCPU)
|
||||||
|
|
||||||
Method (_TDL)
|
Method (_TDL)
|
||||||
{
|
{
|
||||||
If (CondRefOf (\_PR.CPU0._TSS)) {
|
If (CondRefOf (\_PR.CP00._TSS)) {
|
||||||
Store (SizeOf (\_PR.CPU0._TSS ()), Local0)
|
Store (SizeOf (\_PR.CP00._TSS ()), Local0)
|
||||||
Decrement (Local0)
|
Decrement (Local0)
|
||||||
Return (Local0)
|
Return (Local0)
|
||||||
} Else {
|
} Else {
|
||||||
|
@ -98,8 +98,8 @@ Device (TCPU)
|
||||||
|
|
||||||
Method (_PSS)
|
Method (_PSS)
|
||||||
{
|
{
|
||||||
If (CondRefOf (\_PR.CPU0._PSS)) {
|
If (CondRefOf (\_PR.CP00._PSS)) {
|
||||||
Return (\_PR.CPU0._PSS)
|
Return (\_PR.CP00._PSS)
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package ()
|
Return (Package ()
|
||||||
{
|
{
|
||||||
|
@ -113,8 +113,8 @@ Device (TCPU)
|
||||||
/* Check for mainboard specific _PDL override */
|
/* Check for mainboard specific _PDL override */
|
||||||
If (CondRefOf (\_SB.MPDL)) {
|
If (CondRefOf (\_SB.MPDL)) {
|
||||||
Return (\_SB.MPDL)
|
Return (\_SB.MPDL)
|
||||||
} ElseIf (CondRefOf (\_PR.CPU0._PSS)) {
|
} ElseIf (CondRefOf (\_PR.CP00._PSS)) {
|
||||||
Store (SizeOf (\_PR.CPU0._PSS ()), Local0)
|
Store (SizeOf (\_PR.CP00._PSS ()), Local0)
|
||||||
Decrement (Local0)
|
Decrement (Local0)
|
||||||
Return (Local0)
|
Return (Local0)
|
||||||
} Else {
|
} Else {
|
||||||
|
|
|
@ -18,31 +18,31 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These devices are created at runtime */
|
/* These devices are created at runtime */
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
External (\_PR.CPU2, DeviceObj)
|
External (\_PR.CP02, DeviceObj)
|
||||||
External (\_PR.CPU3, DeviceObj)
|
External (\_PR.CP03, DeviceObj)
|
||||||
External (\_PR.CPU4, DeviceObj)
|
External (\_PR.CP04, DeviceObj)
|
||||||
External (\_PR.CPU5, DeviceObj)
|
External (\_PR.CP05, DeviceObj)
|
||||||
External (\_PR.CPU6, DeviceObj)
|
External (\_PR.CP06, DeviceObj)
|
||||||
External (\_PR.CPU7, DeviceObj)
|
External (\_PR.CP07, DeviceObj)
|
||||||
|
|
||||||
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x81) // _CST
|
Notify (\_PR.CP00, 0x81) // _CST
|
||||||
Notify (\_PR.CPU1, 0x81) // _CST
|
Notify (\_PR.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x81) // _CST
|
Notify (\_PR.CP02, 0x81) // _CST
|
||||||
Notify (\_PR.CPU3, 0x81) // _CST
|
Notify (\_PR.CP03, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x81) // _CST
|
Notify (\_PR.CP04, 0x81) // _CST
|
||||||
Notify (\_PR.CPU5, 0x81) // _CST
|
Notify (\_PR.CP05, 0x81) // _CST
|
||||||
Notify (\_PR.CPU6, 0x81) // _CST
|
Notify (\_PR.CP06, 0x81) // _CST
|
||||||
Notify (\_PR.CPU7, 0x81) // _CST
|
Notify (\_PR.CP07, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,18 +50,18 @@ Method (PNOT)
|
||||||
Method (PPCN)
|
Method (PPCN)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x80) // _PPC
|
Notify (\_PR.CP00, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU1, 0x80) // _PPC
|
Notify (\_PR.CP01, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x80) // _PPC
|
Notify (\_PR.CP02, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU3, 0x80) // _PPC
|
Notify (\_PR.CP03, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x80) // _PPC
|
Notify (\_PR.CP04, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU5, 0x80) // _PPC
|
Notify (\_PR.CP05, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU6, 0x80) // _PPC
|
Notify (\_PR.CP06, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU7, 0x80) // _PPC
|
Notify (\_PR.CP07, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,18 +69,18 @@ Method (PPCN)
|
||||||
Method (TNOT)
|
Method (TNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x82) // _TPC
|
Notify (\_PR.CP00, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU1, 0x82) // _TPC
|
Notify (\_PR.CP01, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x82) // _TPC
|
Notify (\_PR.CP02, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU3, 0x82) // _TPC
|
Notify (\_PR.CP03, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Notify (\_PR.CPU4, 0x82) // _TPC
|
Notify (\_PR.CP04, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU5, 0x82) // _TPC
|
Notify (\_PR.CP05, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU6, 0x82) // _TPC
|
Notify (\_PR.CP06, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU7, 0x82) // _TPC
|
Notify (\_PR.CP07, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,33 +90,33 @@ Method (PPKG)
|
||||||
If (LGreaterEqual (\PCNT, 8)) {
|
If (LGreaterEqual (\PCNT, 8)) {
|
||||||
Return (Package()
|
Return (Package()
|
||||||
{
|
{
|
||||||
\_PR.CPU0,
|
\_PR.CP00,
|
||||||
\_PR.CPU1,
|
\_PR.CP01,
|
||||||
\_PR.CPU2,
|
\_PR.CP02,
|
||||||
\_PR.CPU3,
|
\_PR.CP03,
|
||||||
\_PR.CPU4,
|
\_PR.CP04,
|
||||||
\_PR.CPU5,
|
\_PR.CP05,
|
||||||
\_PR.CPU6,
|
\_PR.CP06,
|
||||||
\_PR.CPU7
|
\_PR.CP07
|
||||||
})
|
})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
} ElseIf (LGreaterEqual (\PCNT, 4)) {
|
||||||
Return (Package ()
|
Return (Package ()
|
||||||
{
|
{
|
||||||
\_PR.CPU0,
|
\_PR.CP00,
|
||||||
\_PR.CPU1,
|
\_PR.CP01,
|
||||||
\_PR.CPU2,
|
\_PR.CP02,
|
||||||
\_PR.CPU3
|
\_PR.CP03
|
||||||
})
|
})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
||||||
Return (Package ()
|
Return (Package ()
|
||||||
{
|
{
|
||||||
\_PR.CPU0,
|
\_PR.CP00,
|
||||||
\_PR.CPU1
|
\_PR.CP01
|
||||||
})
|
})
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package ()
|
Return (Package ()
|
||||||
{
|
{
|
||||||
\_PR.CPU0
|
\_PR.CP00
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,16 +76,16 @@ Scope (\_SB.PCI0.MCHC)
|
||||||
* Package (6) { freq, power, tlat, blat, control, status }
|
* Package (6) { freq, power, tlat, blat, control, status }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
External (\_PR.CPU0._PSS)
|
External (\_PR.CP00._PSS)
|
||||||
Method (PSSS, 1, NotSerialized)
|
Method (PSSS, 1, NotSerialized)
|
||||||
{
|
{
|
||||||
Store (One, Local0) /* Start at P1 */
|
Store (One, Local0) /* Start at P1 */
|
||||||
Store (SizeOf (\_PR.CPU0._PSS), Local1)
|
Store (SizeOf (\_PR.CP00._PSS), Local1)
|
||||||
|
|
||||||
While (LLess (Local0, Local1)) {
|
While (LLess (Local0, Local1)) {
|
||||||
/* Store _PSS entry Control value to Local2 */
|
/* Store _PSS entry Control value to Local2 */
|
||||||
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
ShiftRight (DeRefOf (Index (DeRefOf (Index
|
||||||
(\_PR.CPU0._PSS, Local0)), 4)), 8, Local2)
|
(\_PR.CP00._PSS, Local0)), 4)), 8, Local2)
|
||||||
If (LEqual (Local2, Arg0)) {
|
If (LEqual (Local2, Arg0)) {
|
||||||
Return (Subtract (Local0, 1))
|
Return (Subtract (Local0, 1))
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,21 +20,21 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These devices are created at runtime */
|
/* These devices are created at runtime */
|
||||||
External (\_PR.CPU0, DeviceObj)
|
External (\_PR.CP00, DeviceObj)
|
||||||
External (\_PR.CPU1, DeviceObj)
|
External (\_PR.CP01, DeviceObj)
|
||||||
External (\_PR.CPU2, DeviceObj)
|
External (\_PR.CP02, DeviceObj)
|
||||||
External (\_PR.CPU3, DeviceObj)
|
External (\_PR.CP03, DeviceObj)
|
||||||
|
|
||||||
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x81) // _CST
|
Notify (\_PR.CP00, 0x81) // _CST
|
||||||
Notify (\_PR.CPU1, 0x81) // _CST
|
Notify (\_PR.CP01, 0x81) // _CST
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x81) // _CST
|
Notify (\_PR.CP02, 0x81) // _CST
|
||||||
Notify (\_PR.CPU3, 0x81) // _CST
|
Notify (\_PR.CP03, 0x81) // _CST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,12 +42,12 @@ Method (PNOT)
|
||||||
Method (PPCN)
|
Method (PPCN)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x80) // _PPC
|
Notify (\_PR.CP00, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU1, 0x80) // _PPC
|
Notify (\_PR.CP01, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x80) // _PPC
|
Notify (\_PR.CP02, 0x80) // _PPC
|
||||||
Notify (\_PR.CPU3, 0x80) // _PPC
|
Notify (\_PR.CP03, 0x80) // _PPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,12 +55,12 @@ Method (PPCN)
|
||||||
Method (TNOT)
|
Method (TNOT)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 2)) {
|
If (LGreaterEqual (\PCNT, 2)) {
|
||||||
Notify (\_PR.CPU0, 0x82) // _TPC
|
Notify (\_PR.CP00, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU1, 0x82) // _TPC
|
Notify (\_PR.CP01, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Notify (\_PR.CPU2, 0x82) // _TPC
|
Notify (\_PR.CP02, 0x82) // _TPC
|
||||||
Notify (\_PR.CPU3, 0x82) // _TPC
|
Notify (\_PR.CP03, 0x82) // _TPC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,10 +68,10 @@ Method (TNOT)
|
||||||
Method (PPKG)
|
Method (PPKG)
|
||||||
{
|
{
|
||||||
If (LGreaterEqual (\PCNT, 4)) {
|
If (LGreaterEqual (\PCNT, 4)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3})
|
Return (Package() {\_PR.CP00, \_PR.CP01, \_PR.CP02, \_PR.CP03})
|
||||||
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
} ElseIf (LGreaterEqual (\PCNT, 2)) {
|
||||||
Return (Package() {\_PR.CPU0, \_PR.CPU1})
|
Return (Package() {\_PR.CP00, \_PR.CP01})
|
||||||
} Else {
|
} Else {
|
||||||
Return (Package() {\_PR.CPU0})
|
Return (Package() {\_PR.CP00})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,7 +147,7 @@ static void hudson_init_acpi_ports(void)
|
||||||
pm_write16(0x62, ACPI_PM1_CNT_BLK);
|
pm_write16(0x62, ACPI_PM1_CNT_BLK);
|
||||||
pm_write16(0x64, ACPI_PM_TMR_BLK);
|
pm_write16(0x64, ACPI_PM_TMR_BLK);
|
||||||
pm_write16(0x68, ACPI_GPE0_BLK);
|
pm_write16(0x68, ACPI_GPE0_BLK);
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_write16(0x66, ACPI_CPU_CONTROL);
|
pm_write16(0x66, ACPI_CPU_CONTROL);
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_HAVE_SMI_HANDLER)) {
|
if (IS_ENABLED(CONFIG_HAVE_SMI_HANDLER)) {
|
||||||
|
|
|
@ -83,7 +83,7 @@ void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt)
|
||||||
val = GPE0_BLK_ADDRESS;
|
val = GPE0_BLK_ADDRESS;
|
||||||
WritePMIO(SB_PMIOA_REG68, AccWidthUint16, &val);
|
WritePMIO(SB_PMIOA_REG68, AccWidthUint16, &val);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
val = CPU_CNT_BLK_ADDRESS;
|
val = CPU_CNT_BLK_ADDRESS;
|
||||||
WritePMIO(SB_PMIOA_REG66, AccWidthUint16, &val);
|
WritePMIO(SB_PMIOA_REG66, AccWidthUint16, &val);
|
||||||
val = 0;
|
val = 0;
|
||||||
|
|
|
@ -107,7 +107,7 @@ static void hudson_init_acpi_ports(void)
|
||||||
pm_write16(0x62, ACPI_PM1_CNT_BLK);
|
pm_write16(0x62, ACPI_PM1_CNT_BLK);
|
||||||
pm_write16(0x64, ACPI_PM_TMR_BLK);
|
pm_write16(0x64, ACPI_PM_TMR_BLK);
|
||||||
pm_write16(0x68, ACPI_GPE0_BLK);
|
pm_write16(0x68, ACPI_GPE0_BLK);
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pm_write16(0x66, ACPI_CPU_CONTROL);
|
pm_write16(0x66, ACPI_CPU_CONTROL);
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_HAVE_SMI_HANDLER)) {
|
if (IS_ENABLED(CONFIG_HAVE_SMI_HANDLER)) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ static void sb700_acpi_init(void)
|
||||||
pmio_write(0x28, ACPI_GPE0_BLK & 0xFF);
|
pmio_write(0x28, ACPI_GPE0_BLK & 0xFF);
|
||||||
pmio_write(0x29, ACPI_GPE0_BLK >> 8);
|
pmio_write(0x29, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pmio_write(0x26, ACPI_CPU_CONTROL & 0xFF);
|
pmio_write(0x26, ACPI_CPU_CONTROL & 0xFF);
|
||||||
pmio_write(0x27, ACPI_CPU_CONTROL >> 8);
|
pmio_write(0x27, ACPI_CPU_CONTROL >> 8);
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ static void sb800_acpi_init(void)
|
||||||
pmio_write(0x68, ACPI_GPE0_BLK & 0xFF);
|
pmio_write(0x68, ACPI_GPE0_BLK & 0xFF);
|
||||||
pmio_write(0x69, ACPI_GPE0_BLK >> 8);
|
pmio_write(0x69, ACPI_GPE0_BLK >> 8);
|
||||||
|
|
||||||
/* CpuControl is in \_PR.CPU0, 6 bytes */
|
/* CpuControl is in \_PR.CP00, 6 bytes */
|
||||||
pmio_write(0x66, ACPI_CPU_CONTROL & 0xFF);
|
pmio_write(0x66, ACPI_CPU_CONTROL & 0xFF);
|
||||||
pmio_write(0x67, ACPI_CPU_CONTROL >> 8);
|
pmio_write(0x67, ACPI_CPU_CONTROL >> 8);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue