summaryrefslogtreecommitdiff
path: root/common/extension.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/extension.c')
-rw-r--r--common/extension.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/common/extension.c b/common/extension.c
index 0e9ad5bfca..63d20de365 100644
--- a/common/extension.c
+++ b/common/extension.c
@@ -22,6 +22,22 @@ static uint32_t extension_route_command(uint16_t command_code,
cmd_p = (struct extension_command *)&__extension_cmds;
end_p = (struct extension_command *)&__extension_cmds_end;
+#ifdef CONFIG_BOARD_ID_SUPPORT
+ if (board_id_is_mismatched()) {
+ switch (command_code) {
+ case EXTENSION_FW_UPGRADE:
+ case VENDOR_CC_REPORT_TPM_STATE:
+ case VENDOR_CC_TURN_UPDATE_ON:
+ case EXTENSION_POST_RESET:
+ break;
+ default:
+ CPRINTF("%s: ignoring command 0x%x "
+ "due to board ID mismatch\n",
+ __func__, command_code);
+ return VENDOR_RC_NO_SUCH_COMMAND;
+ }
+ }
+#endif
while (cmd_p != end_p) {
if (cmd_p->command_code == command_code)
return cmd_p->handler(command_code, buffer,