Duncan Laurie has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/32001
Change subject: ec/google/wilco: Add function to indicate if EC uses signed FW ......................................................................
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 --- M src/ec/google/wilco/acpi/ec_ram.asl M src/ec/google/wilco/commands.c M src/ec/google/wilco/commands.h 3 files changed, 21 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/01/32001/1
diff --git a/src/ec/google/wilco/acpi/ec_ram.asl b/src/ec/google/wilco/acpi/ec_ram.asl index 59bd78e..0de39475 100644 --- a/src/ec/google/wilco/acpi/ec_ram.asl +++ b/src/ec/google/wilco/acpi/ec_ram.asl @@ -123,6 +123,8 @@
Name (BCCY, Package () { 0x3e, 0xffff, RD }) /* BCACHE: Cycle Count */
+Name (ESGN, Package () { 0x5c, 0xff, RD }) /* Indicate EC uses signed FW */ + /* * EC RAM WRITE */ diff --git a/src/ec/google/wilco/commands.c b/src/ec/google/wilco/commands.c index 1c76461..da04e27 100644 --- a/src/ec/google/wilco/commands.c +++ b/src/ec/google/wilco/commands.c @@ -14,6 +14,7 @@ */
#include <console/console.h> +#include <ec/acpi/ec.h> #include <stdint.h> #include <string.h>
@@ -167,3 +168,10 @@ 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); +} diff --git a/src/ec/google/wilco/commands.h b/src/ec/google/wilco/commands.h index 9c1685b..42bb4f2 100644 --- a/src/ec/google/wilco/commands.h +++ b/src/ec/google/wilco/commands.h @@ -51,6 +51,8 @@ };
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 @@ 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 */
Furquan Shaikh has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/32001 )
Change subject: ec/google/wilco: Add function to indicate if EC uses signed FW ......................................................................
Patch Set 1: Code-Review+2
Duncan Laurie has submitted this change and it was merged. ( https://review.coreboot.org/c/coreboot/+/32001 )
Change subject: ec/google/wilco: Add function to indicate if EC uses signed FW ......................................................................
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 --- M src/ec/google/wilco/acpi/ec_ram.asl M src/ec/google/wilco/commands.c M src/ec/google/wilco/commands.h 3 files changed, 21 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Furquan Shaikh: Looks good to me, approved
diff --git a/src/ec/google/wilco/acpi/ec_ram.asl b/src/ec/google/wilco/acpi/ec_ram.asl index 59bd78e..0de39475 100644 --- a/src/ec/google/wilco/acpi/ec_ram.asl +++ b/src/ec/google/wilco/acpi/ec_ram.asl @@ -123,6 +123,8 @@
Name (BCCY, Package () { 0x3e, 0xffff, RD }) /* BCACHE: Cycle Count */
+Name (ESGN, Package () { 0x5c, 0xff, RD }) /* Indicate EC uses signed FW */ + /* * EC RAM WRITE */ diff --git a/src/ec/google/wilco/commands.c b/src/ec/google/wilco/commands.c index 1c76461..da04e27 100644 --- a/src/ec/google/wilco/commands.c +++ b/src/ec/google/wilco/commands.c @@ -14,6 +14,7 @@ */
#include <console/console.h> +#include <ec/acpi/ec.h> #include <stdint.h> #include <string.h>
@@ -167,3 +168,10 @@ 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); +} diff --git a/src/ec/google/wilco/commands.h b/src/ec/google/wilco/commands.h index 9c1685b..42bb4f2 100644 --- a/src/ec/google/wilco/commands.h +++ b/src/ec/google/wilco/commands.h @@ -51,6 +51,8 @@ };
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 @@ 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 */