summaryrefslogtreecommitdiff
path: root/tools/intel_reg_read.c
diff options
context:
space:
mode:
authorBen Widawsky <ben@bwidawsk.net>2012-08-23 11:29:43 -0700
committerBen Widawsky <ben@bwidawsk.net>2012-08-23 11:29:43 -0700
commitbaf026d692c25969c3a30fcd50394c83f3f20815 (patch)
tree99cc8b2842c0d3cc4f953e340f7944d1f8cf67bb /tools/intel_reg_read.c
parent4fc76adf313f2792b7438f9372321ce3ea66c6c2 (diff)
intel_reg_read: support -c option to read multiple dwords
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Diffstat (limited to 'tools/intel_reg_read.c')
-rw-r--r--tools/intel_reg_read.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/intel_reg_read.c b/tools/intel_reg_read.c
index 6187a4be4..ee6f126c5 100644
--- a/tools/intel_reg_read.c
+++ b/tools/intel_reg_read.c
@@ -60,6 +60,7 @@ static void usage(char *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 -d : decode register bits.\n");
+ printf("\t -c : number of dwords to dump (can't be used with -f/-d).\n");
printf("\t addr : in 0xXXXX format\n");
}
@@ -71,8 +72,9 @@ int main(int argc, char** argv)
char *cmdname = strdup(argv[0]);
int full_dump = 0;
int decode_bits = 0;
+ int dwords = 1;
- while ((ch = getopt(argc, argv, "dfh")) != -1) {
+ while ((ch = getopt(argc, argv, "dfhc:")) != -1) {
switch(ch) {
case 'd':
decode_bits = 1;
@@ -84,6 +86,9 @@ int main(int argc, char** argv)
usage(cmdname);
ret = 1;
goto out;
+ case 'c':
+ dwords = atoi(optarg);
+ break;
}
}
argc -= optind;
@@ -95,6 +100,12 @@ int main(int argc, char** argv)
goto out;
}
+ if ((dwords > 1) && (argc != 1 || full_dump || decode_bits)) {
+ usage(cmdname);
+ ret = 1;
+ goto out;
+ }
+
intel_register_access_init(intel_get_pci_device(), 0);
if (full_dump) {
@@ -115,7 +126,7 @@ int main(int argc, char** argv)
} else {
for (i=0; i < argc; i++) {
sscanf(argv[i], "0x%x", &reg);
- dump_range(reg, reg + 4);
+ dump_range(reg, reg + (dwords * 4));
if (decode_bits)
bit_decode(*(volatile uint32_t *)((volatile char*)mmio + reg));