[U-Boot] [PATCH 1/1] m28evk board config

From 24b6381162b4569ab86b481b8714d81877231f22 Mon Sep 17 00:00:00 2001 From: Lothar Rubusch lothar@denx.de Date: Fri, 6 Sep 2013 15:01:39 +0200 Subject: [PATCH] m28evk board specific configurations for setup with ext boot partition and separate ext rootfs
Signed-off-by: Lothar Rubusch lothar@denx.de --- include/configs/m28evk.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-)
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index eba8759..b65456e 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -150,15 +150,25 @@ #endif
/* Booting Linux */ -#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTDELAY 5 #define CONFIG_BOOTFILE "uImage" #define CONFIG_BOOTARGS "console=ttyAMA0,115200n8 " -#define CONFIG_BOOTCOMMAND "run bootcmd_net" +#define CONFIG_BOOTCOMMAND "run mmc_mmc" #define CONFIG_LOADADDR 0x42000000 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
/* Extra Environment */ #define CONFIG_EXTRA_ENV_SETTINGS \ + "fdtfile=imx28-m28evk.dtb\0" \ + "consdev=ttyAMA0\0" \ + "baudrate=115200\0" \ + "bootdev=/dev/mmcblk0p2\0" \ + "rootdev=/dev/mmcblk0p3\0" \ + "netdev=eth0\0" \ + "hostname=m28evk\0" \ + "rootpath=/opt/eldk-5.3/armv5te/rootfs-qte-sdk\0" \ + "kernel_addr_r=0x42000000\0" \ + "fdt_addr_r=0x41000000\0" \ "update_nand_full_filename=u-boot.nand\0" \ "update_nand_firmware_filename=u-boot.sb\0" \ "update_sd_firmware_filename=u-boot.sd\0" \ @@ -196,7 +206,69 @@ "setexpr fw_sz ${fw_sz} + 1 ; " \ "mmc write ${loadaddr} 0x800 ${fw_sz} ; " \ "fi ; " \ - "fi\0" + "fi\0" \ + "addcons=setenv bootargs ${bootargs} console=${consdev},${baudrate}\0" \ + "addip=" \ + "setenv bootargs ${bootargs} " \ + "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:" \ + "${hostname}:${netdev}:off\0" \ + "addmisc=setenv bootargs ${bootargs} ${miscargs}\0" \ + "adddfltmtd=" \ + "if test "x${mtdparts}" == "x" ; " \ + "then mtdparts default ; " \ + "fi\0" \ + "addmtd=" \ + "run adddfltmtd ; " \ + "setenv bootargs ${bootargs} ${mtdparts}\0" \ + "addargs=run addcons addmtd addmisc\0" \ + "kernel_mmcload=" \ + "mmc rescan ; " \ + "ext2load mmc 0:2 ${kernel_addr_r} ${bootfile}\0" \ + "kernel_nandload=nand read ${kernel_addr_r} kernel\0" \ + "kernel_netload=tftp ${kernel_addr_r} ${bootfile}\0" \ + "fdt_mmcload=" \ + "mmc rescan ; " \ + "ext2load mmc 0:2 ${fdt_addr_r} ${fdtfile}\0" \ + "fdt_nandload=nand read ${fdt_addr_r} fdt\0" \ + "fdt_netload=tftp ${fdt_addr_r} ${fdtfile}\0" \ + "miscargs=nohlt panic=1\0" \ + "mmcargs=setenv bootargs root=${rootdev} rw rootwait\0" \ + "nandargs=" \ + "setenv bootargs ubi.mtd=6 root=ubi0:rootfs " \ + "rootfstype=ubifs\0" \ + "nfsargs=" \ + "setenv bootargs root=/dev/nfs rw " \ + "nfsroot=${serverip}:${rootpath},v3,tcp\0" \ + "mmcload=run kernel_mmcload fdt_mmcload\0" \ + "nandload=run kernel_nandload fdt_nandload\0" \ + "netload=run kernel_netload fdt_netload\0" \ + "mmc_nfs=" \ + "run mmcload nfsargs addip addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "mmc_mmc=" \ + "run mmcload mmcargs addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "mmc_nand=" \ + "run mmcload nandargs addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "nand_mmc=" \ + "run nandload mmcargs addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "nand_nfs=" \ + "run nandload nfsargs addip addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "nand_nand=" \ + "run nandload nandargs addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "net_mmc=" \ + "run netload mmcargs addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "net_nfs=" \ + "run netload nfsargs addip addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \ + "net_nand=" \ + "run netload nandargs addargs ; " \ + "bootm ${kernel_addr_r} - ${fdt_addr_r}\0"
/* The rest of the configuration is shared */ #include <configs/mxs.h>

On Fri, Sep 6, 2013 at 3:10 PM, lothar@denx.de wrote:
From 24b6381162b4569ab86b481b8714d81877231f22 Mon Sep 17 00:00:00 2001 From: Lothar Rubusch lothar@denx.de Date: Fri, 6 Sep 2013 15:01:39 +0200 Subject: [PATCH] m28evk board specific configurations for setup with ext boot partition and separate ext rootfs
Quite a long subject and no commit log.
Signed-off-by: Lothar Rubusch lothar@denx.de
include/configs/m28evk.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-)
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index eba8759..b65456e 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -150,15 +150,25 @@ #endif
/* Booting Linux */ -#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTDELAY 5
This is a separate change or at least it should be mentioned in the commit log.

Dear lothar@denx.de,
From 24b6381162b4569ab86b481b8714d81877231f22 Mon Sep 17 00:00:00 2001 From: Lothar Rubusch lothar@denx.de Date: Fri, 6 Sep 2013 15:01:39 +0200 Subject: [PATCH] m28evk board specific configurations for setup with ext boot partition and separate ext rootfs
Signed-off-by: Lothar Rubusch lothar@denx.de
include/configs/m28evk.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-)
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index eba8759..b65456e 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -150,15 +150,25 @@ #endif
/* Booting Linux */ -#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTDELAY 5 #define CONFIG_BOOTFILE "uImage" #define CONFIG_BOOTARGS "console=ttyAMA0,115200n8 " -#define CONFIG_BOOTCOMMAND "run bootcmd_net" +#define CONFIG_BOOTCOMMAND "run mmc_mmc" #define CONFIG_LOADADDR 0x42000000 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
These two options above do not seem right, they certainly can make use of some unification. But that's for another patch.
/* Extra Environment */ #define CONFIG_EXTRA_ENV_SETTINGS \
- "fdtfile=imx28-m28evk.dtb\0" \
- "consdev=ttyAMA0\0" \
- "baudrate=115200\0" \
- "bootdev=/dev/mmcblk0p2\0" \
- "rootdev=/dev/mmcblk0p3\0" \
- "netdev=eth0\0" \
- "hostname=m28evk\0" \
- "rootpath=/opt/eldk-5.3/armv5te/rootfs-qte-sdk\0" \
Use 5.4 here ?
- "kernel_addr_r=0x42000000\0" \
- "fdt_addr_r=0x41000000\0" \ "update_nand_full_filename=u-boot.nand\0" \ "update_nand_firmware_filename=u-boot.sb\0" \ "update_sd_firmware_filename=u-boot.sd\0" \
@@ -196,7 +206,69 @@ "setexpr fw_sz ${fw_sz} + 1 ; " \ "mmc write ${loadaddr} 0x800 ${fw_sz} ; " \ "fi ; " \
"fi\0"
"fi\0" \
- "addcons=setenv bootargs ${bootargs} console=${consdev},${baudrate}\0"
\
- "addip=" \
"setenv bootargs ${bootargs} " \
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:" \
"${hostname}:${netdev}:off\0" \
- "addmisc=setenv bootargs ${bootargs} ${miscargs}\0" \
- "adddfltmtd=" \
"if test \"x${mtdparts}\" == \"x\" ; " \
"then mtdparts default ; " \
"fi\0" \
I suspect the addmtd should be called unconditionally for every boot type (mmc_nfs...net_nand).
[...]
Best regards, Marek Vasut

Hello Mailing List - Hello Fabio and Marex Thank you very much for your helpfull hints!! Just some words of mine on your comments.
Am 2013-09-09 16:37, schrieb Marek Vasut:
Dear lothar@denx.de,
From 24b6381162b4569ab86b481b8714d81877231f22 Mon Sep 17 00:00:00 2001 From: Lothar Rubusch lothar@denx.de Date: Fri, 6 Sep 2013 15:01:39 +0200 Subject: [PATCH] m28evk board specific configurations for setup with ext boot partition and separate ext rootfs
Signed-off-by: Lothar Rubusch lothar@denx.de
include/configs/m28evk.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-)
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index eba8759..b65456e 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -150,15 +150,25 @@ #endif
/* Booting Linux */ -#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTDELAY 5 #define CONFIG_BOOTFILE "uImage" #define CONFIG_BOOTARGS "console=ttyAMA0,115200n8 " -#define CONFIG_BOOTCOMMAND "run bootcmd_net" +#define CONFIG_BOOTCOMMAND "run mmc_mmc" #define CONFIG_LOADADDR 0x42000000 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
These two options above do not seem right, they certainly can make use of some unification. But that's for another patch.
As Fabio Estevan already mentioned, the BOOTDELAY is definitely an unnecessary change which I'll leave out. Fabio further complained about a missing commit history. I can see the point, but the configurations were elaborated directly through the uboot environment, and thus commited altogether. They were necessary, since the before include/configs/m28evk.h was definitely not working well with the m28evk board. Testing it, and with a huge help of Marek, I came to present this solution, and will soon post a v2 of it.
As Marek explained me personally, his comment here was related to the duplicate setting of the LOADADDR. My patch does not address this issue.
/* Extra Environment */ #define CONFIG_EXTRA_ENV_SETTINGS \
- "fdtfile=imx28-m28evk.dtb\0" \
- "consdev=ttyAMA0\0" \
- "baudrate=115200\0" \
- "bootdev=/dev/mmcblk0p2\0" \
- "rootdev=/dev/mmcblk0p3\0" \
- "netdev=eth0\0" \
- "hostname=m28evk\0" \
- "rootpath=/opt/eldk-5.3/armv5te/rootfs-qte-sdk\0" \
Use 5.4 here ?
Definitely!
- "kernel_addr_r=0x42000000\0" \
- "fdt_addr_r=0x41000000\0" \ "update_nand_full_filename=u-boot.nand\0" \ "update_nand_firmware_filename=u-boot.sb\0" \ "update_sd_firmware_filename=u-boot.sd\0" \
@@ -196,7 +206,69 @@ "setexpr fw_sz ${fw_sz} + 1 ; " \ "mmc write ${loadaddr} 0x800 ${fw_sz} ; " \ "fi ; " \
"fi\0"
"fi\0" \
- "addcons=setenv bootargs ${bootargs}
console=${consdev},${baudrate}\0" \
- "addip=" \
"setenv bootargs ${bootargs} " \
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:" \
"${hostname}:${netdev}:off\0" \
- "addmisc=setenv bootargs ${bootargs} ${miscargs}\0" \
- "adddfltmtd=" \
"if test \"x${mtdparts}\" == \"x\" ; " \
"then mtdparts default ; " \
"fi\0" \
I suspect the addmtd should be called unconditionally for every boot type (mmc_nfs...net_nand).
I can't currently see her which conditional case under which addmtd is running. I'll double check it for a v2. Thank you.
BR, Lothar Rubusch

Hi Lothar,
On 06/09/2013 20:10, lothar@denx.de wrote:
From 24b6381162b4569ab86b481b8714d81877231f22 Mon Sep 17 00:00:00 2001 From: Lothar Rubusch lothar@denx.de Date: Fri, 6 Sep 2013 15:01:39 +0200 Subject: [PATCH] m28evk board specific configurations for setup with ext boot partition and separate ext rootfs
Generally I think it is better you have a smaller commit subject and you increase the commit log with all changes.
However:
Signed-off-by: Lothar Rubusch lothar@denx.de
include/configs/m28evk.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 3 deletions(-)
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index eba8759..b65456e 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -150,15 +150,25 @@ #endif
/* Booting Linux */ -#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTDELAY 5 #define CONFIG_BOOTFILE "uImage" #define CONFIG_BOOTARGS "console=ttyAMA0,115200n8 " -#define CONFIG_BOOTCOMMAND "run bootcmd_net" +#define CONFIG_BOOTCOMMAND "run mmc_mmc" #define CONFIG_LOADADDR 0x42000000 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
/* Extra Environment */ #define CONFIG_EXTRA_ENV_SETTINGS \
- "fdtfile=imx28-m28evk.dtb\0" \
- "consdev=ttyAMA0\0" \
- "baudrate=115200\0" \
- "bootdev=/dev/mmcblk0p2\0" \
- "rootdev=/dev/mmcblk0p3\0" \
- "netdev=eth0\0" \
- "hostname=m28evk\0" \
- "rootpath=/opt/eldk-5.3/armv5te/rootfs-qte-sdk\0" \
I know very well why, but this is against the logic that the delivered environment is quite generic for all situation. Setting rootpath is for me not different as setting ip address, that is it is a local configuration and should be not linked with the code.
- "kernel_addr_r=0x42000000\0" \
- "fdt_addr_r=0x41000000\0" \ "update_nand_full_filename=u-boot.nand\0" \ "update_nand_firmware_filename=u-boot.sb\0" \ "update_sd_firmware_filename=u-boot.sd\0" \
@@ -196,7 +206,69 @@ "setexpr fw_sz ${fw_sz} + 1 ; " \ "mmc write ${loadaddr} 0x800 ${fw_sz} ; " \ "fi ; " \
"fi\0"
"fi\0" \
- "addcons=setenv bootargs ${bootargs}
console=${consdev},${baudrate}\0" \
- "addip=" \
"setenv bootargs ${bootargs} " \
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:" \
"${hostname}:${netdev}:off\0" \
- "addmisc=setenv bootargs ${bootargs} ${miscargs}\0" \
- "adddfltmtd=" \
"if test \"x${mtdparts}\" == \"x\" ; " \
"then mtdparts default ; " \
"fi\0" \
- "addmtd=" \
"run adddfltmtd ; " \
"setenv bootargs ${bootargs} ${mtdparts}\0" \
- "addargs=run addcons addmtd addmisc\0" \
- "kernel_mmcload=" \
"mmc rescan ; " \
"ext2load mmc 0:2 ${kernel_addr_r} ${bootfile}\0" \
- "kernel_nandload=nand read ${kernel_addr_r} kernel\0" \
- "kernel_netload=tftp ${kernel_addr_r} ${bootfile}\0" \
- "fdt_mmcload=" \
"mmc rescan ; " \
"ext2load mmc 0:2 ${fdt_addr_r} ${fdtfile}\0" \
- "fdt_nandload=nand read ${fdt_addr_r} fdt\0" \
- "fdt_netload=tftp ${fdt_addr_r} ${fdtfile}\0" \
- "miscargs=nohlt panic=1\0" \
- "mmcargs=setenv bootargs root=${rootdev} rw rootwait\0" \
- "nandargs=" \
"setenv bootargs ubi.mtd=6 root=ubi0:rootfs " \
"rootfstype=ubifs\0" \
- "nfsargs=" \
"setenv bootargs root=/dev/nfs rw " \
"nfsroot=${serverip}:${rootpath},v3,tcp\0" \
- "mmcload=run kernel_mmcload fdt_mmcload\0" \
- "nandload=run kernel_nandload fdt_nandload\0" \
- "netload=run kernel_netload fdt_netload\0" \
- "mmc_nfs=" \
"run mmcload nfsargs addip addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "mmc_mmc=" \
"run mmcload mmcargs addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "mmc_nand=" \
"run mmcload nandargs addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "nand_mmc=" \
"run nandload mmcargs addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "nand_nfs=" \
"run nandload nfsargs addip addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "nand_nand=" \
"run nandload nandargs addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "net_mmc=" \
"run netload mmcargs addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "net_nfs=" \
"run netload nfsargs addip addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0" \
- "net_nand=" \
"run netload nandargs addargs ; " \
"bootm ${kernel_addr_r} - ${fdt_addr_r}\0"
/* The rest of the configuration is shared */ #include <configs/mxs.h>
Even if it is smaller, I guess we fight with the same issue of Dennis' patch:
http://patchwork.ozlabs.org/patch/261969/
that I rejected. We are moving from a a dynamic environment to a fully static environment, decided at compile time. If you read the whole thread, you can also see Wolfgang's comments about it. Generally, U-Boot is thought to be easy extendible with the environment, and each user can add his own environment on base of his needs.
However, in the last times I got al lot of changes to fix the environment - suitable for one use case. It is true, I merged most of them (shame on me !), but it seems to me that doing in this way becomes not maintainable.
In the discussion about Dennis's patch there are some proposals how to get a single image (we have plenty of tools in u-boot to get a ready to use image for the environment and to import it to set is as current one), and how to import / export the environment.
Maybe should we change the way we are adding the environment ? It should be better (*really* better) if we do not need to change the code when a variable is changed. We could maybe define a standard way (common command) to load the environment from the storage, and only this command can be put into CONFIG_EXTRA_ENV_SETTINGS. The whole environment itself will be put into a separate file(s), compiled as image and loaded when needed. The user could select which file must be loaded.
Best regards, Stefano Babic
participants (4)
-
Fabio Estevam
-
lothar@denx.de
-
Marek Vasut
-
Stefano Babic