All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikita Kiryanov <nikita@compulab.co.il>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm: imx: make bmode command work with SPL/U-Boot combo
Date: Tue, 11 Nov 2014 17:29:08 +0200	[thread overview]
Message-ID: <54622B44.1090700@compulab.co.il> (raw)
In-Reply-To: <1414603713-15155-1-git-send-email-nikita@compulab.co.il>

Gentle ping.

On 10/29/2014 07:28 PM, Nikita Kiryanov wrote:
> The bmode command forces the SoC to use a specific boot device
> by writing its boot mode into SRC_GPR9, and notifying the SoC of
> the change using SRC_GPR10[28] bit: if the bit is on, bootROM
> uses the value in SRC_GPR9 instead of SRC_SMBR1 to determine
> the boot device.
>
> SPL on the other hand is oblivious to this distinction, so once
> the bootROM loads SPL from the device configured in SRC_GPR10,
> SPL will attempt to load U-Boot from the device configured in
> SRC_SMBR1, which is not updated by the bootROM to the value in
> SRC_GPR9.
>
> The result is that the selected boot device is not used across all
> the boot stages.
>
> Update spl_boot_device() to look at gpr9 when necessary.
>
> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Troy Kisky <troy.kisky@boundarydevices.com>
> Cc: Tim Harvey <tharvey@gateworks.com>
> Cc: Eric Nelson <eric.nelson@boundarydevices.com>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Heiko Schocher <hs@denx.de>
> ---
>   arch/arm/cpu/armv7/mx6/soc.c | 4 ++--
>   arch/arm/imx-common/spl.c    | 5 +++--
>   2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
> index dd5aaa2..07ae79e 100644
> --- a/arch/arm/cpu/armv7/mx6/soc.c
> +++ b/arch/arm/cpu/armv7/mx6/soc.c
> @@ -333,8 +333,8 @@ void boot_mode_apply(unsigned cfg_val)
>   /*
>    * cfg_val will be used for
>    * Boot_cfg4[7:0]:Boot_cfg3[7:0]:Boot_cfg2[7:0]:Boot_cfg1[7:0]
> - * After reset, if GPR10[28] is 1, ROM will copy GPR9[25:0]
> - * to SBMR1, which will determine the boot device.
> + * After reset, if GPR10[28] is 1, ROM will use GPR9[25:0]
> + * instead of SBMR1 to determine the boot device.
>    */
>   const struct boot_mode soc_boot_modes[] = {
>   	{"normal",	MAKE_CFGVAL(0x00, 0x00, 0x00, 0x00)},
> diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c
> index 9d3c31a..477c38c 100644
> --- a/arch/arm/imx-common/spl.c
> +++ b/arch/arm/imx-common/spl.c
> @@ -14,11 +14,12 @@
>   #include <spl.h>
>
>   #if defined(CONFIG_MX6)
> -/* determine boot device from SRC_SBMR1 register (BOOT_CFG[4:1]) */
> +/* determine boot device from SRC_SBMR1 (BOOT_CFG[4:1]) or SRC_GPR9 register */
>   u32 spl_boot_device(void)
>   {
>   	struct src *psrc = (struct src *)SRC_BASE_ADDR;
> -	unsigned reg = readl(&psrc->sbmr1);
> +	unsigned int gpr10_boot = readl(&psrc->gpr10) & (1 << 28);
> +	unsigned reg = gpr10_boot ? readl(&psrc->gpr9) : readl(&psrc->sbmr1);
>
>   	/* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
>   	switch ((reg & 0x000000FF) >> 4) {
>

-- 
Regards,
Nikita Kiryanov

  reply	other threads:[~2014-11-11 15:29 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-29 17:28 [U-Boot] [PATCH] arm: imx: make bmode command work with SPL/U-Boot combo Nikita Kiryanov
2014-11-11 15:29 ` Nikita Kiryanov [this message]
2014-11-12  8:05 ` Stefano Babic

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=54622B44.1090700@compulab.co.il \
    --to=nikita@compulab.co.il \
    --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.