diff mbox

[U-Boot,v2] arm: imx: Switch Wandboard to use config_distro_bootcmd.h.

Message ID 1445975380-25550-1-git-send-email-vagrant@debian.org
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Commit Message

Vagrant Cascadian Oct. 27, 2015, 7:49 p.m. UTC
This allows for more flexible and standardized boot across multiple
platforms.

Remove redundant legacy boot environment.

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
---

Changes in v2:
- Remove redundant legacy boot environment.
Cc: Otavio Salvador <otavio@ossystems.com.br>

 include/configs/wandboard.h | 80 ++++++++++-----------------------------------
 1 file changed, 18 insertions(+), 62 deletions(-)

Comments

Fabio Estevam Oct. 27, 2015, 11:23 p.m. UTC | #1
Hi Vagrant,

On Tue, Oct 27, 2015 at 5:49 PM, Vagrant Cascadian <vagrant@debian.org> wrote:

> +#define BOOT_TARGET_DEVICES(func) \
> +       func(MMC, mmc, 0) \
> +       func(MMC, mmc, 1) \
> +       func(USB, usb, 0) \
> +       func(PXE, pxe, na) \
> +       func(DHCP, dhcp, na)


I never used config_distro_bootcmd, so let me ask you: is there a TFTP
variant for func() as well?

In the current script we can switch from TFTP/DHCP very easily.

Also, how can do we switch from booting the rootfs from mmc versus NFS mount?

Regards,

Fabio Estevam
Vagrant Cascadian Oct. 28, 2015, 3:59 a.m. UTC | #2
On 2015-10-27, Fabio Estevam wrote:
> On Tue, Oct 27, 2015 at 5:49 PM, Vagrant Cascadian <vagrant@debian.org> wrote:
>
>> +#define BOOT_TARGET_DEVICES(func) \
>> +       func(MMC, mmc, 0) \
>> +       func(MMC, mmc, 1) \
>> +       func(USB, usb, 0) \
>> +       func(PXE, pxe, na) \
>> +       func(DHCP, dhcp, na)
>
>
> I never used config_distro_bootcmd, so let me ask you: is there a TFTP
> variant for func() as well?

Both PXE and DHCP download an extlinux-style config (or boot script) via
TFTP, which then decides what kernel, initrd, dtb, etc. to load. Other
boot methods work similarly, loading from local media.


> In the current script we can switch from TFTP/DHCP very easily.

You can override the default boot order by changing the boot_targets variable.


> Also, how can do we switch from booting the rootfs from mmc versus NFS mount?

That would be defined in the extlinux-style config or boot script.


So, it doesn't exactly replicate the prior functionality, though it
provides similar methods.

This is why I originally proposed to make it fallback to the old
behavior, then you could set boot_targets to empty and still have the
old style booting; but opinions may differ on all this. :)

Mostly, I'm seeking to standardize on a common configuration for as many
boards as we can in Debian (and ideally in upstream u-boot, to minimize
long-term maintenance), so that various supported boards at least behave
similarly by default.

A lot of goals and functionality is documented reasonably well in
doc/README.distro.


live well,
  vagrant
Otavio Salvador Oct. 28, 2015, 11:17 a.m. UTC | #3
On Wed, Oct 28, 2015 at 1:59 AM, Vagrant Cascadian <vagrant@debian.org> wrote:
> On 2015-10-27, Fabio Estevam wrote:
>> On Tue, Oct 27, 2015 at 5:49 PM, Vagrant Cascadian <vagrant@debian.org> wrote:
>>
>>> +#define BOOT_TARGET_DEVICES(func) \
>>> +       func(MMC, mmc, 0) \
>>> +       func(MMC, mmc, 1) \
>>> +       func(USB, usb, 0) \
>>> +       func(PXE, pxe, na) \
>>> +       func(DHCP, dhcp, na)
>>
>>
>> I never used config_distro_bootcmd, so let me ask you: is there a TFTP
>> variant for func() as well?
>
> Both PXE and DHCP download an extlinux-style config (or boot script) via
> TFTP, which then decides what kernel, initrd, dtb, etc. to load. Other
> boot methods work similarly, loading from local media.
>
>
>> In the current script we can switch from TFTP/DHCP very easily.
>
> You can override the default boot order by changing the boot_targets variable.
>
>
>> Also, how can do we switch from booting the rootfs from mmc versus NFS mount?
>
> That would be defined in the extlinux-style config or boot script.
>
>
> So, it doesn't exactly replicate the prior functionality, though it
> provides similar methods.
>
> This is why I originally proposed to make it fallback to the old
> behavior, then you could set boot_targets to empty and still have the
> old style booting; but opinions may differ on all this. :)
>
> Mostly, I'm seeking to standardize on a common configuration for as many
> boards as we can in Debian (and ideally in upstream u-boot, to minimize
> long-term maintenance), so that various supported boards at least behave
> similarly by default.
>
> A lot of goals and functionality is documented reasonably well in
> doc/README.distro.

Agreed and I think for community and reference boards the distro
environment provides some benefits as standardization and flexibility.
Fabio Estevam Oct. 29, 2015, 3:27 p.m. UTC | #4
On Wed, Oct 28, 2015 at 1:59 AM, Vagrant Cascadian <vagrant@debian.org> wrote:

> This is why I originally proposed to make it fallback to the old
> behavior, then you could set boot_targets to empty and still have the
> old style booting; but opinions may differ on all this. :)

Making it fallback to the old behavior would be a nice transition IMHO.

Otavio, what do you think?
Otavio Salvador Oct. 29, 2015, 3:54 p.m. UTC | #5
On Thu, Oct 29, 2015 at 1:27 PM, Fabio Estevam <festevam@gmail.com> wrote:
> On Wed, Oct 28, 2015 at 1:59 AM, Vagrant Cascadian <vagrant@debian.org> wrote:
>
>> This is why I originally proposed to make it fallback to the old
>> behavior, then you could set boot_targets to empty and still have the
>> old style booting; but opinions may differ on all this. :)
>
> Making it fallback to the old behavior would be a nice transition IMHO.
>
> Otavio, what do you think?

Yes and no; to be honest, the Yocto Project does not support the old
behavior but we should.

I think we ought to convert and work to properly support it, the
fallback should not be supported.
Karsten Merker Oct. 29, 2015, 6:27 p.m. UTC | #6
On Tue, Oct 27, 2015 at 12:49:40PM -0700, Vagrant Cascadian wrote:

[switch Wandboard to use config_distro_bootcmd.h]
> This allows for more flexible and standardized boot across multiple
> platforms.
> 
> Remove redundant legacy boot environment.
> 
> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
> ---
> 
> Changes in v2:
> - Remove redundant legacy boot environment.
> Cc: Otavio Salvador <otavio@ossystems.com.br>
> 
>  include/configs/wandboard.h | 80 ++++++++++-----------------------------------
>  1 file changed, 18 insertions(+), 62 deletions(-)
> 
> diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
> index 6e8aec2..b87ca77 100644
> --- a/include/configs/wandboard.h
> +++ b/include/configs/wandboard.h
> @@ -88,19 +88,15 @@
>  
>  #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
>  #define CONFIG_EXTRA_ENV_SETTINGS \
> -	"script=boot.scr\0" \
> -	"image=zImage\0" \
>  	"console=ttymxc0\0" \

Hello,

if the legacy environment gets removed anyway, I would like to propose
changing the console variable to "console=ttymxc0,115200" to bring it
in line with the other boards using distro_bootcmd.

Regards,
Karsten
Otavio Salvador Oct. 29, 2015, 6:36 p.m. UTC | #7
On Thu, Oct 29, 2015 at 4:27 PM, Karsten Merker <merker@debian.org> wrote:
> if the legacy environment gets removed anyway, I would like to propose
> changing the console variable to "console=ttymxc0,115200" to bring it
> in line with the other boards using distro_bootcmd.

I am fine with this change.
Stefano Babic Nov. 12, 2015, 4:22 p.m. UTC | #8
On 29/10/2015 19:36, Otavio Salvador wrote:
> On Thu, Oct 29, 2015 at 4:27 PM, Karsten Merker <merker@debian.org> wrote:
>> if the legacy environment gets removed anyway, I would like to propose
>> changing the console variable to "console=ttymxc0,115200" to bring it
>> in line with the other boards using distro_bootcmd.
> 
> I am fine with this change.


ok - I'll fix it by applying.

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic
diff mbox

Patch

diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index 6e8aec2..b87ca77 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -88,19 +88,15 @@ 
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 #define CONFIG_EXTRA_ENV_SETTINGS \
-	"script=boot.scr\0" \
-	"image=zImage\0" \
 	"console=ttymxc0\0" \
 	"splashpos=m,m\0" \
 	"fdtfile=undefined\0" \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
+	"fdt_addr_r=0x18000000\0" \
 	"fdt_addr=0x18000000\0" \
-	"boot_fdt=try\0" \
 	"ip_dyn=yes\0" \
 	"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
-	"mmcpart=1\0" \
-	"mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
 	"update_sd_firmware_filename=u-boot.imx\0" \
 	"update_sd_firmware=" \
 		"if test ${ip_dyn} = yes; then " \
@@ -115,8 +111,6 @@ 
 				"mmc write ${loadaddr} 0x2 ${fw_sz}; " \
 			"fi; "	\
 		"fi\0" \
-	"mmcargs=setenv bootargs console=${console},${baudrate} " \
-		"root=${mmcroot}; run videoargs\0" \
 	"videoargs=" \
 		"setenv nextcon 0; " \
 		"if hdmidet; then " \
@@ -143,51 +137,6 @@ 
 			"echo '- no FWBADAPT-7WVGA-LCD-F07A-0102 display';" \
 		"fi; " \
 		"setenv bootargs ${bootargs} ${fbmem}\0" \
-	"loadbootscript=" \
-		"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
-	"bootscript=echo Running bootscript from mmc ...; " \
-		"source\0" \
-	"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
-	"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdtfile}\0" \
-	"mmcboot=echo Booting from mmc ...; " \
-		"run mmcargs; " \
-		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
-			"if run loadfdt; then " \
-				"bootz ${loadaddr} - ${fdt_addr}; " \
-			"else " \
-				"if test ${boot_fdt} = try; then " \
-					"bootz; " \
-				"else " \
-					"echo WARN: Cannot load the DT; " \
-				"fi; " \
-			"fi; " \
-		"else " \
-			"bootz; " \
-		"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; " \
-		"if test ${ip_dyn} = yes; then " \
-			"setenv get_cmd dhcp; " \
-		"else " \
-			"setenv get_cmd tftp; " \
-		"fi; " \
-		"${get_cmd} ${image}; " \
-		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
-			"if ${get_cmd} ${fdt_addr} ${fdtfile}; then " \
-				"bootz ${loadaddr} - ${fdt_addr}; " \
-			"else " \
-				"if test ${boot_fdt} = try; then " \
-					"bootz; " \
-				"else " \
-					"echo WARN: Cannot load the DT; " \
-				"fi; " \
-			"fi; " \
-		"else " \
-			"bootz; " \
-		"fi;\0" \
 	"findfdt="\
 		"if test $board_name = C1 && test $board_rev = MX6Q ; then " \
 			"setenv fdtfile imx6q-wandboard.dtb; fi; " \
@@ -199,19 +148,26 @@ 
 			"setenv fdtfile imx6dl-wandboard-revb1.dtb; fi; " \
 		"if test $fdtfile = undefined; then " \
 			"echo WARNING: Could not determine dtb to use; fi; \0" \
+	"kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+	"pxe_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+	"ramdisk_addr_r=0x13000000\0" \
+	"ramdiskaddr=0x13000000\0" \
+	"scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \
+	BOOTENV
+
+#define BOOT_TARGET_DEVICES(func) \
+	func(MMC, mmc, 0) \
+	func(MMC, mmc, 1) \
+	func(USB, usb, 0) \
+	func(PXE, pxe, na) \
+	func(DHCP, dhcp, na)
 
 #define CONFIG_BOOTCOMMAND \
 	   "run findfdt; " \
-	   "mmc dev ${mmcdev}; if mmc rescan; then " \
-		   "if run loadbootscript; then " \
-			   "run bootscript; " \
-		   "else " \
-			   "if run loadimage; then " \
-				   "run mmcboot; " \
-			   "else run netboot; " \
-			   "fi; " \
-		   "fi; " \
-	   "else run netboot; fi"
+	   "run distro_bootcmd"
+
+#include <config_distro_defaults.h>
+#include <config_distro_bootcmd.h>
 
 /* Physical Memory Map */
 #define CONFIG_NR_DRAM_BANKS		1