soc/amd/cezanne: add SMU support
BUG=b:181766974 Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I5b9b4c3d57945ea7c3287cf47f3d9704f42ff24b Reviewed-on: https://review.coreboot.org/c/coreboot/+/51233 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
parent
dac1a456f9
commit
7f3f52d7c6
4 changed files with 45 additions and 0 deletions
|
@ -42,6 +42,7 @@ config SOC_SPECIFIC_OPTIONS
|
|||
select SOC_AMD_COMMON_BLOCK_SMBUS
|
||||
select SOC_AMD_COMMON_BLOCK_SMI
|
||||
select SOC_AMD_COMMON_BLOCK_SMM
|
||||
select SOC_AMD_COMMON_BLOCK_SMU
|
||||
select SOC_AMD_COMMON_BLOCK_SPI
|
||||
select SOC_AMD_COMMON_BLOCK_TSC_FAM17H_19H
|
||||
select SOC_AMD_COMMON_BLOCK_UART
|
||||
|
|
|
@ -37,6 +37,7 @@ ramstage-y += root_complex.c
|
|||
ramstage-y += uart.c
|
||||
|
||||
smm-y += smihandler.c
|
||||
smm-y += smu.c
|
||||
smm-$(CONFIG_DEBUG_SMI) += uart.c
|
||||
|
||||
CPPFLAGS_common += -I$(src)/soc/amd/cezanne/include
|
||||
|
|
26
src/soc/amd/cezanne/include/soc/smu.h
Normal file
26
src/soc/amd/cezanne/include/soc/smu.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#ifndef AMD_CEZANNE_SMU_H
|
||||
#define AMD_CEZANNE_SMU_H
|
||||
|
||||
/*
|
||||
* SMU mailbox register offsets in indirect address space accessed by an index/data pair in
|
||||
* D0F00 config space.
|
||||
*/
|
||||
#define REG_ADDR_MESG_ID 0x3b10528
|
||||
#define REG_ADDR_MESG_RESP 0x3b10564
|
||||
#define REG_ADDR_MESG_ARGS_BASE 0x3b10998
|
||||
|
||||
#define SMU_NUM_ARGS 6
|
||||
|
||||
enum smu_message_id {
|
||||
SMC_MSG_S3ENTRY = 0x0b,
|
||||
};
|
||||
|
||||
/*
|
||||
* Request the SMU put system into S3, S4, or S5. On entry, SlpTyp determines S-State and
|
||||
* SlpTypeEn gets set by the SMU. Function does not return if successful.
|
||||
*/
|
||||
void smu_sx_entry(void);
|
||||
|
||||
#endif /* AMD_CEZANNE_SMU_H */
|
17
src/soc/amd/cezanne/smu.c
Normal file
17
src/soc/amd/cezanne/smu.c
Normal file
|
@ -0,0 +1,17 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <console/console.h>
|
||||
#include <amdblocks/smu.h>
|
||||
#include <soc/smu.h>
|
||||
|
||||
/*
|
||||
* Request the SMU to put system into S3, S4, or S5. On entry, SlpTyp determines S-State and
|
||||
* SlpTypeEn gets set by the SMU. Function does not return if successful.
|
||||
*/
|
||||
void smu_sx_entry(void)
|
||||
{
|
||||
struct smu_payload msg = { 0 }; /* Unused for SMC_MSG_S3ENTRY */
|
||||
|
||||
printk(BIOS_DEBUG, "SMU: Put system into S3/S4/S5\n");
|
||||
send_smu_message(SMC_MSG_S3ENTRY, &msg);
|
||||
}
|
Loading…
Reference in a new issue