All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sricharan R <r.sricharan@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/3] OMAP3/4/5/AM33xx: Correct logic for checking FAT or RAW MMC
Date: Mon, 8 Apr 2013 16:14:58 +0530	[thread overview]
Message-ID: <51629FAA.4010105@ti.com> (raw)
In-Reply-To: <1365178906-22652-2-git-send-email-trini@ti.com>

Hi Tom,

On Friday 05 April 2013 09:51 PM, Tom Rini wrote:
> In the case of booting from certain peripherals, such as UART, we must
> not see what the device descriptor says for RAW or FAT mode because in
> addition to being nonsensical, it leads to a hang.  This is why we have
> a test currently for the boot mode being within range.  The problem
> however is that on some platforms we get MMC2_2 as the boot mode and not
> the defined value for MMC2, and in others we get the value for MMC2_2.
> This is required to fix eMMC booting on omap5_uevm.
>
 
> Tested on am335x_evm (UART, NAND, SD), omap3_beagle (NAND, SD on
> classic, SD only on xM rev C5) and omap5_uevm (SD, eMMC).
> 
> Signed-off-by: Tom Rini <trini@ti.com>
> ---
>  arch/arm/cpu/armv7/omap-common/lowlevel_init.S |   10 +++++++---
>  arch/arm/include/asm/arch-am33xx/spl.h         |    3 +++
>  arch/arm/include/asm/arch-omap3/spl.h          |    3 +++
>  arch/arm/include/asm/arch-omap4/spl.h          |    2 ++
>  arch/arm/include/asm/arch-omap5/spl.h          |    2 ++
>  5 files changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
> index b933fe8..90b3c8a 100644
> --- a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
> +++ b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
> @@ -60,10 +60,14 @@ ENTRY(save_boot_params)
>  	ldr	r3, =boot_params
>  	strb	r2, [r3, #BOOT_DEVICE_OFFSET]	@ spl_boot_device <- r1
>  
> -	/* boot mode is passed only for devices that can raw/fat mode */
> -	cmp	r2, #BOOT_DEVICE_XIP
> +	/*
> +	 * boot mode is only valid for device that can be raw or FAT booted.
> +	 * in other cases it may be fatal to look.  While platforms differ
> +	 * in the values used for each MMC slot, they are contiguous.
> +	 */
> +	cmp	r2, #MMC_BOOT_DEVICES_START
>  	blt	2f
> -	cmp	r2, #BOOT_DEVICE_MMC2
> +	cmp	r2, #MMC_BOOT_DEVICES_END
>  	bgt	2f
>  	/* Store the boot mode (raw/FAT) in omap_bootmode */
>  	ldr	r2, [r0, #DEV_DESC_PTR_OFFSET]	@ get the device descriptor ptr
> diff --git a/arch/arm/include/asm/arch-am33xx/spl.h b/arch/arm/include/asm/arch-am33xx/spl.h
> index f60b086..14a2c7c 100644
> --- a/arch/arm/include/asm/arch-am33xx/spl.h
> +++ b/arch/arm/include/asm/arch-am33xx/spl.h
> @@ -37,4 +37,7 @@
>  #define BOOT_DEVICE_USBETH	68
>  #define BOOT_DEVICE_CPGMAC	70
>  #define BOOT_DEVICE_MMC2_2      0xFF
> +
> +#define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1
> +#define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2
>  #endif
> diff --git a/arch/arm/include/asm/arch-omap3/spl.h b/arch/arm/include/asm/arch-omap3/spl.h
> index dec4dac..84e6d7b 100644
> --- a/arch/arm/include/asm/arch-omap3/spl.h
> +++ b/arch/arm/include/asm/arch-omap3/spl.h
> @@ -31,4 +31,7 @@
>  #define BOOT_DEVICE_MMC1	6
>  #define BOOT_DEVICE_XIPWAIT	7
>  #define BOOT_DEVICE_MMC2_2      0xFF
> +
> +#define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC2
> +#define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC1
>  #endif
> diff --git a/arch/arm/include/asm/arch-omap4/spl.h b/arch/arm/include/asm/arch-omap4/spl.h
> index 4e094f9..f61627f 100644
> --- a/arch/arm/include/asm/arch-omap4/spl.h
> +++ b/arch/arm/include/asm/arch-omap4/spl.h
> @@ -32,4 +32,6 @@
>  #define BOOT_DEVICE_MMC2	6
>  #define BOOT_DEVICE_MMC2_2	0xFF
>  
> +#define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1
> +#define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2
>  #endif
> diff --git a/arch/arm/include/asm/arch-omap5/spl.h b/arch/arm/include/asm/arch-omap5/spl.h
> index 323cd63..d4d353c 100644
> --- a/arch/arm/include/asm/arch-omap5/spl.h
> +++ b/arch/arm/include/asm/arch-omap5/spl.h
> @@ -32,4 +32,6 @@
>  #define BOOT_DEVICE_MMC2        6
>  #define BOOT_DEVICE_MMC2_2	7
>  
> +#define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1
> +#define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2_2
>  #endif
 Acked-by: R Sricharan <r.sricharan@ti.com>

  reply	other threads:[~2013-04-08 10:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-05 16:21 [U-Boot] [PATCH 0/3] OMAP5: Improve uEVM support Tom Rini
2013-04-05 16:21 ` [U-Boot] [PATCH 1/3] OMAP3/4/5/AM33xx: Correct logic for checking FAT or RAW MMC Tom Rini
2013-04-08 10:44   ` Sricharan R [this message]
2013-04-09 14:52   ` Peter Korsgaard
2013-04-09 15:39     ` Tom Rini
2013-04-05 16:21 ` [U-Boot] [PATCH 2/3] omap5_evm.h: Move uEVM-specific choices to omap5_evm.h Tom Rini
2013-04-08 16:34   ` Tom Rini
2013-04-05 16:21 ` [U-Boot] [PATCH 3/3] omap5_common.h: Use fallback CONFIG_SYS_BAUDRATE_TABLE Tom Rini
2013-04-08 16:35 ` [U-Boot] [PATCH 0/3] OMAP5: Improve uEVM support Tom Rini
2013-04-08 16:55 ` Tom Rini

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=51629FAA.4010105@ti.com \
    --to=r.sricharan@ti.com \
    --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.