44 lines
1.0 KiB
C
44 lines
1.0 KiB
C
/* 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_ */
|