summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChe-Liang Chiou <clchiou@chromium.org>2011-05-16 13:10:25 +0800
committerChe-Liang Chiou <clchiou@chromium.org>2011-05-17 19:50:23 -0700
commitc3fb9a26903458c4f10c7470f2b98a5ddd7e133e (patch)
tree7a0a28a9ed17d2a8dec962cc2feedc26de97fee5
parentc90e7e8cd99a70f207249d8d4a78a80cc0f44c3f (diff)
downloadvboot-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.c21
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);