[U-Boot] [PATCH 1/3] OMAP3/4/5/AM33xx: Correct logic for checking FAT or RAW MMC

2013-04-05 Thread Tom Rini
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 
---
 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
strbr2, [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_XIPWAIT7
 #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_MMC26
 #define BOOT_DEVICE_MMC2_2 7
 
+#define MMC_BOOT_DEVICES_START BOOT_DEVICE_MMC1
+#define MMC_BOOT_DEVICES_END   BOOT_DEVICE_MMC2_2
 #endif
-- 
1.7.9.5

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/3] OMAP3/4/5/AM33xx: Correct logic for checking FAT or RAW MMC

2013-04-08 Thread Sricharan R
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 
> ---
>  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
>   strbr2, [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_MMC26
>  #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 
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/3] OMAP3/4/5/AM33xx: Correct logic for checking FAT or RAW MMC

2013-04-09 Thread Peter Korsgaard
> "Tom" == Tom Rini  writes:

 Tom> In the case of booting from certain peripherals, such as UART, we must
 Tom> not see what the device descriptor says for RAW or FAT mode because in
 Tom> addition to being nonsensical, it leads to a hang.  This is why we have
 Tom> a test currently for the boot mode being within range.  The problem
 Tom> however is that on some platforms we get MMC2_2 as the boot mode and not
 Tom> the defined value for MMC2, and in others we get the value for MMC2_2.
 Tom> This is required to fix eMMC booting on omap5_uevm.

 Tom> Tested on am335x_evm (UART, NAND, SD), omap3_beagle (NAND, SD on
 Tom> classic, SD only on xM rev C5) and omap5_uevm (SD, eMMC).

 Tom> Signed-off-by: Tom Rini 
 Tom> ---
 Tom>  arch/arm/cpu/armv7/omap-common/lowlevel_init.S |   10 +++---
 Tom>  arch/arm/include/asm/arch-am33xx/spl.h |3 +++
 Tom>  arch/arm/include/asm/arch-omap3/spl.h  |3 +++
 Tom>  arch/arm/include/asm/arch-omap4/spl.h  |2 ++
 Tom>  arch/arm/include/asm/arch-omap5/spl.h  |2 ++
 Tom>  5 files changed, 17 insertions(+), 3 deletions(-)

 Tom> diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S 
b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
 Tom> index b933fe8..90b3c8a 100644
 Tom> --- a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
 Tom> +++ b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
 Tom> @@ -60,10 +60,14 @@ ENTRY(save_boot_params)
 Tom>   ldr r3, =boot_params
 Tom>   strbr2, [r3, #BOOT_DEVICE_OFFSET]   @ spl_boot_device <- r1
 
 Tom> - /* boot mode is passed only for devices that can raw/fat mode */
 Tom> - cmp r2, #BOOT_DEVICE_XIP
 Tom> + /*
 Tom> +  * boot mode is only valid for device that can be raw or FAT booted.
 Tom> +  * in other cases it may be fatal to look.  While platforms differ
 Tom> +  * in the values used for each MMC slot, they are contiguous.
 Tom> +  */
 Tom> + cmp r2, #MMC_BOOT_DEVICES_START
 Tom>   blt 2f
 Tom> - cmp r2, #BOOT_DEVICE_MMC2
 Tom> + cmp r2, #MMC_BOOT_DEVICES_END
 Tom>   bgt 2f
 Tom>   /* Store the boot mode (raw/FAT) in omap_bootmode */
 Tom>   ldr r2, [r0, #DEV_DESC_PTR_OFFSET]  @ get the device descriptor ptr
 Tom> diff --git a/arch/arm/include/asm/arch-am33xx/spl.h 
b/arch/arm/include/asm/arch-am33xx/spl.h
 Tom> index f60b086..14a2c7c 100644
 Tom> --- a/arch/arm/include/asm/arch-am33xx/spl.h
 Tom> +++ b/arch/arm/include/asm/arch-am33xx/spl.h
 Tom> @@ -37,4 +37,7 @@
 Tom>  #define BOOT_DEVICE_USBETH   68
 Tom>  #define BOOT_DEVICE_CPGMAC   70
 Tom>  #define BOOT_DEVICE_MMC2_2  0xFF
 Tom> +
 Tom> +#define MMC_BOOT_DEVICES_START   BOOT_DEVICE_MMC1
 Tom> +#define MMC_BOOT_DEVICES_END BOOT_DEVICE_MMC2

Doesn't this break ti814x with the funky inverted mmc1/mmc2?

-- 
Bye, Peter Korsgaard
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/3] OMAP3/4/5/AM33xx: Correct logic for checking FAT or RAW MMC

2013-04-09 Thread Tom Rini
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 04/09/2013 10:52 AM, Peter Korsgaard wrote:
>> "Tom" == Tom Rini  writes:
> 
> Tom> In the case of booting from certain peripherals, such as UART,
> we must Tom> not see what the device descriptor says for RAW or FAT
> mode because in Tom> addition to being nonsensical, it leads to a
> hang.  This is why we have Tom> a test currently for the boot mode
> being within range.  The problem Tom> however is that on some
> platforms we get MMC2_2 as the boot mode and not Tom> the defined
> value for MMC2, and in others we get the value for MMC2_2. Tom>
> This is required to fix eMMC booting on omap5_uevm.
> 
> Tom> Tested on am335x_evm (UART, NAND, SD), omap3_beagle (NAND, SD
> on Tom> classic, SD only on xM rev C5) and omap5_uevm (SD, eMMC).
> 
> Tom> Signed-off-by: Tom Rini  Tom> --- Tom>
> arch/arm/cpu/armv7/omap-common/lowlevel_init.S |   10 +++--- 
> Tom>  arch/arm/include/asm/arch-am33xx/spl.h |3 +++ 
> Tom>  arch/arm/include/asm/arch-omap3/spl.h  |3 +++ 
> Tom>  arch/arm/include/asm/arch-omap4/spl.h  |2 ++ Tom>
> arch/arm/include/asm/arch-omap5/spl.h  |2 ++ Tom>  5
> files changed, 17 insertions(+), 3 deletions(-)
> 
> Tom> diff --git a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S
> b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S Tom> index
> b933fe8..90b3c8a 100644 Tom> ---
> a/arch/arm/cpu/armv7/omap-common/lowlevel_init.S Tom> +++
> b/arch/arm/cpu/armv7/omap-common/lowlevel_init.S Tom> @@ -60,10
> +60,14 @@ ENTRY(save_boot_params) Tom>ldr r3, =boot_params Tom>
> strb  r2, [r3, #BOOT_DEVICE_OFFSET]   @ spl_boot_device <- r1
> 
> Tom> -/* boot mode is passed only for devices that can raw/fat
> mode */ Tom> -cmp r2, #BOOT_DEVICE_XIP Tom> + /* Tom> +   
>  * boot
> mode is only valid for device that can be raw or FAT booted. Tom> +
> * in other cases it may be fatal to look.  While platforms differ 
> Tom> + * in the values used for each MMC slot, they are
> contiguous. Tom> + */ Tom> +  cmp r2, #MMC_BOOT_DEVICES_START Tom>
> blt   2f Tom> -   cmp r2, #BOOT_DEVICE_MMC2 Tom> +cmp r2,
> #MMC_BOOT_DEVICES_END Tom>bgt 2f Tom> /* Store the boot mode
> (raw/FAT) in omap_bootmode */ Tom>ldr r2, [r0,
> #DEV_DESC_PTR_OFFSET] @ get the device descriptor ptr Tom> diff
> --git a/arch/arm/include/asm/arch-am33xx/spl.h
> b/arch/arm/include/asm/arch-am33xx/spl.h Tom> index
> f60b086..14a2c7c 100644 Tom> ---
> a/arch/arm/include/asm/arch-am33xx/spl.h Tom> +++
> b/arch/arm/include/asm/arch-am33xx/spl.h Tom> @@ -37,4 +37,7 @@ 
> Tom>  #define BOOT_DEVICE_USBETH  68 Tom>  #define
> BOOT_DEVICE_CPGMAC70 Tom>  #define BOOT_DEVICE_MMC2_2  0xFF 
> Tom> + Tom> +#define MMC_BOOT_DEVICES_START   BOOT_DEVICE_MMC1 Tom>
> +#define MMC_BOOT_DEVICES_END BOOT_DEVICE_MMC2
> 
> Doesn't this break ti814x with the funky inverted mmc1/mmc2?

That's probably true, dang.  I knew OMAP3 also had them swapped,
number-wise but didn't recall until you said this that it doesn't use
that code at all.  I'll V2 this part.  Thanks!

- -- 
Tom
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJRZDY4AAoJENk4IS6UOR1WUBoP/1wPoJ5C0ZCSpEDmm7YFs5b2
XaafK0dIJ/aw7K264vYY8tHBj/ku6mbgNOvfRUL9rxGAPPStESMQynkwF/H7llbd
7GkFlsWpLAgotPnCSwHGqQnApCeUeu0BGCAGvaB8NK0uFlU+D0bsWBdgRe/sML+m
LjF0/2eQmm2rTo8ifkDTvCdldaeyGqUo0amefEvfW2cLMxPlYGWcfPh/MW1X35ib
RnnBUhdVM38XPKmktjSQMQ4IBkLnd2Hu64KFkZl3ejyMPDjr/uOkm+1UawL34IPH
wgSC5Y1+w7HvnxM+D3pre4yrpRSYq+dcg3m9CLb7HcrGFCjLxtTEEcy6DOCF3RG0
aK62JQ0itrXcGCnwMYO6t/w7JlNj/flqCTQW4qU4HJ/ixaICRrg30IePqqcJ0Rj0
69EA4BjgR8JhRZOWRuCkwirz0LQpg7DY43Ioax7EmZ6qjve7/ryEnPxdfSEWTPgr
ZcqhsYCwoc0wkADW894UveUW49qXhQCBR0C1eXbynfbpdWSu0ObHX4ErAH1JP4x/
ihtuMZAoTcpYTM0b/Fg+A9t45QhIZBMRKLWar4h5zFrMGyfIODPUjXLqJRSI6Lef
kTcUZY9Fy837Vok1NlllTMFxGd8Ot5mRgDehvZiZlTjzbRUfPdC212NUQQ/px7C8
7KPGRHhQds5Fsur7bnXJ
=2NME
-END PGP SIGNATURE-
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot