Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
| 3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
| 4 * | 4 * |
| 5 * High-level firmware API for loading and verifying rewritable firmware. | 5 * High-level firmware API for loading and verifying rewritable firmware. |
| 6 * (Firmware portion) | 6 * (Firmware portion) |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 #include "vboot_firmware.h" | 9 #include "vboot_firmware.h" |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 33 /* Clear output params in case we fail */ | 33 /* Clear output params in case we fail */ |
| 34 params->firmware_index = 0; | 34 params->firmware_index = 0; |
| 35 params->kernel_sign_key_blob = NULL; | 35 params->kernel_sign_key_blob = NULL; |
| 36 params->kernel_sign_key_size = 0; | 36 params->kernel_sign_key_size = 0; |
| 37 | 37 |
| 38 /* Must have a root key */ | 38 /* Must have a root key */ |
| 39 if (!root_key) | 39 if (!root_key) |
| 40 return LOAD_FIRMWARE_RECOVERY; | 40 return LOAD_FIRMWARE_RECOVERY; |
| 41 | 41 |
| 42 /* Initialize the TPM and read rollback indices. */ | 42 /* Initialize the TPM and read rollback indices. */ |
| 43 if (0 != SetupTPM() ) | 43 /* TODO: fix SetupTPM parameter */ |
|
gauravsh
2010/06/14 10:57:53
fix parameter how?
| |
| 44 if (0 != SetupTPM(0, 0) ) | |
| 44 return LOAD_FIRMWARE_RECOVERY; | 45 return LOAD_FIRMWARE_RECOVERY; |
| 45 if (0 != GetStoredVersions(FIRMWARE_VERSIONS, | 46 if (0 != GetStoredVersions(FIRMWARE_VERSIONS, |
| 46 &tpm_key_version, &tpm_fw_version)) | 47 &tpm_key_version, &tpm_fw_version)) |
| 47 return LOAD_FIRMWARE_RECOVERY; | 48 return LOAD_FIRMWARE_RECOVERY; |
| 48 | 49 |
| 49 /* Loop over indices */ | 50 /* Loop over indices */ |
| 50 for (index = 0; index < 2; index++) { | 51 for (index = 0; index < 2; index++) { |
| 51 VbKeyBlockHeader* key_block; | 52 VbKeyBlockHeader* key_block; |
| 52 uint64_t vblock_size; | 53 uint64_t vblock_size; |
| 53 VbFirmwarePreambleHeader* preamble; | 54 VbFirmwarePreambleHeader* preamble; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 164 /* Lock Firmware TPM rollback indices from further writes. In | 165 /* Lock Firmware TPM rollback indices from further writes. In |
| 165 * this design, this is done by setting the globalLock bit, which | 166 * this design, this is done by setting the globalLock bit, which |
| 166 * is cleared only by TPM_Init at reboot. */ | 167 * is cleared only by TPM_Init at reboot. */ |
| 167 if (0 != LockFirmwareVersions()) | 168 if (0 != LockFirmwareVersions()) |
| 168 return LOAD_FIRMWARE_RECOVERY; | 169 return LOAD_FIRMWARE_RECOVERY; |
| 169 } | 170 } |
| 170 | 171 |
| 171 /* If we're still here, no good firmware, so go to recovery mode. */ | 172 /* If we're still here, no good firmware, so go to recovery mode. */ |
| 172 return LOAD_FIRMWARE_RECOVERY; | 173 return LOAD_FIRMWARE_RECOVERY; |
| 173 } | 174 } |
| OLD | NEW |