diff options
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | firmware/lib/include/rollback_index.h | 5 | ||||
-rw-r--r-- | firmware/lib/rollback_index.c | 48 | ||||
-rw-r--r-- | tests/rollback_index2_tests.c | 6 | ||||
-rw-r--r-- | tests/vboot_api_kernel2_tests.c | 5 | ||||
-rw-r--r-- | tests/vboot_api_kernel5_tests.c | 31 | ||||
-rw-r--r-- | tests/vboot_detach_menu_tests.c | 5 |
7 files changed, 46 insertions, 60 deletions
@@ -867,12 +867,6 @@ ${FWLIB21_OBJS}: CFLAGS += -DUNROLL_LOOPS ${FWLIB_OBJS}: CFLAGS += -DSAVE_LOCALE_IMMEDIATELY endif -ifeq (${FIRMWARE_ARCH},) -# Disable rollback TPM when compiling locally, since otherwise -# load_kernel_test attempts to talk to the TPM. -${FWLIB_OBJS}: CFLAGS += -DDISABLE_ROLLBACK_TPM -endif - ${FWLIB21_OBJS}: INCLUDES += -Ifirmware/lib21/include # Linktest ensures firmware lib doesn't rely on outside libraries diff --git a/firmware/lib/include/rollback_index.h b/firmware/lib/include/rollback_index.h index 9d6cfcc3..4836063e 100644 --- a/firmware/lib/include/rollback_index.h +++ b/firmware/lib/include/rollback_index.h @@ -118,6 +118,11 @@ enum fwmp_flags { * global variables. */ +uint32_t ReadSpaceFirmware(RollbackSpaceFirmware *rsf); +uint32_t WriteSpaceFirmware(RollbackSpaceFirmware *rsf); +uint32_t ReadSpaceKernel(RollbackSpaceKernel *rsk); +uint32_t WriteSpaceKernel(RollbackSpaceKernel *rsk); + /** * Read stored kernel version. */ diff --git a/firmware/lib/rollback_index.c b/firmware/lib/rollback_index.c index c04a282d..e4493a4a 100644 --- a/firmware/lib/rollback_index.c +++ b/firmware/lib/rollback_index.c @@ -18,25 +18,6 @@ #define offsetof(A,B) __builtin_offsetof(A,B) #endif -/* - * Provide protoypes for functions not in the header file. These prototypes - * fix -Wmissing-prototypes warnings. - */ -uint32_t ReadSpaceFirmware(RollbackSpaceFirmware *rsf); -uint32_t WriteSpaceFirmware(RollbackSpaceFirmware *rsf); -uint32_t ReadSpaceKernel(RollbackSpaceKernel *rsk); -uint32_t WriteSpaceKernel(RollbackSpaceKernel *rsk); - -#ifdef FOR_TEST -/* - * Compiling for unit test, so we need the real implementations of - * rollback functions. The unit test mocks the underlying tlcl - * functions, so this is okay to run on the host. - */ -#undef CHROMEOS_ENVIRONMENT -#undef DISABLE_ROLLBACK_TPM -#endif - #define RETURN_ON_FAILURE(tpm_command) do { \ uint32_t result_; \ if ((result_ = (tpm_command)) != TPM_SUCCESS) { \ @@ -200,33 +181,6 @@ uint32_t WriteSpaceKernel(RollbackSpaceKernel *rsk) return TPM_SUCCESS; } -#ifdef DISABLE_ROLLBACK_TPM -/* Dummy implementations which don't support TPM rollback protection */ - -uint32_t RollbackKernelRead(uint32_t* version) -{ - *version = 0; - return TPM_SUCCESS; -} - -uint32_t RollbackKernelWrite(uint32_t version) -{ - return TPM_SUCCESS; -} - -uint32_t RollbackKernelLock(int recovery_mode) -{ - return TPM_SUCCESS; -} - -uint32_t RollbackFwmpRead(struct RollbackSpaceFwmp *fwmp) -{ - memset(fwmp, 0, sizeof(*fwmp)); - return TPM_SUCCESS; -} - -#else - uint32_t RollbackKernelRead(uint32_t* version) { RollbackSpaceKernel rsk; @@ -338,5 +292,3 @@ uint32_t RollbackFwmpRead(struct RollbackSpaceFwmp *fwmp) memcpy(fwmp, &u.fwmp, sizeof(*fwmp)); return TPM_SUCCESS; } - -#endif /* DISABLE_ROLLBACK_TPM */ diff --git a/tests/rollback_index2_tests.c b/tests/rollback_index2_tests.c index 9df8b06d..b8ebc80e 100644 --- a/tests/rollback_index2_tests.c +++ b/tests/rollback_index2_tests.c @@ -254,9 +254,6 @@ uint32_t TlclGetPermissions(uint32_t index, uint32_t* permissions) /****************************************************************************/ /* Tests for CRC errors */ -extern uint32_t ReadSpaceFirmware(RollbackSpaceFirmware *rsf); -extern uint32_t WriteSpaceFirmware(RollbackSpaceFirmware *rsf); - static void FirmwareSpaceTest(void) { RollbackSpaceFirmware rsf; @@ -290,9 +287,6 @@ static void FirmwareSpaceTest(void) "tlcl calls"); } -extern uint32_t ReadSpaceKernel(RollbackSpaceKernel *rsk); -extern uint32_t WriteSpaceKernel(RollbackSpaceKernel *rsk); - static void KernelSpaceTest(void) { RollbackSpaceKernel rsk; diff --git a/tests/vboot_api_kernel2_tests.c b/tests/vboot_api_kernel2_tests.c index 49a4233a..1791dc71 100644 --- a/tests/vboot_api_kernel2_tests.c +++ b/tests/vboot_api_kernel2_tests.c @@ -127,6 +127,11 @@ static void ResetMocks(void) } /* Mock functions */ +uint32_t RollbackKernelLock(int recovery_mode) +{ + return TPM_SUCCESS; +} + struct vb2_gbb_header *vb2_get_gbb(struct vb2_context *c) { return &gbb; diff --git a/tests/vboot_api_kernel5_tests.c b/tests/vboot_api_kernel5_tests.c index bd584395..f07fc2d9 100644 --- a/tests/vboot_api_kernel5_tests.c +++ b/tests/vboot_api_kernel5_tests.c @@ -19,6 +19,7 @@ #include "2struct.h" #include "host_common.h" #include "load_kernel_fw.h" +#include "rollback_index.h" #include "test_common.h" #include "vb2_common.h" #include "vboot_api.h" @@ -115,6 +116,36 @@ struct vb2_gbb_header *vb2_get_gbb(struct vb2_context *c) return &gbb; } +uint32_t ReadSpaceFirmware(RollbackSpaceFirmware *rsk) +{ + return VB2_SUCCESS; +} + +uint32_t WriteSpaceFirmware(RollbackSpaceFirmware *rsk) +{ + return VB2_SUCCESS; +} + +uint32_t ReadSpaceKernel(RollbackSpaceKernel *rsk) +{ + return VB2_SUCCESS; +} + +uint32_t WriteSpaceKernel(RollbackSpaceKernel *rsk) +{ + return VB2_SUCCESS; +} + +uint32_t RollbackKernelLock(int recovery_mode) +{ + return TPM_SUCCESS; +} + +uint32_t RollbackFwmpRead(struct RollbackSpaceFwmp *fwmp) +{ + return TPM_SUCCESS; +} + vb2_error_t vb2ex_read_resource(struct vb2_context *c, enum vb2_resource_index index, uint32_t offset, void *buf, uint32_t size) diff --git a/tests/vboot_detach_menu_tests.c b/tests/vboot_detach_menu_tests.c index 1a0c6175..14e0aa30 100644 --- a/tests/vboot_detach_menu_tests.c +++ b/tests/vboot_detach_menu_tests.c @@ -129,6 +129,11 @@ static void ResetMocksForManualRecovery(void) } /* Mock functions */ +uint32_t RollbackKernelLock(int recovery_mode) +{ + return TPM_SUCCESS; +} + struct vb2_gbb_header *vb2_get_gbb(struct vb2_context *c) { return &gbb; |