| Index: src/platform/vboot_reference/vboot_firmware/lib/kernel_image_fw.c
|
| diff --git a/src/platform/vboot_reference/vboot_firmware/lib/kernel_image_fw.c b/src/platform/vboot_reference/vboot_firmware/lib/kernel_image_fw.c
|
| index 6cfb1970f5eabb35bb5e3d754dd7ff9345766b9f..27f2cf008e948a16f93fc6e46ae2b0e32368b88a 100644
|
| --- a/src/platform/vboot_reference/vboot_firmware/lib/kernel_image_fw.c
|
| +++ b/src/platform/vboot_reference/vboot_firmware/lib/kernel_image_fw.c
|
| @@ -366,6 +366,7 @@ int VerifyKernelDriver_f(uint8_t* firmware_key_blob,
|
| kernel_entry* try_kernel[2]; /* Kernel in try order. */
|
| int try_kernel_which[2]; /* Which corresponding kernel in the try order */
|
| uint32_t try_kernel_lversion[2]; /* Their logical versions. */
|
| + uint16_t kernel_version, kernel_key_version; /* Temporary variables */
|
|
|
| /* [kernel_to_boot] will eventually contain the boot path to follow
|
| * and is returned to the caller. Initially, we set it to recovery. If
|
| @@ -384,8 +385,8 @@ int VerifyKernelDriver_f(uint8_t* firmware_key_blob,
|
| kernelA_lversion = GetLogicalKernelVersion(kernelA->kernel_blob);
|
| kernelB_lversion = GetLogicalKernelVersion(kernelB->kernel_blob);
|
| min_lversion = Min(kernelA_lversion, kernelB_lversion);
|
| - stored_lversion = CombineUint16Pair(GetStoredVersion(KERNEL_KEY_VERSION),
|
| - GetStoredVersion(KERNEL_VERSION));
|
| + GetStoredVersions(KERNEL_VERSIONS, &kernel_key_version, &kernel_version);
|
| + stored_lversion = CombineUint16Pair(kernel_key_version, kernel_version);
|
|
|
| /* TODO(gauravsh): The kernel entries kernelA and kernelB come from the
|
| * partition table - verify its signature/checksum before proceeding
|
| @@ -433,10 +434,9 @@ int VerifyKernelDriver_f(uint8_t* firmware_key_blob,
|
| if (VERIFY_KERNEL_SUCCESS == VerifyKernel(firmware_key_blob,
|
| try_kernel[1]->kernel_blob,
|
| dev_mode)) {
|
| - WriteStoredVersion(KERNEL_KEY_VERSION,
|
| - (uint16_t) (min_lversion >> 16));
|
| - WriteStoredVersion(KERNEL_VERSION,
|
| - (uint16_t) (min_lversion & 0xFFFF));
|
| + WriteStoredVersions(KERNEL_VERSIONS,
|
| + (uint16_t) (min_lversion >> 16),
|
| + (uint16_t) (min_lversion & 0xFFFF));
|
| stored_lversion = min_lversion; /* Update stored version as it's
|
| * used later. */
|
| }
|
|
|