From e9786d46fa7844f0aad588a6c0698c3bb2d3c08c Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Mon, 15 Jan 2024 18:11:43 -0600 Subject: [PATCH] util/superiotool: reformat alternate dump output Reformat alternate dump output to show default values before read values, and to use brackets to visually indicate which values differ from the defaults. old output: Register dump: idx val def 0x07: 0x0b (0x00) 0x10: 0xff (0xff) 0x11: 0xff (0xff) ... new output: Register dump: idx def val 0x07: 0x00 [0x0b] 0x10: 0xff 0xff 0x11: 0xff 0xff ... TEST=build/dump registers from Erying SRMJ4 w/Nuvoton NCT6796D. Change-Id: Idef2cc136151328b114620eb297ab8fd62b71bcd Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/80004 Reviewed-by: Arthur Heymans Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel --- util/superiotool/superiotool.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/util/superiotool/superiotool.c b/util/superiotool/superiotool.c index 576e9e6702..aee5026189 100644 --- a/util/superiotool/superiotool.c +++ b/util/superiotool/superiotool.c @@ -107,25 +107,32 @@ static void dump_regs(const struct superio_registers reg_table[], if (alternate_dump) { int skip_def = 0; + int val; - printf("\nidx val def\n"); + printf("\nidx def val\n"); for (k = 0; idx[k] != EOT; k++) { - printf("0x%02x: 0x%02x", idx[k], regval(port, idx[k])); - if (skip_def || def[k] == EOT) { skip_def = 1; printf("\n"); continue; } + + printf("0x%02x: ", idx[k]); + val = regval(port, idx[k]); + if (def[k] == NANA) - printf(" (NA)\n"); + printf("(NA) 0x%02x\n", val); else if (def[k] == RSVD) - printf(" (RR)\n"); + printf("(RR) 0x%02x\n", val); else if (def[k] == MISC) - printf(" (MM)\n"); - else - printf(" (0x%02x)\n", def[k]); + printf("(MM) 0x%02x\n", val); + else { + if (def[k] == val) + printf("0x%02x 0x%02x\n", def[k], val); + else + printf("0x%02x [0x%02x]\n", def[k], val); + } } } else { printf("\nidx");