[U-Boot] [PATCH 3/3] mx28evk: extend default environment
Marek Vasut
marex at denx.de
Tue May 15 23:16:38 CEST 2012
Dear Otavio Salvador,
> 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.
FSL kernel is dumb :-(
But I like this patch. On the other hand, can't this be made even more generic
so everyone can use such a nice unified env?
>
> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> Cc: Marek Vasut <marex at denx.de>
> Cc: Stefano Babic <sbabic at denx.de>
> Cc: Wolfgang Denk <wd at denx.de>
> Cc: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> include/configs/mx28evk.h | 83
> ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 75
> insertions(+), 8 deletions(-)
>
> diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
> index e98a746..6c2bf5f 100644
> --- a/include/configs/mx28evk.h
> +++ b/include/configs/mx28evk.h
> @@ -234,7 +234,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
> @@ -243,13 +242,81 @@
> * 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" \
> + "console=${console_mainline}\0" \
> + "mmcdev=0\0" \
> + "mmcpart=2\0" \
> + "mmcroot=/dev/mmcblk0p3 rw\0" \
> + "mmcrootfstype=ext3 rootwait\0" \
> + "mmcargs=setenv bootargs console=${console},${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=ttymxc0,${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__ */
Best regards,
Marek Vasut
More information about the U-Boot
mailing list