Patchwork [U-Boot] mx28evk: extend default environment

login
register
mail settings
Submitter Otavio Salvador
Date Sept. 15, 2012, 6:26 p.m.
Message ID <1347733577-20676-1-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/184092/
State Accepted
Commit f994dc5ecfbb702cc8041de246e7aa58c6ed0e9f
Delegated to: Stefano Babic
Headers show

Comments

Otavio Salvador - Sept. 15, 2012, 6:26 p.m.
The environment has been based on mx53loco and m28evk but keeping the
possibility to easy change the default console device as Freescale and
mainline kernels differ on the device name.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
 include/configs/mx28evk.h |   82 ++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 74 insertions(+), 8 deletions(-)
Stefano Babic - Sept. 17, 2012, 11:08 a.m.
On 15/09/2012 20:26, Otavio Salvador wrote:
> The environment has been based on mx53loco and m28evk but keeping the
> possibility to easy change the default console device as Freescale and
> mainline kernels differ on the device name.
> 
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
>  include/configs/mx28evk.h |   82 ++++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 74 insertions(+), 8 deletions(-)
> 
> diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
> index 43b4002..dffb744 100644
> --- a/include/configs/mx28evk.h
> +++ b/include/configs/mx28evk.h
> @@ -239,7 +239,6 @@
>  #define CONFIG_SETUP_MEMORY_TAGS
>  #define CONFIG_BOOTDELAY	3
>  #define CONFIG_BOOTFILE	"uImage"
> -#define CONFIG_BOOTCOMMAND	"run bootcmd_net"
>  #define CONFIG_LOADADDR	0x42000000
>  #define CONFIG_SYS_LOAD_ADDR	CONFIG_LOADADDR
>  #define CONFIG_OF_LIBFDT
> @@ -248,13 +247,80 @@
>   * Extra Environments
>   */
>  #define CONFIG_EXTRA_ENV_SETTINGS \
> -	"console_fsl=console=ttyAM0" \
> -	"console_mainline=console=ttyAMA0" \
> -	"netargs=setenv bootargs console=${console_mainline}" \
> +	"update_nand_full_filename=u-boot.nand\0" \
> +	"update_nand_firmware_filename=u-boot.sb\0"	\
> +	"update_sd_firmware_filename=u-boot.sd\0" \
> +	"update_nand_firmware_maxsz=0x100000\0"	\
> +	"update_nand_stride=0x40\0"	/* MX28 datasheet ch. 12.12 */ \
> +	"update_nand_count=0x4\0"	/* MX28 datasheet ch. 12.12 */ \
> +	"update_nand_get_fcb_size="	/* Get size of FCB blocks */ \
> +		"nand device 0 ; " \
> +		"nand info ; " \
> +		"setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
> +		"setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
> +	"update_nand_full="		    /* Update FCB, DBBT and FW */ \
> +		"if tftp ${update_nand_full_filename} ; then " \
> +		"run update_nand_get_fcb_size ; " \
> +		"nand scrub -y 0x0 ${filesize} ; " \
> +		"nand write.raw ${loadaddr} 0x0 ${update_nand_fcb} ; " \
> +		"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
> +		"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
> +		"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
> +		"fi\0" \
> +	"update_nand_firmware="		/* Update only firmware */ \
> +		"if tftp ${update_nand_firmware_filename} ; then " \
> +		"run update_nand_get_fcb_size ; " \
> +		"setexpr fcb_sz ${update_nand_fcb} * 2 ; " /* FCB + DBBT */ \
> +		"setexpr fw_sz ${update_nand_firmware_maxsz} * 2 ; " \
> +		"setexpr fw_off ${fcb_sz} + ${update_nand_firmware_maxsz};" \
> +		"nand erase ${fcb_sz} ${fw_sz} ; " \
> +		"nand write ${loadaddr} ${fcb_sz} ${filesize} ; " \
> +		"nand write ${loadaddr} ${fw_off} ${filesize} ; " \
> +		"fi\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_fsl=ttyAM0\0" \
> +	"console_mainline=ttyAMA0\0" \
> +	"mmcdev=0\0" \
> +	"mmcpart=2\0" \
> +	"mmcroot=/dev/mmcblk0p3 rw\0" \
> +	"mmcrootfstype=ext3 rootwait\0"	\
> +	"mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \
> +		"root=${mmcroot} " \
> +		"rootfstype=${mmcrootfstype}\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" \
> +	"mmcboot=echo Booting from mmc ...; " \
> +		"run mmcargs; "	\
> +		"bootm\0" \
> +	"netargs=setenv bootargs console=${console_mainline},${baudrate} " \
>  		"root=/dev/nfs " \
> -		"ip=dhcp nfsroot=${serverip}:${nfsroot}\0" \
> -	"bootcmd_net=echo Booting from net ...; " \
> -		"run netargs; " \
> -		"dhcp ${uimage}; bootm\0" \
> +		"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
> +	"netboot=echo Booting from net ...; " \
> +		"run netargs; "	\
> +		"dhcp ${uimage}; bootm\0"
> +
> +#define CONFIG_BOOTCOMMAND \
> +	"if mmc rescan ${mmcdev}; then " \
> +		"if run loadbootscript; then " \
> +			"run bootscript; " \
> +		"else " \
> +			"if run loaduimage; then " \
> +				"run mmcboot; " \
> +			"else run netboot; " \
> +			"fi; " \
> +		"fi; " \
> +	"else run netboot; fi"
>  
>  #endif /* __MX28EVK_CONFIG_H__ */
> 

Any issue why I should not merge it in the current release ? Then not, I
push it for the relase...

Regards,
Stefano

Patch

diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
index 43b4002..dffb744 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -239,7 +239,6 @@ 
 #define CONFIG_SETUP_MEMORY_TAGS
 #define CONFIG_BOOTDELAY	3
 #define CONFIG_BOOTFILE	"uImage"
-#define CONFIG_BOOTCOMMAND	"run bootcmd_net"
 #define CONFIG_LOADADDR	0x42000000
 #define CONFIG_SYS_LOAD_ADDR	CONFIG_LOADADDR
 #define CONFIG_OF_LIBFDT
@@ -248,13 +247,80 @@ 
  * Extra Environments
  */
 #define CONFIG_EXTRA_ENV_SETTINGS \
-	"console_fsl=console=ttyAM0" \
-	"console_mainline=console=ttyAMA0" \
-	"netargs=setenv bootargs console=${console_mainline}" \
+	"update_nand_full_filename=u-boot.nand\0" \
+	"update_nand_firmware_filename=u-boot.sb\0"	\
+	"update_sd_firmware_filename=u-boot.sd\0" \
+	"update_nand_firmware_maxsz=0x100000\0"	\
+	"update_nand_stride=0x40\0"	/* MX28 datasheet ch. 12.12 */ \
+	"update_nand_count=0x4\0"	/* MX28 datasheet ch. 12.12 */ \
+	"update_nand_get_fcb_size="	/* Get size of FCB blocks */ \
+		"nand device 0 ; " \
+		"nand info ; " \
+		"setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
+		"setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
+	"update_nand_full="		    /* Update FCB, DBBT and FW */ \
+		"if tftp ${update_nand_full_filename} ; then " \
+		"run update_nand_get_fcb_size ; " \
+		"nand scrub -y 0x0 ${filesize} ; " \
+		"nand write.raw ${loadaddr} 0x0 ${update_nand_fcb} ; " \
+		"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
+		"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
+		"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
+		"fi\0" \
+	"update_nand_firmware="		/* Update only firmware */ \
+		"if tftp ${update_nand_firmware_filename} ; then " \
+		"run update_nand_get_fcb_size ; " \
+		"setexpr fcb_sz ${update_nand_fcb} * 2 ; " /* FCB + DBBT */ \
+		"setexpr fw_sz ${update_nand_firmware_maxsz} * 2 ; " \
+		"setexpr fw_off ${fcb_sz} + ${update_nand_firmware_maxsz};" \
+		"nand erase ${fcb_sz} ${fw_sz} ; " \
+		"nand write ${loadaddr} ${fcb_sz} ${filesize} ; " \
+		"nand write ${loadaddr} ${fw_off} ${filesize} ; " \
+		"fi\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_fsl=ttyAM0\0" \
+	"console_mainline=ttyAMA0\0" \
+	"mmcdev=0\0" \
+	"mmcpart=2\0" \
+	"mmcroot=/dev/mmcblk0p3 rw\0" \
+	"mmcrootfstype=ext3 rootwait\0"	\
+	"mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \
+		"root=${mmcroot} " \
+		"rootfstype=${mmcrootfstype}\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" \
+	"mmcboot=echo Booting from mmc ...; " \
+		"run mmcargs; "	\
+		"bootm\0" \
+	"netargs=setenv bootargs console=${console_mainline},${baudrate} " \
 		"root=/dev/nfs " \
-		"ip=dhcp nfsroot=${serverip}:${nfsroot}\0" \
-	"bootcmd_net=echo Booting from net ...; " \
-		"run netargs; " \
-		"dhcp ${uimage}; bootm\0" \
+		"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
+	"netboot=echo Booting from net ...; " \
+		"run netargs; "	\
+		"dhcp ${uimage}; bootm\0"
+
+#define CONFIG_BOOTCOMMAND \
+	"if mmc rescan ${mmcdev}; then " \
+		"if run loadbootscript; then " \
+			"run bootscript; " \
+		"else " \
+			"if run loaduimage; then " \
+				"run mmcboot; " \
+			"else run netboot; " \
+			"fi; " \
+		"fi; " \
+	"else run netboot; fi"
 
 #endif /* __MX28EVK_CONFIG_H__ */