summaryrefslogtreecommitdiff
path: root/tools/intel_reg_read.c
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni.dodonov@intel.com>2012-02-28 17:33:54 -0300
committerEugeni Dodonov <eugeni.dodonov@intel.com>2012-03-13 17:55:51 -0300
commit8d4545642835cb66f84739b9384f31920feacdba (patch)
treebc3c5f5ec1b2d661160c9241359527ed3e1611da /tools/intel_reg_read.c
parentb7464e4032a181fc743fe531c6ea271c099b9a74 (diff)
intel_reg_read: support reading multiple registers
The registers must be passed on the command line and will be read sequentially, one at a time. Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Diffstat (limited to 'tools/intel_reg_read.c')
-rw-r--r--tools/intel_reg_read.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/tools/intel_reg_read.c b/tools/intel_reg_read.c
index 95d28c5c..5f94fed1 100644
--- a/tools/intel_reg_read.c
+++ b/tools/intel_reg_read.c
@@ -43,7 +43,7 @@ static void dump_range(uint32_t start, uint32_t end)
static void usage(char *cmdname)
{
- printf("Usage: %s [-f | addr]\n", cmdname);
+ printf("Usage: %s [-f] [addr1] [addr2] .. [addrN]\n", cmdname);
printf("\t -f : read back full range of registers.\n");
printf("\t WARNING! This option may result in a machine hang!\n");
printf("\t addr : in 0xXXXX format\n");
@@ -53,7 +53,7 @@ int main(int argc, char** argv)
{
int ret = 0;
uint32_t reg;
- int ch;
+ int i, ch;
char *cmdname = strdup(argv[0]);
int full_dump = 0;
@@ -71,7 +71,7 @@ int main(int argc, char** argv)
argc -= optind;
argv += optind;
- if (argc != 1) {
+ if (argc < 1) {
usage(cmdname);
ret = 1;
goto out;
@@ -95,8 +95,10 @@ int main(int argc, char** argv)
dump_range(0x70000, 0x72fff); /* display and cursor registers */
dump_range(0x73000, 0x73fff); /* performance counters */
} else {
- sscanf(argv[0], "0x%x", &reg);
- dump_range(reg, reg + 4);
+ for (i=0; i < argc; i++) {
+ sscanf(argv[i], "0x%x", &reg);
+ dump_range(reg, reg + 4);
+ }
}
intel_register_access_fini();