ec/google/wilco: Add support for KB_ERR_CODE to Wilco EC
Adds support for the KB_ERR_CODE command on the Wilco EC. This command is used to drive diagnostic LEDs on the platform after a failed boot. This change also adds the Wilco EC mailbox command support to bootblock and verstage so that those stages can use the KB_ERR_CODE command. BUG=b:124401932 BRANCH=sarien TEST=build coreboot for sarien and arcada platforms Change-Id: I96d17baf57694e4e01c676d80c606f67054cd0c3 Signed-off-by: Keith Short <keithshort@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/32776 Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
686b539949
commit
8ef6732b94
|
@ -1,6 +1,7 @@
|
||||||
ifeq ($(CONFIG_EC_GOOGLE_WILCO),y)
|
ifeq ($(CONFIG_EC_GOOGLE_WILCO),y)
|
||||||
|
|
||||||
bootblock-y += bootblock.c
|
bootblock-y += bootblock.c commands.c mailbox.c
|
||||||
|
verstage-y += commands.c mailbox.c
|
||||||
romstage-y += commands.c mailbox.c romstage.c boardid.c
|
romstage-y += commands.c mailbox.c romstage.c boardid.c
|
||||||
ramstage-y += chip.c commands.c mailbox.c boardid.c
|
ramstage-y += chip.c commands.c mailbox.c boardid.c
|
||||||
smm-y += commands.c mailbox.c smihandler.c boardid.c
|
smm-y += commands.c mailbox.c smihandler.c boardid.c
|
||||||
|
|
|
@ -181,3 +181,9 @@ int wilco_ec_signed_fw(void)
|
||||||
CONFIG_EC_BASE_ACPI_DATA);
|
CONFIG_EC_BASE_ACPI_DATA);
|
||||||
return !!ec_read(EC_RAM_SIGNED_FW);
|
return !!ec_read(EC_RAM_SIGNED_FW);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int wilco_ec_err_code(enum ec_err_code err_code)
|
||||||
|
{
|
||||||
|
return wilco_ec_mailbox(WILCO_EC_MSG_DEFAULT, KB_ERR_CODE,
|
||||||
|
&err_code, 1, NULL, 0);
|
||||||
|
}
|
||||||
|
|
|
@ -50,6 +50,8 @@ enum {
|
||||||
KB_SLP_EN = 0x64,
|
KB_SLP_EN = 0x64,
|
||||||
/* Inform the EC about BIOS boot progress */
|
/* Inform the EC about BIOS boot progress */
|
||||||
KB_BIOS_PROGRESS = 0xc2,
|
KB_BIOS_PROGRESS = 0xc2,
|
||||||
|
/* Inform the EC that a fatal error occurred */
|
||||||
|
KB_ERR_CODE = 0x7b,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ec_ram_addr {
|
enum ec_ram_addr {
|
||||||
|
@ -86,6 +88,12 @@ enum ec_camera {
|
||||||
CAMERA_OFF
|
CAMERA_OFF
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ec_err_code {
|
||||||
|
DLED_MEMORY = 0x03,
|
||||||
|
DLED_PANEL = 0x10,
|
||||||
|
DLED_ROM = 0x19,
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wilco_ec_radio_control() - Control wireless radios.
|
* wilco_ec_radio_control() - Control wireless radios.
|
||||||
* @ec_radio: Wireless radio type.
|
* @ec_radio: Wireless radio type.
|
||||||
|
@ -310,4 +318,17 @@ enum ec_acpi_wake_events {
|
||||||
*/
|
*/
|
||||||
int wilco_ec_signed_fw(void);
|
int wilco_ec_signed_fw(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wilco_ec_err_code
|
||||||
|
*
|
||||||
|
* Send an error code to the EC to indicate a failed boot. The EC flashes the
|
||||||
|
* platform LED amber and white to provide user indication of the failure type.
|
||||||
|
*
|
||||||
|
* @err_code: Error code to send to the EC
|
||||||
|
*
|
||||||
|
* Returns 0 if EC command was successful
|
||||||
|
* Returns -1 if EC command failed
|
||||||
|
*/
|
||||||
|
int wilco_ec_err_code(enum ec_err_code err_code);
|
||||||
|
|
||||||
#endif /* EC_GOOGLE_WILCO_COMMANDS_H */
|
#endif /* EC_GOOGLE_WILCO_COMMANDS_H */
|
||||||
|
|
Loading…
Reference in New Issue