Message ID | 1445975380-25550-1-git-send-email-vagrant@debian.org |
---|---|
State | Awaiting Upstream |
Delegated to: | Stefano Babic |
Headers | show |
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
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
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.
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?
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.
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
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.
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 --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
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(-)