| 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
 | 
| 
 |