[U-Boot] [PATCH 7/9] mx53loco: Add support to dynamically choose between ftd use or not

Stefano Babic sbabic at denx.de
Fri Dec 28 09:52:45 CET 2012


On 27/12/2012 22:22, Otavio Salvador wrote:

> 
> Right; I have did the bellow changes:
> 
> diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h

ok, you changed the mx28evk, but we are really talking about
mx53loco...never mind !

> index ac9522f..45ac072 100644
> --- a/include/configs/mx28evk.h
> +++ b/include/configs/mx28evk.h
> @@ -290,6 +290,10 @@
>     "uimage=uImage\0" \
>     "console_fsl=ttyAM0\0" \
>     "console_mainline=ttyAMA0\0" \
> +   "ftd_file=imx28-evk.dtb\0" \
> +   "ftd_addr=0x41000000\0" \
> +   "boot_fdt=auto\0" \
> +   "ip_dyn=yes\0" \

Only my personal taste. I find simpler, specially with U-Boot
environment, to not full describe the variable with strings like "yes"
or "no". This lets me to simply test with
	
	if test -n ${ip_dyn}

and it works if ip_dyn is not set at all.

>     "mmcdev=0\0" \
>     "mmcpart=2\0" \
>     "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
> @@ -302,13 +306,43 @@
>     "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
>     "mmcboot=echo Booting from mmc ...; " \
>         "run mmcargs; " \
> -       "bootm\0" \
> +       "if test ${boot_fdt} = no; then " \
> +           "bootm; " \
> +       "else " \
> +           "if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr}
> ${ftd_file}; then " \
> +               "bootm ${loadaddr} - ${ftd_addr}; " \

I think you can better rewrite it as :

       "if test ${boot_fdt} = yes; then " \
           "if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} 		
		${ftd_file}; then " \
               "bootm ${loadaddr} - ${ftd_addr}; " \
            "else " \
                   "echo ERROR: Cannot load the DT, aborting...; " \
            "fi;\0" \
            "else "
                   "bootm; " \
            "fi;\0" \

Not sure what you mean with "auto". You try to start a  DT kernel
without FDT. Why is it helpful ?

> +           "else " \
> +               "if test ${boot_fdt} = auto; then " \
> +                   "bootm; " \
> +               "else " \
> +                   "echo ERROR: Cannot load the DT, aborting...; " \
> +               "fi;\0" \
> +           "fi;\0" \
> +       "fi;\0" \
>     "netargs=setenv bootargs console=${console_mainline},${baudrate} " \
>         "root=/dev/nfs " \
>         "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
>     "netboot=echo Booting from net ...; " \
>         "run netargs; " \
> -       "dhcp ${uimage}; bootm\0"
> +       "if test ${ip_dyn} = yes; then " \
> +           "setenv get_cmd dhcp; " \
> +       "else " \
> +           "setenv get_cmd tftp; " \
> +       "fi;\0" \
> +       ${get_cmd} ${uimage}; " \

This does not work - you must use "run ${get_cmd}"

> +       "if test ${boot_fdt} = no; then " \
> +           "bootm; " \
> +       "else " \
> +           "if ${get_cmd} ${ftd_addr} ${ftd_file}; then "  \
> +               "bootm ${loadaddr} - ${ftd_addr}; " \
> +           "else " \
> +               "if test ${boot_fdt} = auto; then " \
> +                   "bootm; " \
> +               "else " \
> +                   "echo ERROR: Cannot load the DT, aborting...; " \
> +               "fi;\0" \
> +           "fi;\0" \
> +       "fi;\0"
> 
>  #define CONFIG_BOOTCOMMAND \
>     "mmc dev ${mmcdev}; if mmc rescan; then " \
> 
> What do you think? I don't have the board

I can test it on mx53loco

Regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list