x86: mtrr: Enhance 'mtrr' command to list MTRRs on any CPU
authorSimon Glass <sjg@chromium.org>
Fri, 17 Jul 2020 14:48:31 +0000 (08:48 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 20 Jul 2020 01:46:48 +0000 (09:46 +0800)
Update this command so it can list the MTRRs on a selected CPU. If
'-c all' is used, then all CPUs are listed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
cmd/x86/mtrr.c

index d8a7e56..e118bba 100644 (file)
@@ -131,7 +131,27 @@ static int do_mtrr(struct cmd_tbl *cmdtp, int flag, int argc,
                }
        }
        if (cmd == 'l') {
-               return do_mtrr_list(cpu_select);
+               bool first;
+               int i;
+
+               i = mp_first_cpu(cpu_select);
+               if (i < 0) {
+                       printf("Invalid CPU (err=%d)\n", i);
+                       return CMD_RET_FAILURE;
+               }
+               first = true;
+               for (; i >= 0; i = mp_next_cpu(cpu_select, i)) {
+                       if (!first)
+                               printf("\n");
+                       printf("CPU %d:\n", i);
+                       ret = do_mtrr_list(i);
+                       if (ret) {
+                               printf("Failed to read CPU %d (err=%d)\n", i,
+                                      ret);
+                               return CMD_RET_FAILURE;
+                       }
+                       first = false;
+               }
        } else {
                switch (cmd) {
                case 'e':