soc/amd: factor out ACPI ALIB function numbers to common code
The ACPI ALIB function numbers are defined in the AMD Generic Encapsulated Software Architecture (AGESA™) Interface Specification (document #55483). TEST=Timeless build stays the same for Mandolin (Picasso) and Gardenia (Stoneyridge). Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I290ef0db32c65ebb2bbbe4f65db4df772b884161 Reviewed-on: https://review.coreboot.org/c/coreboot/+/53915 Reviewed-by: Raul Rangel <rrangel@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
9
src/soc/amd/common/block/include/amdblocks/alib.h
Normal file
9
src/soc/amd/common/block/include/amdblocks/alib.h
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#ifndef AMD_COMMON_ALIB_H
|
||||||
|
#define AMD_COMMON_ALIB_H
|
||||||
|
|
||||||
|
#define ALIB_FUNCTION_REPORT_AC_DC_STATE 0x1
|
||||||
|
#define ALIB_FUNCTION_DYNAMIC_POWER_THERMAL_CONFIG 0xc
|
||||||
|
|
||||||
|
#endif /* AMD_COMMON_ALIB_H */
|
@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <amdblocks/alib.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Wrapper method that calls ALIB function 1 to report current AC/DC state.
|
* Wrapper method that calls ALIB function 1 to report current AC/DC state.
|
||||||
*/
|
*/
|
||||||
@ -23,7 +25,7 @@ Method (WAL1)
|
|||||||
F1DA = \PWRS ^ 1
|
F1DA = \PWRS ^ 1
|
||||||
|
|
||||||
Printf ("ALIB call: func 1 params %o", Local0)
|
Printf ("ALIB call: func 1 params %o", Local0)
|
||||||
\_SB.ALIB (1, Local0)
|
\_SB.ALIB (ALIB_FUNCTION_REPORT_AC_DC_STATE, Local0)
|
||||||
}
|
}
|
||||||
|
|
||||||
Method (PNOT)
|
Method (PNOT)
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <acpi/acpigen.h>
|
#include <acpi/acpigen.h>
|
||||||
#include <amdblocks/acpi.h>
|
#include <amdblocks/acpi.h>
|
||||||
|
#include <amdblocks/alib.h>
|
||||||
#include <amdblocks/memmap.h>
|
#include <amdblocks/memmap.h>
|
||||||
#include <amdblocks/ioapic.h>
|
#include <amdblocks/ioapic.h>
|
||||||
#include <arch/ioapic.h>
|
#include <arch/ioapic.h>
|
||||||
@ -18,7 +19,6 @@
|
|||||||
#include "chip.h"
|
#include "chip.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ALIB_DPTCI_FUNCTION_ID = 0xc,
|
|
||||||
THERMAL_CONTROL_LIMIT_ID = 0x3,
|
THERMAL_CONTROL_LIMIT_ID = 0x3,
|
||||||
SUSTAINED_POWER_LIMIT_PARAM_ID = 0x5,
|
SUSTAINED_POWER_LIMIT_PARAM_ID = 0x5,
|
||||||
FAST_PPT_LIMIT_PARAM_ID = 0x6,
|
FAST_PPT_LIMIT_PARAM_ID = 0x6,
|
||||||
@ -196,7 +196,7 @@ static void dptc_call_alib(const char *buf_name, uint8_t *buffer, size_t size)
|
|||||||
|
|
||||||
/* \_SB.ALIB(0xc, buf_name) */
|
/* \_SB.ALIB(0xc, buf_name) */
|
||||||
acpigen_emit_namestring("\\_SB.ALIB");
|
acpigen_emit_namestring("\\_SB.ALIB");
|
||||||
acpigen_write_integer(ALIB_DPTCI_FUNCTION_ID);
|
acpigen_write_integer(ALIB_FUNCTION_DYNAMIC_POWER_THERMAL_CONFIG);
|
||||||
acpigen_emit_namestring(buf_name);
|
acpigen_emit_namestring(buf_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <amdblocks/alib.h>
|
||||||
|
|
||||||
External(\_SB.ALIB, MethodObj)
|
External(\_SB.ALIB, MethodObj)
|
||||||
|
|
||||||
/* System Bus */
|
/* System Bus */
|
||||||
@ -142,7 +144,7 @@ Method(_INI, 0, Serialized) {
|
|||||||
F1SZ = 3
|
F1SZ = 3
|
||||||
F1DA= \PWRS
|
F1DA= \PWRS
|
||||||
|
|
||||||
\_SB.ALIB(1, F1BF)
|
\_SB.ALIB(ALIB_FUNCTION_REPORT_AC_DC_STATE, F1BF)
|
||||||
|
|
||||||
} /* End Method(_SB._INI) */
|
} /* End Method(_SB._INI) */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user