Patchwork [U-Boot,v5,1/2] mx23_olinuxino: Add default environment

login
register
mail settings
Submitter Otavio Salvador
Date Jan. 23, 2013, 7:12 p.m.
Message ID <1358968329-15341-1-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/215023/
State Not Applicable
Headers show

Comments

Otavio Salvador - Jan. 23, 2013, 7:12 p.m.
This adds a default environment with support for MMC booting.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v5:
- Remove duplicate environment setting
- Improve commit log

Changes in v4: None
Changes in v3: None
Changes in v2: None

 include/configs/mx23_olinuxino.h | 74 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 67 insertions(+), 7 deletions(-)
Marek Vasut - Jan. 23, 2013, 7:12 p.m.
Dear Otavio Salvador,

> This adds a default environment with support for MMC booting.
> 
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
> Changes in v5:
> - Remove duplicate environment setting
> - Improve commit log
> 
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
> 
>  include/configs/mx23_olinuxino.h | 74
> ++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+),
> 7 deletions(-)
> 
> diff --git a/include/configs/mx23_olinuxino.h
> b/include/configs/mx23_olinuxino.h index bc63481..fc859b3 100644
> --- a/include/configs/mx23_olinuxino.h
> +++ b/include/configs/mx23_olinuxino.h
> @@ -114,6 +114,14 @@
>  /*
>   * MMC Driver
>   */
> +#define	CONFIG_ENV_IS_IN_MMC
> +#define	CONFIG_ENV_OVERWRITE
> +#ifdef	CONFIG_ENV_IS_IN_MMC
> +#define	CONFIG_ENV_OFFSET	(256 * 1024)
> +#define	CONFIG_ENV_SIZE	(16 * 1024)
> +#define	CONFIG_SYS_MMC_ENV_DEV 0
> +#endif

The stuff aboce goes into ENV section below

> +#define	CONFIG_CMD_SAVEENV

CMD goes under CMD section (is this really even needed? saveenv is there all the 
time anyway)

>  #ifdef	CONFIG_CMD_MMC
>  #define	CONFIG_MMC
>  #define	CONFIG_BOUNCE_BUFFER
> @@ -127,21 +135,73 @@
>  #define CONFIG_APBH_DMA
> 
>  /*
> - * ENV -- nowhere so far
> - */
> -#define	CONFIG_ENV_SIZE			(16 * 1024)
> -#define	CONFIG_ENV_IS_NOWHERE
> -
> -/*
>   * Boot Linux
>   */
>  #define	CONFIG_CMDLINE_TAG
>  #define	CONFIG_SETUP_MEMORY_TAGS
>  #define	CONFIG_BOOTDELAY	3
>  #define	CONFIG_BOOTFILE		"uImage"
> -#define	CONFIG_BOOTARGS		"console=ttyAMA0,115200n8 "
>  #define	CONFIG_LOADADDR		0x42000000
>  #define	CONFIG_SYS_LOAD_ADDR	CONFIG_LOADADDR
>  #define	CONFIG_OF_LIBFDT
> 
> +/*
> + * Extra Environments
> + */
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +	"update_sd_firmware_filename=u-boot.sd\0" \

This is still broken, mxsboot doesn't work on mx23.

> +	"update_sd_firmware="		/* Update the SD firmware partition */ \
> +		"if mmc rescan ; then "	\
> +		"if tftp ${update_sd_firmware_filename} ; then " \
> +		"setexpr fw_sz ${filesize} / 0x200 ; "	/* SD block size */ \
> +		"setexpr fw_sz ${fw_sz} + 1 ; "	\
> +		"mmc write ${loadaddr} 0x800 ${fw_sz} ; " \
> +		"fi ; "	\
> +		"fi\0" \
> +	"script=boot.scr\0"	\
> +	"uimage=uImage\0" \
> +	"console=ttyAMA0\0" \
> +	"fdt_file=imx23-olinuxino.dtb\0" \
> +	"fdt_addr=0x41000000\0" \
> +	"boot_fdt=try\0" \
> +	"mmcdev=0\0" \
> +	"mmcpart=2\0" \
> +	"mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
> +	"mmcargs=setenv bootargs console=${console},${baudrate} " \
> +		"root=${mmcroot}\0" \
> +	"loadbootscript="  \
> +		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
> +	"bootscript=echo Running bootscript from mmc ...; "	\
> +		"source\0" \
> +	"loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
> +	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
> +	"mmcboot=echo Booting from mmc ...; " \
> +		"run mmcargs; " \
> +		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
> +			"if run loadfdt; then " \
> +				"bootm ${loadaddr} - ${fdt_addr}; " \
> +			"else " \
> +				"if test ${boot_fdt} = try; then " \
> +					"bootm; " \
> +				"else " \
> +					"echo WARN: Cannot load the DT; " \
> +				"fi; " \
> +			"fi; " \
> +		"else " \
> +			"bootm; " \
> +		"fi;\0"
> +
> +#define CONFIG_BOOTCOMMAND \
> +	"mmc dev ${mmcdev}; if mmc rescan; then " \
> +		"if run loadbootscript; then " \
> +			"run bootscript; " \
> +		"else " \
> +			"if run loaduimage; then " \
> +				"run mmcboot; " \
> +			"else " \
> +				"echo ERR: Fail to boot from MMC; " \
> +			"fi; " \
> +		"fi; " \
> +	"else exit; fi"
> +
>  #endif /* __MX23_OLINUXINO_CONFIG_H__ */
Otavio Salvador - Jan. 23, 2013, 8:12 p.m.
On Wed, Jan 23, 2013 at 5:12 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Otavio Salvador,
>
>> This adds a default environment with support for MMC booting.
>>
>> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
>> ---
>> Changes in v5:
>> - Remove duplicate environment setting
>> - Improve commit log
>>
>> Changes in v4: None
>> Changes in v3: None
>> Changes in v2: None
>>
>>  include/configs/mx23_olinuxino.h | 74
>> ++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+),
>> 7 deletions(-)
>>
>> diff --git a/include/configs/mx23_olinuxino.h
>> b/include/configs/mx23_olinuxino.h index bc63481..fc859b3 100644
>> --- a/include/configs/mx23_olinuxino.h
>> +++ b/include/configs/mx23_olinuxino.h
>> @@ -114,6 +114,14 @@
>>  /*
>>   * MMC Driver
>>   */
>> +#define      CONFIG_ENV_IS_IN_MMC
>> +#define      CONFIG_ENV_OVERWRITE
>> +#ifdef       CONFIG_ENV_IS_IN_MMC
>> +#define      CONFIG_ENV_OFFSET       (256 * 1024)
>> +#define      CONFIG_ENV_SIZE (16 * 1024)
>> +#define      CONFIG_SYS_MMC_ENV_DEV 0
>> +#endif
>
> The stuff aboce goes into ENV section below
>
>> +#define      CONFIG_CMD_SAVEENV
>
> CMD goes under CMD section (is this really even needed? saveenv is there all the
> time anyway)

Indeed this is not need; I removed it.

>>  #ifdef       CONFIG_CMD_MMC
>>  #define      CONFIG_MMC
>>  #define      CONFIG_BOUNCE_BUFFER
>> @@ -127,21 +135,73 @@
>>  #define CONFIG_APBH_DMA
>>
>>  /*
>> - * ENV -- nowhere so far
>> - */
>> -#define      CONFIG_ENV_SIZE                 (16 * 1024)
>> -#define      CONFIG_ENV_IS_NOWHERE
>> -
>> -/*
>>   * Boot Linux
>>   */
>>  #define      CONFIG_CMDLINE_TAG
>>  #define      CONFIG_SETUP_MEMORY_TAGS
>>  #define      CONFIG_BOOTDELAY        3
>>  #define      CONFIG_BOOTFILE         "uImage"
>> -#define      CONFIG_BOOTARGS         "console=ttyAMA0,115200n8 "
>>  #define      CONFIG_LOADADDR         0x42000000
>>  #define      CONFIG_SYS_LOAD_ADDR    CONFIG_LOADADDR
>>  #define      CONFIG_OF_LIBFDT
>>
>> +/*
>> + * Extra Environments
>> + */
>> +#define CONFIG_EXTRA_ENV_SETTINGS \
>> +     "update_sd_firmware_filename=u-boot.sd\0" \
>
> This is still broken, mxsboot doesn't work on mx23.

Well, yes but I see no reason to not put this here as it will work
when mxsboot is done. I can hold it if you prefer...

>> +     "update_sd_firmware="           /* Update the SD firmware partition */ \
>> +             "if mmc rescan ; then " \
>> +             "if tftp ${update_sd_firmware_filename} ; then " \
>> +             "setexpr fw_sz ${filesize} / 0x200 ; "  /* SD block size */ \
>> +             "setexpr fw_sz ${fw_sz} + 1 ; " \
>> +             "mmc write ${loadaddr} 0x800 ${fw_sz} ; " \
>> +             "fi ; " \
>> +             "fi\0" \
>> +     "script=boot.scr\0"     \
>> +     "uimage=uImage\0" \
>> +     "console=ttyAMA0\0" \
>> +     "fdt_file=imx23-olinuxino.dtb\0" \
>> +     "fdt_addr=0x41000000\0" \
>> +     "boot_fdt=try\0" \
>> +     "mmcdev=0\0" \
>> +     "mmcpart=2\0" \
>> +     "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
>> +     "mmcargs=setenv bootargs console=${console},${baudrate} " \
>> +             "root=${mmcroot}\0" \
>> +     "loadbootscript="  \
>> +             "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
>> +     "bootscript=echo Running bootscript from mmc ...; "     \
>> +             "source\0" \
>> +     "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
>> +     "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
>> +     "mmcboot=echo Booting from mmc ...; " \
>> +             "run mmcargs; " \
>> +             "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
>> +                     "if run loadfdt; then " \
>> +                             "bootm ${loadaddr} - ${fdt_addr}; " \
>> +                     "else " \
>> +                             "if test ${boot_fdt} = try; then " \
>> +                                     "bootm; " \
>> +                             "else " \
>> +                                     "echo WARN: Cannot load the DT; " \
>> +                             "fi; " \
>> +                     "fi; " \
>> +             "else " \
>> +                     "bootm; " \
>> +             "fi;\0"
>> +
>> +#define CONFIG_BOOTCOMMAND \
>> +     "mmc dev ${mmcdev}; if mmc rescan; then " \
>> +             "if run loadbootscript; then " \
>> +                     "run bootscript; " \
>> +             "else " \
>> +                     "if run loaduimage; then " \
>> +                             "run mmcboot; " \
>> +                     "else " \
>> +                             "echo ERR: Fail to boot from MMC; " \
>> +                     "fi; " \
>> +             "fi; " \
>> +     "else exit; fi"
>> +
>>  #endif /* __MX23_OLINUXINO_CONFIG_H__ */



--
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br
Marek Vasut - Jan. 23, 2013, 9:06 p.m.
Dear Otavio Salvador,

> On Wed, Jan 23, 2013 at 5:12 PM, Marek Vasut <marex@denx.de> wrote:
> > Dear Otavio Salvador,
> > 
> >> This adds a default environment with support for MMC booting.
> >> 
> >> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> >> ---
> >> Changes in v5:
> >> - Remove duplicate environment setting
> >> - Improve commit log
> >> 
> >> Changes in v4: None
> >> Changes in v3: None
> >> Changes in v2: None
> >> 
> >>  include/configs/mx23_olinuxino.h | 74
> >> 
> >> ++++++++++++++++++++++++++++++++++++---- 1 file changed, 67
> >> insertions(+), 7 deletions(-)
> >> 
> >> diff --git a/include/configs/mx23_olinuxino.h
> >> b/include/configs/mx23_olinuxino.h index bc63481..fc859b3 100644
> >> --- a/include/configs/mx23_olinuxino.h
> >> +++ b/include/configs/mx23_olinuxino.h
> >> @@ -114,6 +114,14 @@
> >> 
> >>  /*
> >>  
> >>   * MMC Driver
> >>   */
> >> 
> >> +#define      CONFIG_ENV_IS_IN_MMC
> >> +#define      CONFIG_ENV_OVERWRITE
> >> +#ifdef       CONFIG_ENV_IS_IN_MMC
> >> +#define      CONFIG_ENV_OFFSET       (256 * 1024)
> >> +#define      CONFIG_ENV_SIZE (16 * 1024)
> >> +#define      CONFIG_SYS_MMC_ENV_DEV 0
> >> +#endif
> > 
> > The stuff aboce goes into ENV section below
> > 
> >> +#define      CONFIG_CMD_SAVEENV
> > 
> > CMD goes under CMD section (is this really even needed? saveenv is there
> > all the time anyway)
> 
> Indeed this is not need; I removed it.
> 
> >>  #ifdef       CONFIG_CMD_MMC
> >>  #define      CONFIG_MMC
> >>  #define      CONFIG_BOUNCE_BUFFER
> >> 
> >> @@ -127,21 +135,73 @@
> >> 
> >>  #define CONFIG_APBH_DMA
> >>  
> >>  /*
> >> 
> >> - * ENV -- nowhere so far
> >> - */
> >> -#define      CONFIG_ENV_SIZE                 (16 * 1024)
> >> -#define      CONFIG_ENV_IS_NOWHERE
> >> -
> >> -/*
> >> 
> >>   * Boot Linux
> >>   */
> >>  
> >>  #define      CONFIG_CMDLINE_TAG
> >>  #define      CONFIG_SETUP_MEMORY_TAGS
> >>  #define      CONFIG_BOOTDELAY        3
> >>  #define      CONFIG_BOOTFILE         "uImage"
> >> 
> >> -#define      CONFIG_BOOTARGS         "console=ttyAMA0,115200n8 "
> >> 
> >>  #define      CONFIG_LOADADDR         0x42000000
> >>  #define      CONFIG_SYS_LOAD_ADDR    CONFIG_LOADADDR
> >>  #define      CONFIG_OF_LIBFDT
> >> 
> >> +/*
> >> + * Extra Environments
> >> + */
> >> +#define CONFIG_EXTRA_ENV_SETTINGS \
> >> +     "update_sd_firmware_filename=u-boot.sd\0" \
> > 
> > This is still broken, mxsboot doesn't work on mx23.
> 
> Well, yes but I see no reason to not put this here as it will work
> when mxsboot is done. I can hold it if you prefer...

You're adding broken code -- hold it of course. Or split this into two patches

Best regards,
Marek Vasut

Patch

diff --git a/include/configs/mx23_olinuxino.h b/include/configs/mx23_olinuxino.h
index bc63481..fc859b3 100644
--- a/include/configs/mx23_olinuxino.h
+++ b/include/configs/mx23_olinuxino.h
@@ -114,6 +114,14 @@ 
 /*
  * MMC Driver
  */
+#define	CONFIG_ENV_IS_IN_MMC
+#define	CONFIG_ENV_OVERWRITE
+#ifdef	CONFIG_ENV_IS_IN_MMC
+#define	CONFIG_ENV_OFFSET	(256 * 1024)
+#define	CONFIG_ENV_SIZE	(16 * 1024)
+#define	CONFIG_SYS_MMC_ENV_DEV 0
+#endif
+#define	CONFIG_CMD_SAVEENV
 #ifdef	CONFIG_CMD_MMC
 #define	CONFIG_MMC
 #define	CONFIG_BOUNCE_BUFFER
@@ -127,21 +135,73 @@ 
 #define CONFIG_APBH_DMA
 
 /*
- * ENV -- nowhere so far
- */
-#define	CONFIG_ENV_SIZE			(16 * 1024)
-#define	CONFIG_ENV_IS_NOWHERE
-
-/*
  * Boot Linux
  */
 #define	CONFIG_CMDLINE_TAG
 #define	CONFIG_SETUP_MEMORY_TAGS
 #define	CONFIG_BOOTDELAY	3
 #define	CONFIG_BOOTFILE		"uImage"
-#define	CONFIG_BOOTARGS		"console=ttyAMA0,115200n8 "
 #define	CONFIG_LOADADDR		0x42000000
 #define	CONFIG_SYS_LOAD_ADDR	CONFIG_LOADADDR
 #define	CONFIG_OF_LIBFDT
 
+/*
+ * Extra Environments
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"update_sd_firmware_filename=u-boot.sd\0" \
+	"update_sd_firmware="		/* Update the SD firmware partition */ \
+		"if mmc rescan ; then "	\
+		"if tftp ${update_sd_firmware_filename} ; then " \
+		"setexpr fw_sz ${filesize} / 0x200 ; "	/* SD block size */ \
+		"setexpr fw_sz ${fw_sz} + 1 ; "	\
+		"mmc write ${loadaddr} 0x800 ${fw_sz} ; " \
+		"fi ; "	\
+		"fi\0" \
+	"script=boot.scr\0"	\
+	"uimage=uImage\0" \
+	"console=ttyAMA0\0" \
+	"fdt_file=imx23-olinuxino.dtb\0" \
+	"fdt_addr=0x41000000\0" \
+	"boot_fdt=try\0" \
+	"mmcdev=0\0" \
+	"mmcpart=2\0" \
+	"mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
+	"mmcargs=setenv bootargs console=${console},${baudrate} " \
+		"root=${mmcroot}\0" \
+	"loadbootscript="  \
+		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+	"bootscript=echo Running bootscript from mmc ...; "	\
+		"source\0" \
+	"loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
+	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+	"mmcboot=echo Booting from mmc ...; " \
+		"run mmcargs; " \
+		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+			"if run loadfdt; then " \
+				"bootm ${loadaddr} - ${fdt_addr}; " \
+			"else " \
+				"if test ${boot_fdt} = try; then " \
+					"bootm; " \
+				"else " \
+					"echo WARN: Cannot load the DT; " \
+				"fi; " \
+			"fi; " \
+		"else " \
+			"bootm; " \
+		"fi;\0"
+
+#define CONFIG_BOOTCOMMAND \
+	"mmc dev ${mmcdev}; if mmc rescan; then " \
+		"if run loadbootscript; then " \
+			"run bootscript; " \
+		"else " \
+			"if run loaduimage; then " \
+				"run mmcboot; " \
+			"else " \
+				"echo ERR: Fail to boot from MMC; " \
+			"fi; " \
+		"fi; " \
+	"else exit; fi"
+
 #endif /* __MX23_OLINUXINO_CONFIG_H__ */