[U-Boot] [PATCH 7/9] mx53loco: Add support to dynamically choose between ftd use or not
Otavio Salvador
otavio at ossystems.com.br
Fri Dec 28 18:47:47 CET 2012
On Fri, Dec 28, 2012 at 6:52 AM, Stefano Babic <sbabic at denx.de> wrote:
> 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 !
Indeed; I will redo it for mx53qsb and send it ... so you can try. I
will attach it in the e-mail so I resend it in a proper pull request
later.
>> 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.
Yes; I just don't know if it us good to remove it, instead of set it
to something as 0 or no so user doesn't need to read the code to
identify the need of setting the var to enable dynamic ip again.
>> "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" \
I will rework it inverting the logic.
> Not sure what you mean with "auto". You try to start a DT kernel
> without FDT. Why is it helpful ?
The idea is to allow to it to try to load fdt and if it fails boot a
non-fdt kernel. This allow for e.g OE to use same environment to be
used to fdt and non-fdt kernel. The only difference is the inclusion
or not of the dtb file in the filesystem. I can name it 'try' if you
think it is clearer.
>> + "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}"
I see, good.
>> + "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
I'll redo it and send.
--
Otavio Salvador O.S. Systems
E-mail: otavio at ossystems.com.br http://www.ossystems.com.br
Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
More information about the U-Boot
mailing list