summaryrefslogtreecommitdiff
path: root/util/cbfstool/fit.c
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@google.com>2014-02-04 17:35:44 -0800
committerRonald G. Minnich <rminnich@gmail.com>2014-02-05 06:50:41 +0100
commit3fcde22a30fc26fa299d4e26a9cc0bde7eb0356d (patch)
tree33a990efdc3ec4dbda3003922620a89e2ed6c280 /util/cbfstool/fit.c
parentc625d0983c6427277c3f6ebd9911def76d6351c9 (diff)
downloadcoreboot-3fcde22a30fc26fa299d4e26a9cc0bde7eb0356d.tar.xz
Add an xdr function for the cbfs_file header
And use it in fit.c and remove one more use of htonl. Change-Id: Ibf18dcc0a7f08d75c2374115de0db7a4bf64ec1e Signed-off-by: Ronald G. Minnich <rminnich@google.com> Reviewed-on: http://review.coreboot.org/5120 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'util/cbfstool/fit.c')
-rw-r--r--util/cbfstool/fit.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/util/cbfstool/fit.c b/util/cbfstool/fit.c
index a368dad567..84f0bfff25 100644
--- a/util/cbfstool/fit.c
+++ b/util/cbfstool/fit.c
@@ -188,17 +188,28 @@ static void add_microcodde_entries(struct cbfs_image *image,
}
}
+static int fit_header(void *ptr, uint32_t *current_offset, uint32_t *file_length)
+{
+ struct buffer buf;
+ struct cbfs_file header;
+ buf.data = ptr;
+ buf.size = sizeof(header);
+ cbfs_file_get_header(&buf, &header);
+ *current_offset = header.offset;
+ *file_length = header.len;
+ return 0;
+}
+
static int parse_microcode_blob(struct cbfs_image *image,
struct cbfs_file *mcode_file,
struct microcode_entry *mcus, int *total_mcus)
{
int num_mcus;
- int current_offset;
- int file_length;
+ uint32_t current_offset;
+ uint32_t file_length;
current_offset = (int)((char *)mcode_file - image->buffer.data);
- current_offset += ntohl(mcode_file->offset);
- file_length = ntohl(mcode_file->len);
+ fit_header(mcode_file, &current_offset, &file_length);
num_mcus = 0;
while (file_length > sizeof(struct microcode_header))