ec/google/wilco: add ec command set cpu id
Add new mailbox command support. Set CPU ID and cores to EC. EC will according to different CPU to set different power table. BUG=b:148126144 Signed-off-by: Eric Lai <ericr_lai@compal.corp-partner.google.com> Change-Id: I135d2421d2106934be996a1780786f6bb0bf6b34 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38526 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Mathew King <mathewk@chromium.org>
This commit is contained in:
parent
ec430ee343
commit
f74b6e351c
|
@ -224,3 +224,29 @@ void die_notify(void)
|
||||||
wilco_ec_mailbox(WILCO_EC_MSG_DEFAULT, KB_ERR_CODE,
|
wilco_ec_mailbox(WILCO_EC_MSG_DEFAULT, KB_ERR_CODE,
|
||||||
&err_code, 1, NULL, 0);
|
&err_code, 1, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* EC CPU ID data struct
|
||||||
|
* MBOX[2] = 0xFF
|
||||||
|
* MBOX[3] = CPUID_Low
|
||||||
|
* MBOX[4] = CPUID_Mid
|
||||||
|
* MBOX[5] = CPUID_High
|
||||||
|
* MBOX[6] = CPU_Core
|
||||||
|
* MBOX[7] = GPU_Core
|
||||||
|
* MBOX[8] = Reserved
|
||||||
|
*/
|
||||||
|
int wilco_ec_set_cpuid(uint32_t cpuid, uint8_t cpu_cores, uint8_t gpu_cores)
|
||||||
|
{
|
||||||
|
uint8_t cpu_id[7] = {0}, i;
|
||||||
|
|
||||||
|
cpu_id[0] = 0xff;
|
||||||
|
for (i = 1; i < 4; i++) {
|
||||||
|
cpu_id[i] = cpuid & 0xff;
|
||||||
|
cpuid = cpuid >> 8;
|
||||||
|
}
|
||||||
|
cpu_id[4] = cpu_cores;
|
||||||
|
cpu_id[5] = gpu_cores;
|
||||||
|
|
||||||
|
return wilco_ec_mailbox(WILCO_EC_MSG_DEFAULT, KB_CPU_ID, cpu_id,
|
||||||
|
ARRAY_SIZE(cpu_id), NULL, 0);
|
||||||
|
}
|
||||||
|
|
|
@ -52,6 +52,8 @@ enum {
|
||||||
KB_BIOS_PROGRESS = 0xc2,
|
KB_BIOS_PROGRESS = 0xc2,
|
||||||
/* Inform the EC that a fatal error occurred */
|
/* Inform the EC that a fatal error occurred */
|
||||||
KB_ERR_CODE = 0x7b,
|
KB_ERR_CODE = 0x7b,
|
||||||
|
/* Set CPU ID */
|
||||||
|
KB_CPU_ID = 0xbf,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ec_ram_addr {
|
enum ec_ram_addr {
|
||||||
|
@ -337,4 +339,18 @@ int wilco_ec_signed_fw(void);
|
||||||
*/
|
*/
|
||||||
void wilco_ec_save_post_code(uint8_t post_code);
|
void wilco_ec_save_post_code(uint8_t post_code);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wilco_ec_set_cpuid
|
||||||
|
*
|
||||||
|
* Set CPU ID to EC.
|
||||||
|
*
|
||||||
|
* @cpuid: read CPU ID from cpu_eax(1)
|
||||||
|
* @cpu_cores: cores of CPU
|
||||||
|
* @gpu_cores: cores of GPU
|
||||||
|
*
|
||||||
|
* Returns 0 if EC command was successful
|
||||||
|
* Returns -1 if EC command failed
|
||||||
|
*/
|
||||||
|
int wilco_ec_set_cpuid(uint32_t cpuid, uint8_t cpu_cores, uint8_t gpu_cores);
|
||||||
|
|
||||||
#endif /* EC_GOOGLE_WILCO_COMMANDS_H */
|
#endif /* EC_GOOGLE_WILCO_COMMANDS_H */
|
||||||
|
|
Loading…
Reference in New Issue