From 091c7b17f09f287da115ca247d39e7128158a581 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Thu, 26 Mar 2015 16:58:49 -0700 Subject: futility: put all the BIOS stuff into a separate file This moves the functions that handle BIOS file types into a separate set of source files. BIOSes are constructed from other components arranged in particular ways, so they shouldn't be mixed in with the code specifically for those components. BUG=chromium:231574 BRANCH=none TEST=make runtests Signed-off-by: Bill Richardson Change-Id: I15c3fec61498925f9b8c672092fd97e7ea2d90e9 Reviewed-on: https://chromium-review.googlesource.com/262898 Reviewed-by: Randall Spangler --- futility/file_type_bios.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 futility/file_type_bios.h (limited to 'futility/file_type_bios.h') diff --git a/futility/file_type_bios.h b/futility/file_type_bios.h new file mode 100644 index 00000000..3cd2e797 --- /dev/null +++ b/futility/file_type_bios.h @@ -0,0 +1,42 @@ +/* + * 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_FUTILITY_FILE_TYPE_BIOS_H_ +#define VBOOT_REFERENCE_FUTILITY_FILE_TYPE_BIOS_H_ +#include + +/* + * 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_FUTILITY_FILE_TYPE_BIOS_H_ */ -- cgit v1.2.1