[U-Boot] mx28: Saving env vars on MMC

Marek Vasut marek.vasut at gmail.com
Fri Nov 25 15:30:59 CET 2011


> On Fri, Nov 25, 2011 at 6:13 AM, Marek Vasut <marek.vasut at gmail.com> wrote:
> > You have to be careful on the imx28 about the following:
> > 
> > 1) sector 0 / first 512 bytes : That's where MBR is
> > 2) sector 2048 + ... : That's where U-Boot is located
> > 
> > But it's strange, there's about 1MB of space between MBR and U-Boot ...
> > can you actually check the first 2MB of the card and run binary diff on
> > the good and bad card ? That way you'll see what changed.
> 
> What I see is that when I do a 'save' the env variables are written to
> 0 and this causes the boot to fail.
> 
> Has the mxsmmc driver been tested?
> 
> Regards,
> 
> Fabio Estevam

I did the following change and tested u-boot on m28evk. I saved env, restarted 
board etc.

1) Env was successfully saved to MMC sector 2 (at offset 1024 bytes from start).
2) Env was successfully loaded from MMC after reset

Basically ... give it a go, Fabio, maybe you just missed something :)

PATCH:

diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h
index d4bd207..25edab8 100644
--- a/include/configs/m28evk.h
+++ b/include/configs/m28evk.h                                                                                                                                                      
@@ -147,7 +147,7 @@                                                                                                                                                                 
 #define        NAND_MAX_CHIPS                  8                                                                                                                                   
                                                                                                                                                                                    
 /* Environment is in NAND */                                                                                                                                                       
-#define        CONFIG_ENV_IS_IN_NAND                                                                                                                                               
+/*#define      CONFIG_ENV_IS_IN_NAND                                                                                                                                               
 #define        CONFIG_ENV_SIZE                 (16 * 1024)                                                                                                                         
 #define        CONFIG_ENV_SIZE_REDUND          CONFIG_ENV_SIZE                                                                                                                     
 #define        CONFIG_ENV_SECT_SIZE            (128 * 1024)                                                                                                                        
@@ -155,6 +155,12 @@                                                                                                                                                                
 #define        CONFIG_ENV_OFFSET               0x300000                                                                                                                            
 #define        CONFIG_ENV_OFFSET_REDUND        \                                                                                                                                   
                (CONFIG_ENV_OFFSET + CONFIG_ENV_RANGE)                                                                                                                              
+*/
+
+#define        CONFIG_ENV_IS_IN_MMC
+#define        CONFIG_SYS_MMC_ENV_DEV  0
+#define        CONFIG_ENV_SIZE                 (16 * 1024)
+#define        CONFIG_ENV_OFFSET               1024
 
 #define        CONFIG_CMD_UBI
 #define        CONFIG_CMD_UBIFS


More information about the U-Boot mailing list