| Index: firmware/lib/vboot_kernel.c
|
| diff --git a/firmware/lib/vboot_kernel.c b/firmware/lib/vboot_kernel.c
|
| index 7996564c1542d6c0b4437285a13c83625bbe81fe..609fe9e0f928806905a092f18c4e43a8ff516f86 100644
|
| --- a/firmware/lib/vboot_kernel.c
|
| +++ b/firmware/lib/vboot_kernel.c
|
| @@ -211,18 +211,21 @@ int LoadKernel(LoadKernelParams* params) {
|
| continue;
|
| }
|
|
|
| - /* Check the key block flags against the current boot mode */
|
| - if (!(key_block->key_block_flags &
|
| - (is_dev ? KEY_BLOCK_FLAG_DEVELOPER_1 :
|
| - KEY_BLOCK_FLAG_DEVELOPER_0))) {
|
| - VBDEBUG(("Developer flag mismatch.\n"));
|
| - continue;
|
| - }
|
| - if (!(key_block->key_block_flags &
|
| - (is_rec ? KEY_BLOCK_FLAG_RECOVERY_1 :
|
| - KEY_BLOCK_FLAG_RECOVERY_0))) {
|
| - VBDEBUG(("Recovery flag mismatch.\n"));
|
| - continue;
|
| + /* Check the key block flags against the current boot mode in normal
|
| + * and recovery modes (not in developer mode booting from SSD). */
|
| + if (is_rec || is_normal) {
|
| + if (!(key_block->key_block_flags &
|
| + (is_dev ? KEY_BLOCK_FLAG_DEVELOPER_1 :
|
| + KEY_BLOCK_FLAG_DEVELOPER_0))) {
|
| + VBDEBUG(("Developer flag mismatch.\n"));
|
| + continue;
|
| + }
|
| + if (!(key_block->key_block_flags &
|
| + (is_rec ? KEY_BLOCK_FLAG_RECOVERY_1 :
|
| + KEY_BLOCK_FLAG_RECOVERY_0))) {
|
| + VBDEBUG(("Recovery flag mismatch.\n"));
|
| + continue;
|
| + }
|
| }
|
|
|
| /* Check for rollback of key version. Note this is implicitly
|
|
|