From: Keith Busch Date: Thu, 3 Mar 2016 17:33:03 +0000 (-0700) Subject: Access 64-bit registers as 2 32-bit X-Git-Tag: v0.5~13 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=56714301c3b09239dded6bc43a24278f1eb1ba8f;p=users%2Fsagi%2Fnvme-cli.git Access 64-bit registers as 2 32-bit Some devices fail 64-bit MMIO. Signed-off-by: Keith Busch --- diff --git a/nvme.c b/nvme.c index 2abf89f6..d8406da8 100644 --- a/nvme.c +++ b/nvme.c @@ -1235,6 +1235,11 @@ static int fw_activate(int argc, char **argv) return err; } +static void print_lo_hi_64(uint32_t *val) +{ + printf("%x%08x\n", val[1], val[0]); +} + static int show_registers(int argc, char **argv) { int opt, long_index; @@ -1246,7 +1251,9 @@ static int show_registers(int argc, char **argv) get_dev(optind, argc, argv); get_registers(&bar, 1); - printf("cap : %"PRIx64"\n", (uint64_t)bar->cap); + printf("cap : "); + print_lo_hi_64((uint32_t *)&bar->cap); + printf("version : %x\n", bar->vs); printf("intms : %x\n", bar->intms); printf("intmc : %x\n", bar->intmc); @@ -1254,8 +1261,12 @@ static int show_registers(int argc, char **argv) printf("csts : %x\n", bar->csts); printf("nssr : %x\n", bar->nssr); printf("aqa : %x\n", bar->aqa); - printf("asq : %"PRIx64"\n", (uint64_t)bar->asq); - printf("acq : %"PRIx64"\n", (uint64_t)bar->acq); + printf("asq : "); + print_lo_hi_64((uint32_t *)&bar->asq); + + printf("acq : "); + print_lo_hi_64((uint32_t *)&bar->acq); + printf("cmbloc : %x\n", bar->cmbloc); printf("cmbsz : %x\n", bar->cmbsz);