| /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef VBOOT_REFERENCE_FILE_TYPE_BIOS_H_ |
| #define VBOOT_REFERENCE_FILE_TYPE_BIOS_H_ |
| |
| #include <stdint.h> |
| |
| /* |
| * The Chrome OS BIOS must contain specific FMAP areas, which we want to look |
| * at in a certain order. |
| */ |
| enum bios_component { |
| BIOS_FMAP_GBB, |
| BIOS_FMAP_FW_MAIN_A, |
| BIOS_FMAP_FW_MAIN_B, |
| BIOS_FMAP_VBLOCK_A, |
| BIOS_FMAP_VBLOCK_B, |
| |
| NUM_BIOS_COMPONENTS |
| }; |
| |
| /* Location information for each component */ |
| struct bios_area_s { |
| uint32_t offset; /* to avoid pointer math */ |
| uint8_t *buf; |
| uint32_t len; |
| uint32_t is_valid; |
| }; |
| |
| /* State to track as we visit all components */ |
| struct bios_state_s { |
| /* Current component */ |
| enum bios_component c; |
| /* Other activites, possibly before or after the current one */ |
| struct bios_area_s area[NUM_BIOS_COMPONENTS]; |
| struct bios_area_s recovery_key; |
| struct bios_area_s rootkey; |
| }; |
| |
| #endif /* VBOOT_REFERENCE_FILE_TYPE_BIOS_H_ */ |