Message ID | 1357577008-11941-4-git-send-email-otavio@ossystems.com.br |
---|---|
State | Changes Requested |
Delegated to: | Stefano Babic |
Headers | show |
On Mon, Jan 7, 2013 at 2:43 PM, Otavio Salvador <otavio@ossystems.com.br> wrote: > "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ > + "loadftd=fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}\0" \ > "mmcboot=echo Booting from mmc ...; " \ > "run mmcargs; " \ > - "bootm\0" \ > + "if test ${boot_fdt} = yes; then " \ > + "if run loadfdt; then " \ > + "bootm ${loadaddr} - ${ftd_addr}; " \ > + "else " \ > + "if test ${boot_fdt} = try; then " \ > + "bootm; " \ > + "else " \ > + "echo ERROR: Cannot load the DT, aborting...; " \ > + "exit; " \ Current behavior is to try to load uImage from mmc first, if it fails then it tries tftp. Isn't this 'exit' that you introduced preventing tftp transfer in the case of mmc fail? Also, can you confirm that your patchset works in the following cases: 1. Loading a non-dt kernel via mmc 2. Loading a dt kernel via mmc 3. Loading a non-dt kernel via tftp 4. Loading a dt kernel via tftp
On Mon, Jan 7, 2013 at 2:51 PM, Fabio Estevam <festevam@gmail.com> wrote: > On Mon, Jan 7, 2013 at 2:43 PM, Otavio Salvador <otavio@ossystems.com.br> wrote: > >> "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ >> + "loadftd=fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}\0" \ >> "mmcboot=echo Booting from mmc ...; " \ >> "run mmcargs; " \ >> - "bootm\0" \ >> + "if test ${boot_fdt} = yes; then " \ >> + "if run loadfdt; then " \ >> + "bootm ${loadaddr} - ${ftd_addr}; " \ >> + "else " \ >> + "if test ${boot_fdt} = try; then " \ >> + "bootm; " \ >> + "else " \ >> + "echo ERROR: Cannot load the DT, aborting...; " \ >> + "exit; " \ > > Current behavior is to try to load uImage from mmc first, if it fails > then it tries tftp. > > Isn't this 'exit' that you introduced preventing tftp transfer in the > case of mmc fail? Yes; it will go out and won't try tftp. In this case I can remove the exit and change the ERROR to WARNINF. What do you think? > Also, can you confirm that your patchset works in the following cases: > > 1. Loading a non-dt kernel via mmc > 2. Loading a dt kernel via mmc > 3. Loading a non-dt kernel via tftp > 4. Loading a dt kernel via tftp Yes; it is the same patchset we applied in OE. -- 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
On Mon, Jan 7, 2013 at 2:58 PM, Otavio Salvador <otavio@ossystems.com.br> wrote: > Yes; it will go out and won't try tftp. In this case I can remove the > exit and change the ERROR to WARNINF. What do you think? Yes, please remove the exit. > >> Also, can you confirm that your patchset works in the following cases: >> >> 1. Loading a non-dt kernel via mmc >> 2. Loading a dt kernel via mmc >> 3. Loading a non-dt kernel via tftp >> 4. Loading a dt kernel via tftp > > Yes; it is the same patchset we applied in OE. In OE we mainly boot from sd card, so that's why I asked to double check whether tftp is also functional.
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index ac9522f..e7107b5 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=try\0" \ + "ip_dyn=yes\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \ "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \ @@ -300,15 +304,48 @@ "bootscript=echo Running bootscript from mmc ...; " \ "source\0" \ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ + "loadftd=fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ - "bootm\0" \ + "if test ${boot_fdt} = yes; then " \ + "if run loadfdt; then " \ + "bootm ${loadaddr} - ${ftd_addr}; " \ + "else " \ + "if test ${boot_fdt} = try; then " \ + "bootm; " \ + "else " \ + "echo ERROR: Cannot load the DT, aborting...; " \ + "exit; " \ + "fi;\0" \ + "fi;\0" \ + "else " \ + "bootm; " \ + "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" \ + "run ${get_cmd} ${uimage}; " \ + "if test ${boot_fdt} = no; then " \ + "if run ${get_cmd} ${ftd_addr} ${ftd_file}; then " \ + "bootm ${loadaddr} - ${ftd_addr}; " \ + "else " \ + "if test ${boot_fdt} = try; then " \ + "bootm; " \ + "else " \ + "echo ERROR: Cannot load the DT, aborting...; " \ + "exit; " \ + "fi;\0" \ + "fi;\0" \ + "else " \ + "bootm; " \ + "fi;\0" #define CONFIG_BOOTCOMMAND \ "mmc dev ${mmcdev}; if mmc rescan; then " \
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> --- Changes in v3: - Add loadfdt - Use loadfdt - Call exit to abort script Changes in v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try' include/configs/mx28evk.h | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-)