c1072f2fc7
Once a second bootblock has been added using topswap (-j) option, Update the entries in second FIT using -j option with update-fit command. Additionally add a -q option which allows to insert the address of a FMAP region (which should hold a microcode) as the first entry in the second FIT. BUG=None BRANCH=None TEST= Create ROM images with -j options and update FIT using -q option. example: ./build/util/cbfstool/cbfstool coreboot.tmp create \ -M build/fmap.fmap -r COREBOOT,FW_MAIN_A,FW_MAIN_B,RW_LEGACY build/util/cbfstool/cbfstool coreboot.tmp add \ -f build/cbfs/fallback/bootblock.bin -n bootblock -t \ bootblock -b -49152 -j 0x10000 build/util/cbfstool/cbfstool coreboot.tmp add-master-header -j 0x10000 build/util/cbfstool/cbfstool coreboot.tmp add -f build/cpu_microcode_blob.bin \ -n cpu_microcode_blob.bin -t microcode -r COREBOOT -a 16 build/util/cbfstool/cbfstool coreboot.tmp. update-fit \ -n cpu_microcode_blob.bin -x 4 -j 0x10000 -q FW_MAIN_A Also try the failure scenarion by providing invalid topswap size. Change-Id: I9a417031c279038903cdf1761a791f2da0fe8644 Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com> Reviewed-on: https://review.coreboot.org/26836 Reviewed-by: Subrata Banik <subrata.banik@intel.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
42 lines
1.5 KiB
C
42 lines
1.5 KiB
C
/*
|
|
* Firmware Interface Table support.
|
|
*
|
|
* Copyright (C) 2012 Google Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef __CBFSTOOL_FIT_H
|
|
#define __CBFSTOOL_FIT_H
|
|
|
|
#include "cbfs_image.h"
|
|
#include "common.h"
|
|
|
|
/*
|
|
* Converts between offsets from the start of the specified image region and
|
|
* "top-aligned" offsets from the top of the entire flash image. Should work in
|
|
* both directions: accepts either type of offset and produces the other type.
|
|
* The implementation must have some notion of the flash image's total size.
|
|
*/
|
|
typedef unsigned (*fit_offset_converter_t)(const struct buffer *region,
|
|
unsigned offset);
|
|
|
|
/*
|
|
* populate FIT with the MCUs prepsent in the blob provided.
|
|
*
|
|
* first_mcu_addr is an address (in ROM) that will point to a
|
|
* microcode patch. When provided, it will be forced as the first
|
|
* MCU entry into the FIT located in the topswap bootblock.
|
|
*/
|
|
int fit_update_table(struct buffer *bootblock, struct cbfs_image *image,
|
|
const char *microcode_blob_name, int empty_entries,
|
|
fit_offset_converter_t offset_fn,
|
|
uint32_t topswap_size, uint32_t first_mcu_addr);
|
|
#endif
|