[U-Boot] [PATCH v4 1/2] mx51evk: Update environment in order to allow booting a dt kernel

From: Fabio Estevam fabio.estevam@freescale.com
Update the environment as done in other imx boards to allow easy switching between booting a non-dt kernel and a dt kernel.
Change CONFIG_LOADADDR to 0x92000000, so that we can have the:
- uImage at 0x92000000 - imx51-babbage.dtb at 0x91000000
,which are adequate locations in RAM to avoid overlapping.
Boot tested the following kernels:
- 2.6.35 from FSL (11.09 branch) - 3.9-rc7 non-dt - 3.9-rc7 dt
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- Changes since v3: - None. Just make it part of a series now Changes since v2: - Mention the LOADADDR change in the commit log Changes since v1: - Do not remove mmcrootfstype - Fix typo in Subject - Improve commit log by adding the tested booted kernels
include/configs/mx51evk.h | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-)
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h index cb3d938..4545a80 100644 --- a/include/configs/mx51evk.h +++ b/include/configs/mx51evk.h @@ -149,11 +149,15 @@
#define CONFIG_ETHPRIME "FEC0"
-#define CONFIG_LOADADDR 0x90800000 /* loadaddr env var */ +#define CONFIG_LOADADDR 0x92000000 /* loadaddr env var */
#define CONFIG_EXTRA_ENV_SETTINGS \ "script=boot.scr\0" \ "uimage=uImage\0" \ + "fdt_file=imx51-babbage.dtb\0" \ + "fdt_addr=0x91000000\0" \ + "boot_fdt=try\0" \ + "ip_dyn=yes\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \ "mmcroot=/dev/mmcblk0p3 rw\0" \ @@ -166,15 +170,47 @@ "bootscript=echo Running bootscript from mmc ...; " \ "source\0" \ "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ + "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ - "bootm\0" \ + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ + "if run loadfdt; then " \ + "bootm ${loadaddr} - ${fdt_addr}; " \ + "else " \ + "if test ${boot_fdt} = try; then " \ + "bootm; " \ + "else " \ + "echo WARN: Cannot load the DT; " \ + "fi; " \ + "fi; " \ + "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; " \ + "${get_cmd} ${uimage}; " \ + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ + "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ + "bootm ${loadaddr} - ${fdt_addr}; " \ + "else " \ + "if test ${boot_fdt} = try; then " \ + "bootm; " \ + "else " \ + "echo ERROR: Cannot load the DT; " \ + "exit; " \ + "fi; " \ + "fi; " \ + "else " \ + "bootm; " \ + "fi;\0"
#define CONFIG_BOOTCOMMAND \ "mmc dev ${mmcdev}; if mmc rescan; then " \

From: Fabio Estevam fabio.estevam@freescale.com
Currently mmcrootfstype is set to ext3 type.
It is better not to force it in the env vars, because users may prefer a different file system type, so let's get rid of 'mmcrootfstype'.
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- Changes since v3: - Newly introduced
include/configs/mx51evk.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h index 4545a80..0973a74 100644 --- a/include/configs/mx51evk.h +++ b/include/configs/mx51evk.h @@ -160,8 +160,7 @@ "ip_dyn=yes\0" \ "mmcdev=0\0" \ "mmcpart=2\0" \ - "mmcroot=/dev/mmcblk0p3 rw\0" \ - "mmcrootfstype=ext3 rootwait\0" \ + "mmcroot=/dev/mmcblk0p3 rootwait rw\0" \ "mmcargs=setenv bootargs console=ttymxc0,${baudrate} " \ "root=${mmcroot} " \ "rootfstype=${mmcrootfstype}\0" \

On Fri, Apr 19, 2013 at 2:43 PM, Fabio Estevam festevam@gmail.com wrote:
From: Fabio Estevam fabio.estevam@freescale.com
Currently mmcrootfstype is set to ext3 type.
It is better not to force it in the env vars, because users may prefer a different file system type, so let's get rid of 'mmcrootfstype'.
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
Acked-by: Otavio Salvador otavio@ossystems.com.br
-- 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 Fri, Apr 19, 2013 at 3:01 PM, Otavio Salvador otavio@ossystems.com.br wrote:
On Fri, Apr 19, 2013 at 2:43 PM, Fabio Estevam festevam@gmail.com wrote:
From: Fabio Estevam fabio.estevam@freescale.com
Currently mmcrootfstype is set to ext3 type.
It is better not to force it in the env vars, because users may prefer a different file system type, so let's get rid of 'mmcrootfstype'.
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
Acked-by: Otavio Salvador otavio@ossystems.com.br
- "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ + "root=${mmcroot}\0" \
Please do this in this patch as well ;-)
-- 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 Fri, Apr 19, 2013 at 2:43 PM, Fabio Estevam festevam@gmail.com wrote:
From: Fabio Estevam fabio.estevam@freescale.com
Update the environment as done in other imx boards to allow easy switching between booting a non-dt kernel and a dt kernel.
Change CONFIG_LOADADDR to 0x92000000, so that we can have the:
- uImage at 0x92000000
- imx51-babbage.dtb at 0x91000000
,which are adequate locations in RAM to avoid overlapping.
Boot tested the following kernels:
- 2.6.35 from FSL (11.09 branch)
- 3.9-rc7 non-dt
- 3.9-rc7 dt
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com
Acked-by: Otavio Salvador otavio@ossystems.com.br
-- 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
participants (2)
-
Fabio Estevam
-
Otavio Salvador