ec/google/wilco: Add function to indicate if EC uses signed FW

This will be used to distinguish the mainboard SKU so that the
correct EC firmware can be bundled with the board.

This is read from EC RAM so it can be used by an ACPI method in
the future.

BUG=b:119490232

Change-Id: I71b8017fc4b88e793dfe709e1cb1ab0f0bcdc4fa
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/32001
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
Duncan Laurie 2019-03-20 12:51:07 -07:00 committed by Duncan Laurie
parent a9273b5015
commit 32346f0aa2
3 changed files with 21 additions and 0 deletions

View File

@ -123,6 +123,8 @@ Name (OERL, Package () { 0x3a, 0x02, RD }) /* Event: Rotation Lock */
Name (BCCY, Package () { 0x3e, 0xffff, RD }) /* BCACHE: Cycle Count */
Name (ESGN, Package () { 0x5c, 0xff, RD }) /* Indicate EC uses signed FW */
/*
* EC RAM WRITE
*/

View File

@ -14,6 +14,7 @@
*/
#include <console/console.h>
#include <ec/acpi/ec.h>
#include <stdint.h>
#include <string.h>
@ -167,3 +168,10 @@ int wilco_ec_change_wake(uint8_t source, enum ec_wake_change change)
wake_source, ARRAY_SIZE(wake_source),
NULL, 0);
}
int wilco_ec_signed_fw(void)
{
ec_set_ports(CONFIG_EC_BASE_ACPI_COMMAND,
CONFIG_EC_BASE_ACPI_DATA);
return !!ec_read(EC_RAM_SIGNED_FW);
}

View File

@ -51,6 +51,8 @@ enum {
};
enum ec_ram_addr {
/* Indicate if EC uses signed firmware */
EC_RAM_SIGNED_FW = 0x5c,
/* Indicate support for S0ix */
EC_RAM_S0IX_SUPPORT = 0xb8,
};
@ -285,4 +287,13 @@ enum ec_acpi_wake_events {
EC_ACPI_WAKE_RTC = BIT(5), /* Wake up by RTC */
};
/**
* wilco_ec_signed_fw
*
* Indicate if the EC uses signed firmware.
*
* Returns 1 if EC uses signed firmware, otherwise returns 0
*/
int wilco_ec_signed_fw(void);
#endif /* EC_GOOGLE_WILCO_COMMANDS_H */