From 93f2848eb9e73b1460029a39f520e5a14286b5ba Mon Sep 17 00:00:00 2001 From: Vadim Bendebury Date: Thu, 11 Feb 2016 16:42:01 -0800 Subject: cr50: upgrade command extension This patch suggests a firmware upgrade mechanism implemented through an extended TPM command. The firmware is transmitted in chunks, each chunk accompanied by its checksum (first 32 bits of SHA1) and the base address. The first chunk is of size zero and has the base address set to zero. When the first chunk is received, the command handler determines the destination flash space (A or B), erases it, and returns its base address to the caller, such that the firmware update agent can tell in which of the two spaces it should write the update. The ultimate verification happens after the device is reset - the integrity and authentity of the firmware upgrade is verified at that point, the new firmware will not be started unless it is properly signed. BRANCH=none BUG=chrome-os-partner:37754 TEST=with all patches applied it is possible to upgrade firmware in both spaces A and B. Change-Id: I6aedc587ec630d65ba81000496f372c9044959a0 Signed-off-by: Vadim Bendebury Reviewed-on: https://chromium-review.googlesource.com/327415 Reviewed-by: Bill Richardson --- include/extension.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/extension.h') diff --git a/include/extension.h b/include/extension.h index 78b9d63f37..4e7b66558c 100644 --- a/include/extension.h +++ b/include/extension.h @@ -50,6 +50,7 @@ enum { EXTENSION_HASH = 1, EXTENSION_RSA = 2, EXTENSION_EC = 3, + EXTENSION_FW_UPGRADE = 4, }; -- cgit v1.2.1