diff options
author | Keith Packard <keithp@keithp.com> | 2018-05-06 21:16:25 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2018-05-07 09:21:56 -0700 |
commit | ab65e9f257493da5282d8933d8f0dcb716c1f41f (patch) | |
tree | fcbbe43f5adb723ce0cc79da8e19b9444d256417 /ao-tools/ao-chaosread/ao-chaosread.c | |
parent | bea42e45952df85d61428662caefbb100465a585 (diff) |
ao-chaosread: Add support for the new flash endpoint in chaoskey
This adds support for endpoint 0x87, which streams the contents of the
onboard flash to the host for firmware verification.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao-tools/ao-chaosread/ao-chaosread.c')
-rw-r--r-- | ao-tools/ao-chaosread/ao-chaosread.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ao-tools/ao-chaosread/ao-chaosread.c b/ao-tools/ao-chaosread/ao-chaosread.c index 8a814a00..5c0de125 100644 --- a/ao-tools/ao-chaosread/ao-chaosread.c +++ b/ao-tools/ao-chaosread/ao-chaosread.c @@ -174,6 +174,7 @@ chaoskey_close(struct chaoskey *ck) #define COOKED_ENDPOINT 0x85 #define RAW_ENDPOINT 0x86 +#define FLASH_ENDPOINT 0x87 int chaoskey_read(struct chaoskey *ck, int endpoint, void *buffer, int len) @@ -208,12 +209,13 @@ static const struct option options[] = { { .name = "bytes", .has_arg = 0, .val = 'b' }, { .name = "cooked", .has_arg = 0, .val = 'c' }, { .name = "raw", .has_arg = 0, .val = 'r' }, + { .name = "flash", .has_arg = 0, .val = 'f' }, { 0, 0, 0, 0}, }; static void usage(char *program) { - fprintf(stderr, "usage: %s [--serial=<serial>] [--length=<length>[kMG]] [--infinite] [--bytes] [--cooked] [--raw]\n", program); + fprintf(stderr, "usage: %s [--serial=<serial>] [--length=<length>[kMG]] [--infinite] [--bytes] [--cooked] [--raw] [--flash]\n", program); exit(1); } @@ -233,7 +235,7 @@ main (int argc, char **argv) int bytes = 0; int endpoint = RAW_ENDPOINT; - while ((c = getopt_long(argc, argv, "s:l:ibcr", options, NULL)) != -1) { + while ((c = getopt_long(argc, argv, "s:l:ibcrf", options, NULL)) != -1) { switch (c) { case 's': serial = optarg; @@ -262,6 +264,9 @@ main (int argc, char **argv) case 'r': endpoint = RAW_ENDPOINT; break; + case 'f': + endpoint = FLASH_ENDPOINT; + break; default: usage(argv[0]); break; |