[U-Boot] [PATCH v2 0/6] Improve default environment for easy use

This patchset improves the default environment of machines currently supported in OpenEmbedded and Yocto to make it compatible with mainline and Freescale BSP Linux kernel.
A new patch has been add to change the format in mx6qsabrelite in environment setting and already merged patches removed from this new pull request.
Changes in v2: - New patch - reformat environment change to fit in 80 cols - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try'
Otavio Salvador (6): mx6qsabrelite: Use tabs to environment setting mx28evk: We shouldn't hardcode a rootfs filesystem type mx28evk: Add support to dynamically choose between ftd use or not mx53loco: Add support to dynamically choose between ftd use or not mx6qsabrelite: Add support to dynamically choose between ftd use or not mx6qsabre{auto,sd}: Add support to dynamically choose between ftd use or not
include/configs/mx28evk.h | 46 ++++++++++++++--- include/configs/mx53loco.h | 38 +++++++++++++- include/configs/mx6qsabre_common.h | 39 ++++++++++++-- include/configs/mx6qsabreauto.h | 1 + include/configs/mx6qsabrelite.h | 100 ++++++++++++++++++++++++------------ include/configs/mx6qsabresd.h | 1 + 6 files changed, 180 insertions(+), 45 deletions(-)

This rework the environment to use tabs for environment setting as done in other boards.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- Changes in v2: - New patch
include/configs/mx6qsabrelite.h | 66 +++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/include/configs/mx6qsabrelite.h b/include/configs/mx6qsabrelite.h index 0f6bbb4..ee86f9b 100644 --- a/include/configs/mx6qsabrelite.h +++ b/include/configs/mx6qsabrelite.h @@ -152,43 +152,43 @@ #define CONFIG_SYS_TEXT_BASE 0x17800000
#define CONFIG_EXTRA_ENV_SETTINGS \ - "script=boot.scr\0" \ - "uimage=uImage\0" \ + "script=boot.scr\0" \ + "uimage=uImage\0" \ "console=ttymxc1\0" \ - "fdt_high=0xffffffff\0" \ + "fdt_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \ - "mmcdev=0\0" \ - "mmcpart=2\0" \ - "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \ - "mmcargs=setenv bootargs console=${console},${baudrate} " \ - "root=${mmcroot}\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=${console},${baudrate} " \ - "root=/dev/nfs " \ - "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ - "netboot=echo Booting from net ...; " \ - "run netargs; " \ - "dhcp ${uimage}; bootm\0" \ + "mmcdev=0\0" \ + "mmcpart=2\0" \ + "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \ + "mmcargs=setenv bootargs console=${console},${baudrate} " \ + "root=${mmcroot}\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=${console},${baudrate} " \ + "root=/dev/nfs " \ + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ + "netboot=echo Booting from net ...; " \ + "run netargs; " \ + "dhcp ${uimage}; bootm\0"
#define CONFIG_BOOTCOMMAND \ - "mmc dev ${mmcdev};" \ - "mmc dev ${mmcdev}; if mmc rescan; then " \ - "if run loadbootscript; then " \ - "run bootscript; " \ - "else " \ - "if run loaduimage; then " \ - "run mmcboot; " \ - "else run netboot; " \ - "fi; " \ - "fi; " \ - "else run netboot; fi" + "mmc dev ${mmcdev};" \ + "mmc dev ${mmcdev}; if mmc rescan; then " \ + "if run loadbootscript; then " \ + "run bootscript; " \ + "else " \ + "if run loaduimage; then " \ + "run mmcboot; " \ + "else run netboot; " \ + "fi; " \ + "fi; " \ + "else run netboot; fi"
#define CONFIG_ARP_TIMEOUT 200UL

For a generic environment, we shouldn't have a fixed rootfs filesystem so we drop it from env.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- Changes in v2: - reformat environment change to fit in 80 cols
include/configs/mx28evk.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index 8b89b25..ac9522f 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -292,11 +292,9 @@ "console_mainline=ttyAMA0\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \ - "mmcroot=/dev/mmcblk0p3 rw\0" \ - "mmcrootfstype=ext3 rootwait\0" \ - "mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ + "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \ + "mmcargs=setenv bootargs console=${console_mainline},${baudrate} " + "root=${mmcroot}\0" \ "loadbootscript=" \ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ "bootscript=echo Running bootscript from mmc ...; " \

On 28/12/2012 20:17, Otavio Salvador wrote:
For a generic environment, we shouldn't have a fixed rootfs filesystem so we drop it from env.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
Hi Otavio,
Changes in v2:
- reformat environment change to fit in 80 cols
include/configs/mx28evk.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index 8b89b25..ac9522f 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -292,11 +292,9 @@ "console_mainline=ttyAMA0\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \
- "mmcroot=/dev/mmcblk0p3 rw\0" \
- "mmcrootfstype=ext3 rootwait\0" \
- "mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \
"root=${mmcroot} " \
"rootfstype=${mmcrootfstype}\0" \
- "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
- "mmcargs=setenv bootargs console=${console_mainline},${baudrate} "
"loadbootscript=" \ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ "bootscript=echo Running bootscript from mmc ...; " \"root=${mmcroot}\0" \
I still get errors running checkpatch, for example:
WARNING: line over 80 characters #554: FILE: include/configs/mx53loco.h:162: + "if run ${get_cmd} ${ftd_addr} ${ftd_file}; then " \
WARNING: line over 80 characters #560: FILE: include/configs/mx53loco.h:168: + "echo ERROR: Cannot load the DT, aborting...; " \
WARNING: line over 80 characters #617: FILE: include/configs/mx6qsabrelite.h:177: + "if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}; then " \
Can you fix it and resubmit, please ? I will then apply the patchset.
Thanks, Stefano Babic

On Sat, Jan 5, 2013 at 2:50 PM, Stefano Babic sbabic@denx.de wrote:
On 28/12/2012 20:17, Otavio Salvador wrote:
For a generic environment, we shouldn't have a fixed rootfs filesystem so we drop it from env.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
Hi Otavio,
Changes in v2:
- reformat environment change to fit in 80 cols
include/configs/mx28evk.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index 8b89b25..ac9522f 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -292,11 +292,9 @@ "console_mainline=ttyAMA0\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \
"mmcroot=/dev/mmcblk0p3 rw\0" \
"mmcrootfstype=ext3 rootwait\0" \
"mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \
"root=${mmcroot} " \
"rootfstype=${mmcrootfstype}\0" \
"mmcroot=/dev/mmcblk0p3 rw rootwait\0" \
"mmcargs=setenv bootargs console=${console_mainline},${baudrate} "
"root=${mmcroot}\0" \ "loadbootscript=" \ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ "bootscript=echo Running bootscript from mmc ...; " \
I still get errors running checkpatch, for example:
WARNING: line over 80 characters #554: FILE: include/configs/mx53loco.h:162:
"if run ${get_cmd} ${ftd_addr} ${ftd_file}; then " \
WARNING: line over 80 characters #560: FILE: include/configs/mx53loco.h:168:
"echo ERROR: Cannot load the DT, aborting...; " \
WARNING: line over 80 characters #617: FILE: include/configs/mx6qsabrelite.h:177:
"if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}; then " \
Can you fix it and resubmit, please ? I will then apply the patchset.
It does seem too ugly to keep splitting those lines.
The problem here is the use of tags to indent the string.
I'd like to ask if we can relax this rule for the environments as it will make it confusing to read when looking at the code for no profit (in my point of view).
Regards,
-- 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

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 01/07/2013 07:05 AM, Otavio Salvador wrote:
On Sat, Jan 5, 2013 at 2:50 PM, Stefano Babic sbabic@denx.de wrote:
On 28/12/2012 20:17, Otavio Salvador wrote:
For a generic environment, we shouldn't have a fixed rootfs filesystem so we drop it from env.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br ---
Hi Otavio,
Changes in v2: - reformat environment change to fit in 80 cols
include/configs/mx28evk.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index 8b89b25..ac9522f 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -292,11 +292,9 @@ "console_mainline=ttyAMA0\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \ - "mmcroot=/dev/mmcblk0p3 rw\0" \ - "mmcrootfstype=ext3 rootwait\0" \ - "mmcargs=setenv bootargs console=${console_mainline},${baudrate} " \ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ + "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \ + "mmcargs=setenv bootargs console=${console_mainline},${baudrate} " + "root=${mmcroot}\0" \ "loadbootscript=" \ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ "bootscript=echo Running bootscript from mmc ...; " \
I still get errors running checkpatch, for example:
WARNING: line over 80 characters #554: FILE: include/configs/mx53loco.h:162: + "if run ${get_cmd} ${ftd_addr} ${ftd_file}; then " \
WARNING: line over 80 characters #560: FILE: include/configs/mx53loco.h:168: + "echo ERROR: Cannot load the DT, aborting...; " \
WARNING: line over 80 characters #617: FILE: include/configs/mx6qsabrelite.h:177: + "if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}; then " \
Can you fix it and resubmit, please ? I will then apply the patchset.
It does seem too ugly to keep splitting those lines.
The problem here is the use of tags to indent the string.
I'd like to ask if we can relax this rule for the environments as it will make it confusing to read when looking at the code for no profit (in my point of view).
Replied in 5/6, where the issues are popping up from.
- -- Tom

Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- Changes in v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try'
include/configs/mx28evk.h | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index ac9522f..f2254b7 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" \ @@ -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} = yes; then " \ + "if fatload mmc ${mmcdev}:${mmcpart} ${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...; " \ + "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...; " \ + "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 v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try'
include/configs/mx53loco.h | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h index 996396b..4b80781 100644 --- a/include/configs/mx53loco.h +++ b/include/configs/mx53loco.h @@ -119,6 +119,10 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "script=boot.scr\0" \ "uimage=uImage\0" \ + "ftd_file=imx53-qsb.dtb\0" \ + "ftd_addr=0x71000000\0" \ + "boot_fdt=try\0" \ + "ip_dyn=yes\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \ "mmcroot=/dev/mmcblk0p3 rw rootwait\0" \ @@ -130,13 +134,43 @@ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ - "bootm\0" \ + "if test ${boot_fdt} = yes; then " \ + "if fatload mmc ${mmcdev}:${mmcpart} ${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...; " \ + "fi;\0" \ + "fi;\0" \ + "else " \ + "bootm; " \ + "fi;\0" \ "netargs=setenv bootargs console=ttymxc0,${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...; " \ + "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 v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try'
include/configs/mx6qsabrelite.h | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/include/configs/mx6qsabrelite.h b/include/configs/mx6qsabrelite.h index ee86f9b..7ca12d9 100644 --- a/include/configs/mx6qsabrelite.h +++ b/include/configs/mx6qsabrelite.h @@ -157,6 +157,10 @@ "console=ttymxc1\0" \ "fdt_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \ + "ftd_file=imx6q-sabrelite.dtb\0" \ + "ftd_addr=0x11000000\0" \ + "boot_fdt=try\0" \ + "ip_dyn=yes\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \ "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \ @@ -169,13 +173,43 @@ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ - "bootm\0" \ + "if test ${boot_fdt} = yes; then " \ + "if fatload mmc ${mmcdev}:${mmcpart} ${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...; " \ + "fi;\0" \ + "fi;\0" \ + "else " \ + "bootm; " \ + "fi;\0" \ "netargs=setenv bootargs console=${console},${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...; " \ + "fi;\0" \ + "fi;\0" \ + "else " \ + "bootm; " \ + "fi;\0"
#define CONFIG_BOOTCOMMAND \ "mmc dev ${mmcdev};" \

On Fri, Dec 28, 2012 at 05:17:05PM -0200, Otavio Salvador wrote:
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
Changes in v2:
- Allow use of dynamic/static ip
- Allow force use, or not, of fdt
- Change 'auto' to 'try'
[snip]
@@ -169,13 +173,43 @@ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \
"bootm\0" \
"if test ${boot_fdt} = yes; then " \
"if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}; then " \
How about adding loadfdtfile after 'loaduimage' above?
"bootm ${loadaddr} - ${ftd_addr}; " \
"else " \
"if test ${boot_fdt} = try; then " \
"bootm; " \
"else " \
"echo ERROR: Cannot load the DT, aborting...; " \
Strings must not be broken, so this is fine. But, you aren't really aborting. If you had a loop of "try mmcboot. Fail? Try netboot" it would continue. So the error message should perhaps just be about cannot load DT from mmc?

On Mon, Jan 7, 2013 at 12:04 PM, Tom Rini trini@ti.com wrote:
On Fri, Dec 28, 2012 at 05:17:05PM -0200, Otavio Salvador wrote:
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
Changes in v2:
- Allow use of dynamic/static ip
- Allow force use, or not, of fdt
- Change 'auto' to 'try'
[snip]
@@ -169,13 +173,43 @@ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \
"bootm\0" \
"if test ${boot_fdt} = yes; then " \
"if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}; then " \
How about adding loadfdtfile after 'loaduimage' above?
The command for netboot is different so we'd need to have two vars for it. I think it will be confusing ...
"bootm ${loadaddr} - ${ftd_addr}; " \
"else " \
"if test ${boot_fdt} = try; then " \
"bootm; " \
"else " \
"echo ERROR: Cannot load the DT, aborting...; " \
Strings must not be broken, so this is fine. But, you aren't really aborting. If you had a loop of "try mmcboot. Fail? Try netboot" it would continue. So the error message should perhaps just be about cannot load DT from mmc?
I don't have a strong opinion about this. I'd prefer to abort here so user really knows it failed. In case user wish it to not be fatal it can use the 'try' in boot_fdt.
How I could abort here?
-- 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

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 01/07/2013 09:17 AM, Otavio Salvador wrote:
On Mon, Jan 7, 2013 at 12:04 PM, Tom Rini trini@ti.com wrote:
On Fri, Dec 28, 2012 at 05:17:05PM -0200, Otavio Salvador wrote:
Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- Changes in v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try'
[snip]
@@ -169,13 +173,43 @@ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ - "bootm\0" \ + "if test ${boot_fdt} = yes; then " \ + "if fatload mmc ${mmcdev}:${mmcpart} ${ftd_addr} ${ftd_file}; then " \
How about adding loadfdtfile after 'loaduimage' above?
The command for netboot is different so we'd need to have two vars for it. I think it will be confusing ...
Yes, but there's already loaduimage that's fixed to FAT from MMC. So you're being consistent.
"bootm ${loadaddr} -
${ftd_addr}; " \ + "else " \ + "if test ${boot_fdt} = try; then " \ + "bootm; " \ + "else " \ + "echo ERROR: Cannot load the DT, aborting...; " \
Strings must not be broken, so this is fine. But, you aren't really aborting. If you had a loop of "try mmcboot. Fail? Try netboot" it would continue. So the error message should perhaps just be about cannot load DT from mmc?
I don't have a strong opinion about this. I'd prefer to abort here so user really knows it failed. In case user wish it to not be fatal it can use the 'try' in boot_fdt.
How I could abort here?
Without firing up a board, maybe tossing in break? Or setting a variable (abortcmd) that you could test for in other clauses to make sure it's obeyed and we break out?
- -- Tom

On Fri, Dec 28, 2012 at 05:17:05PM -0200, Otavio Salvador wrote:
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
Changes in v2:
- Allow use of dynamic/static ip
- Allow force use, or not, of fdt
- Change 'auto' to 'try'
[snip]
"if run ${get_cmd} ${ftd_addr} ${ftd_file}; then " \
Oh, and I forgot about this line. If you use space not tab at the end here, it's under 80 wide again.

On Mon, Jan 7, 2013 at 12:06 PM, Tom Rini trini@ti.com wrote:
On Fri, Dec 28, 2012 at 05:17:05PM -0200, Otavio Salvador wrote:
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
Changes in v2:
- Allow use of dynamic/static ip
- Allow force use, or not, of fdt
- Change 'auto' to 'try'
[snip]
"if run ${get_cmd} ${ftd_addr} ${ftd_file}; then " \
Oh, and I forgot about this line. If you use space not tab at the end here, it's under 80 wide again.
Well, yes the code style is using tabs so I preferred to not mix both. I am more keen to keep it as is if it is not a requirement to get it applied.
-- 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

Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- Changes in v2: - Allow use of dynamic/static ip - Allow force use, or not, of fdt - Change 'auto' to 'try'
include/configs/mx6qsabre_common.h | 39 +++++++++++++++++++++++++++++++++--- include/configs/mx6qsabreauto.h | 1 + include/configs/mx6qsabresd.h | 1 + 3 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/include/configs/mx6qsabre_common.h b/include/configs/mx6qsabre_common.h index 9a25480..f3a7854 100644 --- a/include/configs/mx6qsabre_common.h +++ b/include/configs/mx6qsabre_common.h @@ -84,6 +84,10 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "script=boot.scr\0" \ "uimage=uImage\0" \ + "ftd_file=" CONFIG_DEFAULT_FTD_FILE "\0" \ + "ftd_addr=0x11000000\0" \ + "boot_fdt=try\0" \ + "ip_dyn=yes\0" \ "console=" CONFIG_CONSOLE_DEV "\0" \ "fdt_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \ @@ -98,14 +102,43 @@ "source\0" \ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ "mmcboot=echo Booting from mmc ...; " \ - "run mmcargs; " \ - "bootm\0" \ + "if test ${boot_fdt} = yes; then " \ + "if fatload mmc ${mmcdev}:${mmcpart} ${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...; " \ + "fi;\0" \ + "fi;\0" \ + "else " \ + "bootm; " \ + "fi;\0" \ "netargs=setenv bootargs console=${console},${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...; " \ + "fi;\0" \ + "fi;\0" \ + "else " \ + "bootm; " \ + "fi;\0"
#define CONFIG_BOOTCOMMAND \ "mmc dev ${mmcdev};" \ diff --git a/include/configs/mx6qsabreauto.h b/include/configs/mx6qsabreauto.h index 760f3ce..e255c27 100644 --- a/include/configs/mx6qsabreauto.h +++ b/include/configs/mx6qsabreauto.h @@ -15,6 +15,7 @@ #define CONFIG_MACH_TYPE 3529 #define CONFIG_MXC_UART_BASE UART4_BASE #define CONFIG_CONSOLE_DEV "ttymxc3" +#define CONFIG_DEFAULT_FTD_FILE "imx6q-sabreauto.dtb" #define CONFIG_MMCROOT "/dev/mmcblk0p2" #define PHYS_SDRAM_SIZE (2u * 1024 * 1024 * 1024)
diff --git a/include/configs/mx6qsabresd.h b/include/configs/mx6qsabresd.h index 771d129..b30dec0 100644 --- a/include/configs/mx6qsabresd.h +++ b/include/configs/mx6qsabresd.h @@ -21,6 +21,7 @@ #define CONFIG_MXC_UART_BASE UART1_BASE #define CONFIG_CONSOLE_DEV "ttymxc0" #define CONFIG_MMCROOT "/dev/mmcblk1p2" +#define CONFIG_DEFAULT_FTD_FILE "imx6q-sabresd.dtb" #define PHYS_SDRAM_SIZE (1u * 1024 * 1024 * 1024)
#include "mx6qsabre_common.h"
participants (3)
-
Otavio Salvador
-
Stefano Babic
-
Tom Rini