All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [PATCH v4 21/25] x86: mtrr: Update the command to use the new mtrr calls
Date: Tue,  7 Jul 2020 19:34:41 -0600	[thread overview]
Message-ID: <20200708013446.2600256-18-sjg@chromium.org> (raw)
In-Reply-To: <20200708013446.2600256-1-sjg@chromium.org>

Use the multi-CPU calls to set the MTRR values. This still supports only
the boot CPU for now.

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>
---

(no changes since v2)

Changes in v2:
- Drop the renamed mtrr_set_valid_() instead of mtrr_set_valid()

 cmd/x86/mtrr.c | 34 ++++++++--------------------------
 1 file changed, 8 insertions(+), 26 deletions(-)

diff --git a/cmd/x86/mtrr.c b/cmd/x86/mtrr.c
index 46ef6a2830..b047a9897c 100644
--- a/cmd/x86/mtrr.c
+++ b/cmd/x86/mtrr.c
@@ -59,14 +59,14 @@ static int do_mtrr_list(int cpu_select)
 	return 0;
 }
 
-static int do_mtrr_set(uint reg, int argc, char *const argv[])
+static int do_mtrr_set(int cpu_select, uint reg, int argc, char *const argv[])
 {
 	const char *typename = argv[0];
-	struct mtrr_state state;
 	uint32_t start, size;
 	uint64_t base, mask;
 	int i, type = -1;
 	bool valid;
+	int ret;
 
 	if (argc < 3)
 		return CMD_RET_USAGE;
@@ -88,27 +88,9 @@ static int do_mtrr_set(uint reg, int argc, char *const argv[])
 	if (valid)
 		mask |= MTRR_PHYS_MASK_VALID;
 
-	mtrr_open(&state, true);
-	wrmsrl(MTRR_PHYS_BASE_MSR(reg), base);
-	wrmsrl(MTRR_PHYS_MASK_MSR(reg), mask);
-	mtrr_close(&state, true);
-
-	return 0;
-}
-
-static int mtrr_set_valid_(int reg, bool valid)
-{
-	struct mtrr_state state;
-	uint64_t mask;
-
-	mtrr_open(&state, true);
-	mask = native_read_msr(MTRR_PHYS_MASK_MSR(reg));
-	if (valid)
-		mask |= MTRR_PHYS_MASK_VALID;
-	else
-		mask &= ~MTRR_PHYS_MASK_VALID;
-	wrmsrl(MTRR_PHYS_MASK_MSR(reg), mask);
-	mtrr_close(&state, true);
+	ret = mtrr_set(cpu_select, reg, base, mask);
+	if (ret)
+		return CMD_RET_FAILURE;
 
 	return 0;
 }
@@ -134,11 +116,11 @@ static int do_mtrr(struct cmd_tbl *cmdtp, int flag, int argc,
 		return CMD_RET_USAGE;
 	}
 	if (*cmd == 'e')
-		return mtrr_set_valid_(reg, true);
+		return mtrr_set_valid(cpu_select, reg, true);
 	else if (*cmd == 'd')
-		return mtrr_set_valid_(reg, false);
+		return mtrr_set_valid(cpu_select, reg, false);
 	else if (*cmd == 's')
-		return do_mtrr_set(reg, argc - 1, argv + 1);
+		return do_mtrr_set(cpu_select, reg, argc - 1, argv + 1);
 	else
 		return CMD_RET_USAGE;
 
-- 
2.27.0.383.g050319c2ae-goog

  parent reply	other threads:[~2020-07-08  1:34 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-08  1:34 [PATCH v4 00/25] x86: Enhance MTRR functionality to support multiple CPUs Simon Glass
2020-07-08  1:34 ` [PATCH v4 01/25] x86: mp_init: Switch to livetree Simon Glass
2020-07-08  1:34 ` [PATCH v4 02/25] x86: Move MP code into mp_init Simon Glass
2020-07-08  1:34 ` [PATCH v4 03/25] x86: mp_init: Avoid declarations in header files Simon Glass
2020-07-08  1:34 ` [PATCH v4 04/25] x86: mp_init: Switch parameter names in start_aps() Simon Glass
2020-07-08  1:34 ` [PATCH v4 05/25] x86: mp_init: Drop the num_cpus static variable Simon Glass
2020-07-08  1:34 ` [PATCH v4 06/25] x86: mtrr: Fix 'ensable' typo Simon Glass
2020-07-08  1:34 ` [PATCH v4 07/25] x86: mp_init: Set up the CPU numbers at the start Simon Glass
2020-07-08  1:34 ` [PATCH v4 08/25] x86: mp_init: Adjust bsp_init() to return more information Simon Glass
2020-07-08  1:34 ` [PATCH v4 09/25] x86: cpu: Remove unnecessary #ifdefs Simon Glass
2020-07-08  1:34 ` [PATCH v4 10/25] x86: mp: Support APs waiting for instructions Simon Glass
2020-07-13  4:48   ` Bin Meng
2020-07-08  1:34 ` [PATCH v4 11/25] global_data: Add a generic global_data flag for SMP state Simon Glass
2020-07-13  4:49   ` Bin Meng
2020-07-08  1:34 ` [PATCH v4 12/25] x86: Set the SMP flag when MP init is complete Simon Glass
2020-07-08  1:34 ` [PATCH v4 13/25] x86: mp: Allow running functions on multiple CPUs Simon Glass
2020-07-13  4:56   ` Bin Meng
2020-07-13 20:57     ` Simon Glass
2020-07-08  1:34 ` [PATCH v4 14/25] x86: mp: Park CPUs before running the OS Simon Glass
2020-07-08  1:34 ` [PATCH v4 15/25] x86: mp: Add iterators for CPUs Simon Glass
2020-07-13  4:57   ` Bin Meng
2020-07-08  1:34 ` [PATCH v4 16/25] x86: mtrr: Use MP calls to list the MTRRs Simon Glass
2020-07-08  1:34 ` [PATCH v4 17/25] x86: Don't enable SMP in SPL Simon Glass
2020-07-08  1:34 ` [PATCH v4 18/25] x86: coral: Update the memory map Simon Glass
2020-07-08  1:34 ` [PATCH v4 19/25] x86: mtrr: Update MTRRs on all CPUs Simon Glass
2020-07-13  4:58   ` Bin Meng
2020-07-08  1:34 ` [PATCH v4 20/25] x86: mtrr: Add support for writing to MTRRs on any CPU Simon Glass
2020-07-08  1:34 ` Simon Glass [this message]
2020-07-08  1:34 ` [PATCH v4 22/25] x86: mtrr: Restructure so command execution is in one place Simon Glass
2020-07-08  1:34 ` [PATCH v4 23/25] x86: mtrr: Update 'mtrr' to allow setting MTRRs on any CPU Simon Glass
2020-07-08  1:34 ` [PATCH v4 24/25] x86: mp: Add more comments to the module Simon Glass
2020-07-08  1:34 ` [PATCH v4 25/25] x86: mtrr: Enhance 'mtrr' command to list MTRRs on any CPU Simon Glass
2020-07-13  5:11   ` Bin Meng
2020-07-17  3:24 ` [PATCH v4 00/25] x86: Enhance MTRR functionality to support multiple CPUs Simon Glass
2020-07-17  4:50   ` Bin Meng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200708013446.2600256-18-sjg@chromium.org \
    --to=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.