Home | History | Annotate | Download | only in include
      1 /* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
      2  * Use of this source code is governed by a BSD-style license that can be
      3  * found in the LICENSE file.
      4  *
      5  * Firmware hash tags for verified boot
      6  */
      7 
      8 #ifndef VBOOT_REFERENCE_VBOOT_2FW_HASH_TAGS_H_
      9 #define VBOOT_REFERENCE_VBOOT_2FW_HASH_TAGS_H_
     10 #include <stdint.h>
     11 
     12 /*
     13  * Tags for types of hashable data.
     14  *
     15  * Note that not every firmware image will contain every tag.
     16  *
     17  * TODO: These are the ones that vboot specifically knows about given the
     18  * current data structures.  In the future, I'd really like the vboot preamble
     19  * to contain an arbitrary list of tags and their hashes, so that we can hash
     20  * ram init, main RW body, EC-RW for software sync, etc. all separately.
     21  */
     22 enum vb2_hash_tag {
     23 	/* Invalid hash tag; never present in table */
     24 	VB2_HASH_TAG_INVALID = 0,
     25 
     26 	/* Firmware body */
     27 	VB2_HASH_TAG_FW_BODY = 1,
     28 
     29 	/* Kernel data key */
     30 	VB2_HASH_TAG_KERNEL_DATA_KEY = 2,
     31 
     32 	/*
     33 	 * Tags over 0x40000000 are reserved for use by the calling firmware,
     34 	 * which may associate them with arbitrary types of RW firmware data
     35 	 * that it wants to track.
     36 	 */
     37 	VB2_HASH_TAG_CALLER_BASE = 0x40000000
     38 };
     39 
     40 #endif /* VBOOT_REFERENCE_VBOOT_2FW_HASH_TAGS_H_ */
     41