diff options
author | Che-Liang Chiou <clchiou@chromium.org> | 2011-05-16 13:10:25 +0800 |
---|---|---|
committer | Che-Liang Chiou <clchiou@chromium.org> | 2011-05-17 19:50:23 -0700 |
commit | c3fb9a26903458c4f10c7470f2b98a5ddd7e133e (patch) | |
tree | 7a0a28a9ed17d2a8dec962cc2feedc26de97fee5 | |
parent | c90e7e8cd99a70f207249d8d4a78a80cc0f44c3f (diff) | |
download | vboot-c3fb9a26903458c4f10c7470f2b98a5ddd7e133e.tar.gz |
load_firmware_test accepts boot flag input
BUG=none
TEST=emerge vboot_reference && load_firmware_test -b 1 image.bin
Change-Id: Iec4730dad335770eb04151fe66875dfb09ceedca
Reviewed-on: http://gerrit.chromium.org/gerrit/916
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
-rw-r--r-- | utility/load_firmware_test.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/utility/load_firmware_test.c b/utility/load_firmware_test.c index 8a9cb236..a8f75522 100644 --- a/utility/load_firmware_test.c +++ b/utility/load_firmware_test.c @@ -6,6 +6,8 @@ */ #include <stdio.h> +#include <stdlib.h> +#include <string.h> #include "fmap.h" #include "gbb_header.h" @@ -133,7 +135,8 @@ int GetFirmwareData(const void* base_of_rom, const void* fmap, int index, * [base_of_rom] pointer to start of firmware image * [fmap] pointer to start of Flash Map of firmware image */ -int DriveLoadFirmware(const void* base_of_rom, const void* fmap) { +int DriveLoadFirmware(const void* base_of_rom, const void* fmap, + const uint64_t boot_flags) { LoadFirmwareParams lfp; CallerInternal ci; @@ -188,7 +191,7 @@ int DriveLoadFirmware(const void* base_of_rom, const void* fmap) { lfp.shared_data_size = VB_SHARED_DATA_MIN_SIZE; printf("shared data size 0x%08" PRIx64 "\n", lfp.shared_data_size); - lfp.boot_flags = 0; + lfp.boot_flags = boot_flags; printf("boot flags is 0x%08" PRIx64 "\n", lfp.boot_flags); status = LoadFirmware(&lfp); @@ -229,19 +232,25 @@ const char* status_string(int status) { } int main(int argc, char* argv[]) { + int i; int retval = 0; const void* base_of_rom; const void* fmap; - uint64_t rom_size; + uint64_t boot_flags = 0, rom_size; progname = argv[0]; if (argc < 2) { - fprintf(stderr, "usage: %s <firmware_image>\n", progname); + fprintf(stderr, "usage: %s [-b NUM] <firmware_image>\n", progname); exit(1); } - image_path = argv[1]; + for (i = 1; i < argc; i++) { + if (!strcmp(argv[i], "-b") && i < argc - 1) + boot_flags = strtoull(argv[++i], NULL, 0); + else + image_path = argv[i]; + } base_of_rom = ReadFile(image_path, &rom_size); if (base_of_rom == NULL) { @@ -253,7 +262,7 @@ int main(int argc, char* argv[]) { fmap = FmapFind((char*) base_of_rom, rom_size); - retval = DriveLoadFirmware(base_of_rom, fmap); + retval = DriveLoadFirmware(base_of_rom, fmap, boot_flags); Free((void*) base_of_rom); |