aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2021-04-02 14:12:58 +0200
committerRafał Miłecki <rafal@milecki.pl>2021-04-05 10:03:59 +0200
commit9b9184f1782489163eb204f3b238de778ae1214b (patch)
tree74b5a58fca6667068c15cba8d939e154c7fdcafd
parentd533b27bc09eb5323a05ed44589235a86edcda0d (diff)
downloadupstream-9b9184f1782489163eb204f3b238de778ae1214b.tar.gz
upstream-9b9184f1782489163eb204f3b238de778ae1214b.tar.bz2
upstream-9b9184f1782489163eb204f3b238de778ae1214b.zip
firmware-utils: bcm4908img: use "info" command displaying file info
BCM4908 image format contains some info that may be useful for info / debugging purposes. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-rw-r--r--tools/firmware-utils/src/bcm4908img.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c
index 16e0afe9de..56a790423b 100644
--- a/tools/firmware-utils/src/bcm4908img.c
+++ b/tools/firmware-utils/src/bcm4908img.c
@@ -262,32 +262,39 @@ static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) {
}
/**************************************************
- * Check
+ * Info
**************************************************/
-static int bcm4908img_check(int argc, char **argv) {
+static int bcm4908img_info(int argc, char **argv) {
struct bcm4908img_info info;
const char *pathname = NULL;
FILE *fp;
+ int c;
int err = 0;
- if (argc >= 3)
- pathname = argv[2];
+ while ((c = getopt(argc, argv, "i:")) != -1) {
+ switch (c) {
+ case 'i':
+ pathname = optarg;
+ break;
+ }
+ }
fp = bcm4908img_open(pathname, "r");
if (!fp) {
- fprintf(stderr, "Failed to open %s\n", pathname);
+ fprintf(stderr, "Failed to open BCM4908 image\n");
err = -EACCES;
goto out;
}
err = bcm4908img_parse(fp, &info);
if (err) {
- fprintf(stderr, "Failed to parse %s\n", pathname);
+ fprintf(stderr, "Failed to parse BCM4908 image\n");
goto err_close;
}
- printf("Found a valid BCM4908 image (crc: 0x%08x)\n", info.crc32);
+ printf("Vendor header length:\t%zu\n", info.vendor_header_size);
+ printf("Checksum:\t0x%08x\n", info.crc32);
err_close:
bcm4908img_close(fp);
@@ -438,8 +445,9 @@ out:
static void usage() {
printf("Usage:\n");
printf("\n");
- printf("Checking a BCM4908 image:\n");
- printf("\tbcm4908img check <file>\t\t\tcheck if images is valid\n");
+ printf("Info about a BCM4908 image:\n");
+ printf("\tbcm4908img info <options>\n");
+ printf("\t-i <file>\t\t\t\tinput BCM490 image\n");
printf("\n");
printf("Creating a new BCM4908 image:\n");
printf("\tbcm4908img create <file> [options]\n");
@@ -450,8 +458,9 @@ static void usage() {
int main(int argc, char **argv) {
if (argc > 1) {
- if (!strcmp(argv[1], "check"))
- return bcm4908img_check(argc, argv);
+ optind++;
+ if (!strcmp(argv[1], "info"))
+ return bcm4908img_info(argc, argv);
else if (!strcmp(argv[1], "create"))
return bcm4908img_create(argc, argv);
}