Message ID | CAP9ODKpxWGee9wuE5gQp8yKUWH0E3VVEAiMCHW0h_WbycN9gKg@mail.gmail.com |
---|---|
State | Changes Requested |
Delegated to: | Stefano Babic |
Headers | show |
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
On Fri, Dec 28, 2012 at 6:52 AM, Stefano Babic <sbabic@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@ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h 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" \ "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}; " \ + "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}; " \ + "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 \