Message ID | 20200717084816.v6.25.If8f1e97e6104069ff27593fffd5941108b3e3c36@changeid |
---|---|
State | Accepted |
Commit | 2a3d9a7af9b3f7abad4d1bc4d40f1d665a54da8f |
Delegated to: | Bin Meng |
Headers | show |
Series | x86: Enhance MTRR functionality to support multiple CPUs | expand |
On Fri, Jul 17, 2020 at 10:49 PM Simon Glass <sjg@chromium.org> wrote: > > 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> > --- > > Changes in v6: > - Rebase to x86/master > > cmd/x86/mtrr.c | 22 +++++++++++++++++++++- > 1 file changed, 21 insertions(+), 1 deletion(-) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
diff --git a/cmd/x86/mtrr.c b/cmd/x86/mtrr.c index d8a7e56d5a..e118bba5a2 100644 --- a/cmd/x86/mtrr.c +++ b/cmd/x86/mtrr.c @@ -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':