diff mbox

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

Message ID 1427505883-31529-1-git-send-email-vagrant@debian.org
State Changes Requested
Delegated to: Stefano Babic
Headers show

Commit Message

Vagrant Cascadian March 28, 2015, 1:24 a.m. UTC
This allows for more flexible and standardized boot across multiple
platforms. Remove most redundant legacy boot environment.

Cc: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
---

 include/configs/wandboard.h | 139 ++++++--------------------------------------
 1 file changed, 17 insertions(+), 122 deletions(-)

Comments

Karsten Merker March 28, 2015, 1:15 p.m. UTC | #1
On Fri, Mar 27, 2015 at 06:24:43PM -0700, Vagrant Cascadian wrote:

> This allows for more flexible and standardized boot across multiple
> platforms. Remove most redundant legacy boot environment.
> 
> Cc: Otavio Salvador <otavio@ossystems.com.br>
> Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
> ---
> 
>  include/configs/wandboard.h | 139 ++++++--------------------------------------
>  1 file changed, 17 insertions(+), 122 deletions(-)
> 
> diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
[...]
>  #define CONFIG_EXTRA_ENV_SETTINGS \
> -	"script=boot.scr\0" \
> -	"image=zImage\0" \
>  	"console=ttymxc0\0" \

Hello,

regarding the boot environment standardization there is still the
open topic of standardizing the console variable format for
serial consoles - most platforms include the console baudrate in
the console variable (e.g. "console=ttyS0,115200") while some
others, in particular the i.MX6 platforms, do not. This means
that distributions like Debian currently need to add special-case
handling for i.MX6-based platforms in their boot scripts which
goes against the idea of having one generic boot script for all
platforms that use config_distro_bootcmd.h.

It would be nice if the i.MX6 platforms could - while adopting
config_distro_bootcmd.h and thereby changing their default
environment to a large extend - also change their console
variable from console=ttymxc0 to console=ttymxc0,115200.

Regards,
Karsten
Tom Rini March 29, 2015, 1:05 p.m. UTC | #2
On Sat, Mar 28, 2015 at 02:15:38PM +0100, Karsten Merker wrote:
> On Fri, Mar 27, 2015 at 06:24:43PM -0700, Vagrant Cascadian wrote:
> 
> > This allows for more flexible and standardized boot across multiple
> > platforms. Remove most redundant legacy boot environment.
> > 
> > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
> > ---
> > 
> >  include/configs/wandboard.h | 139 ++++++--------------------------------------
> >  1 file changed, 17 insertions(+), 122 deletions(-)
> > 
> > diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
> [...]
> >  #define CONFIG_EXTRA_ENV_SETTINGS \
> > -	"script=boot.scr\0" \
> > -	"image=zImage\0" \
> >  	"console=ttymxc0\0" \
> 
> Hello,
> 
> regarding the boot environment standardization there is still the
> open topic of standardizing the console variable format for
> serial consoles - most platforms include the console baudrate in
> the console variable (e.g. "console=ttyS0,115200") while some
> others, in particular the i.MX6 platforms, do not. This means
> that distributions like Debian currently need to add special-case
> handling for i.MX6-based platforms in their boot scripts which
> goes against the idea of having one generic boot script for all
> platforms that use config_distro_bootcmd.h.
> 
> It would be nice if the i.MX6 platforms could - while adopting
> config_distro_bootcmd.h and thereby changing their default
> environment to a large extend - also change their console
> variable from console=ttymxc0 to console=ttymxc0,115200.

Yes please.  And Karsten can you do a patch that updates the README to
note that as an expectation?  Thanks!
XoD May 19, 2015, 3:23 p.m. UTC | #3
Any new of this ? it can be merged ?

I have tested and successfully boot a fedora on a Wandboard Quad with this.

The improvement of the console variable management can be done with an
other patch ?

Thank you for working on this.

--
XoD

2015-03-29 15:05 GMT+02:00 Tom Rini <trini@konsulko.com>:

> On Sat, Mar 28, 2015 at 02:15:38PM +0100, Karsten Merker wrote:
> > On Fri, Mar 27, 2015 at 06:24:43PM -0700, Vagrant Cascadian wrote:
> >
> > > This allows for more flexible and standardized boot across multiple
> > > platforms. Remove most redundant legacy boot environment.
> > >
> > > Cc: Otavio Salvador <otavio@ossystems.com.br>
> > > Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
> > > ---
> > >
> > >  include/configs/wandboard.h | 139
> ++++++--------------------------------------
> > >  1 file changed, 17 insertions(+), 122 deletions(-)
> > >
> > > diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
> > [...]
> > >  #define CONFIG_EXTRA_ENV_SETTINGS \
> > > -   "script=boot.scr\0" \
> > > -   "image=zImage\0" \
> > >     "console=ttymxc0\0" \
> >
> > Hello,
> >
> > regarding the boot environment standardization there is still the
> > open topic of standardizing the console variable format for
> > serial consoles - most platforms include the console baudrate in
> > the console variable (e.g. "console=ttyS0,115200") while some
> > others, in particular the i.MX6 platforms, do not. This means
> > that distributions like Debian currently need to add special-case
> > handling for i.MX6-based platforms in their boot scripts which
> > goes against the idea of having one generic boot script for all
> > platforms that use config_distro_bootcmd.h.
> >
> > It would be nice if the i.MX6 platforms could - while adopting
> > config_distro_bootcmd.h and thereby changing their default
> > environment to a large extend - also change their console
> > variable from console=ttymxc0 to console=ttymxc0,115200.
>
> Yes please.  And Karsten can you do a patch that updates the README to
> note that as an expectation?  Thanks!
>
> --
> Tom
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
>
Vagrant Cascadian May 19, 2015, 8:42 p.m. UTC | #4
On 2015-05-19, XoD wrote:
> Any new of this ? it can be merged ?

I think my submitted patch was a bit too invasive by removing most of
the environment, and have reworked the patch to leave much of the
environment:

  https://anonscm.debian.org/cgit/collab-maint/u-boot.git/tree/debian/patches/wandboard/config_distro_bootcmd.patch?h=experimental-2015.04

I haven't yet reworked it for resubmission, but I'd be happy to do so.

I was hoping to see the wandboard SPL support added before reworking, as
that will require a few minor changes to the config_distro_bootcmd patch
as well:

  https://patchwork.ozlabs.org/patch/471092/


> I have tested and successfully boot a fedora on a Wandboard Quad with this.
>
> The improvement of the console variable management can be done with an
> other patch ?

It would be nice if switching to config_distro_bootcmd.h was not
dependent on sorting out the console variable switch... though I'd be
fine with switching the default console to include the baudrate as well.


> Thank you for working on this.

Thanks for testing!

live well,
  vagrant


> 2015-03-29 15:05 GMT+02:00 Tom Rini <trini@konsulko.com>:
>
>> On Sat, Mar 28, 2015 at 02:15:38PM +0100, Karsten Merker wrote:
>> > On Fri, Mar 27, 2015 at 06:24:43PM -0700, Vagrant Cascadian wrote:
>> >
>> > > This allows for more flexible and standardized boot across multiple
>> > > platforms. Remove most redundant legacy boot environment.
>> > >
>> > > Cc: Otavio Salvador <otavio@ossystems.com.br>
>> > > Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
>> > > ---
>> > >
>> > >  include/configs/wandboard.h | 139
>> ++++++--------------------------------------
>> > >  1 file changed, 17 insertions(+), 122 deletions(-)
>> > >
>> > > diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
>> > [...]
>> > >  #define CONFIG_EXTRA_ENV_SETTINGS \
>> > > -   "script=boot.scr\0" \
>> > > -   "image=zImage\0" \
>> > >     "console=ttymxc0\0" \
>> >
>> > Hello,
>> >
>> > regarding the boot environment standardization there is still the
>> > open topic of standardizing the console variable format for
>> > serial consoles - most platforms include the console baudrate in
>> > the console variable (e.g. "console=ttyS0,115200") while some
>> > others, in particular the i.MX6 platforms, do not. This means
>> > that distributions like Debian currently need to add special-case
>> > handling for i.MX6-based platforms in their boot scripts which
>> > goes against the idea of having one generic boot script for all
>> > platforms that use config_distro_bootcmd.h.
>> >
>> > It would be nice if the i.MX6 platforms could - while adopting
>> > config_distro_bootcmd.h and thereby changing their default
>> > environment to a large extend - also change their console
>> > variable from console=ttymxc0 to console=ttymxc0,115200.
>>
>> Yes please.  And Karsten can you do a patch that updates the README to
>> note that as an expectation?  Thanks!
>>
>> --
>> Tom
XoD May 20, 2015, 7:36 a.m. UTC | #5
Ok, thank you for your response.

I waiting SPL for wandboard too.
I like to add Wandboard support in OpenELEC (and Lakka) with SPL (to not
have separate img for Wandboard dual and Wandboard quad.)

XoD

2015-05-19 22:42 GMT+02:00 Vagrant Cascadian <vagrant@debian.org>:

> On 2015-05-19, XoD wrote:
> > Any new of this ? it can be merged ?
>
> I think my submitted patch was a bit too invasive by removing most of
> the environment, and have reworked the patch to leave much of the
> environment:
>
>
> https://anonscm.debian.org/cgit/collab-maint/u-boot.git/tree/debian/patches/wandboard/config_distro_bootcmd.patch?h=experimental-2015.04
>
> I haven't yet reworked it for resubmission, but I'd be happy to do so.
>
> I was hoping to see the wandboard SPL support added before reworking, as
> that will require a few minor changes to the config_distro_bootcmd patch
> as well:
>
>   https://patchwork.ozlabs.org/patch/471092/
>
>
> > I have tested and successfully boot a fedora on a Wandboard Quad with
> this.
> >
> > The improvement of the console variable management can be done with an
> > other patch ?
>
> It would be nice if switching to config_distro_bootcmd.h was not
> dependent on sorting out the console variable switch... though I'd be
> fine with switching the default console to include the baudrate as well.
>
>
> > Thank you for working on this.
>
> Thanks for testing!
>
> live well,
>   vagrant
>
>
> > 2015-03-29 15:05 GMT+02:00 Tom Rini <trini@konsulko.com>:
> >
> >> On Sat, Mar 28, 2015 at 02:15:38PM +0100, Karsten Merker wrote:
> >> > On Fri, Mar 27, 2015 at 06:24:43PM -0700, Vagrant Cascadian wrote:
> >> >
> >> > > This allows for more flexible and standardized boot across multiple
> >> > > platforms. Remove most redundant legacy boot environment.
> >> > >
> >> > > Cc: Otavio Salvador <otavio@ossystems.com.br>
> >> > > Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
> >> > > ---
> >> > >
> >> > >  include/configs/wandboard.h | 139
> >> ++++++--------------------------------------
> >> > >  1 file changed, 17 insertions(+), 122 deletions(-)
> >> > >
> >> > > diff --git a/include/configs/wandboard.h
> b/include/configs/wandboard.h
> >> > [...]
> >> > >  #define CONFIG_EXTRA_ENV_SETTINGS \
> >> > > -   "script=boot.scr\0" \
> >> > > -   "image=zImage\0" \
> >> > >     "console=ttymxc0\0" \
> >> >
> >> > Hello,
> >> >
> >> > regarding the boot environment standardization there is still the
> >> > open topic of standardizing the console variable format for
> >> > serial consoles - most platforms include the console baudrate in
> >> > the console variable (e.g. "console=ttyS0,115200") while some
> >> > others, in particular the i.MX6 platforms, do not. This means
> >> > that distributions like Debian currently need to add special-case
> >> > handling for i.MX6-based platforms in their boot scripts which
> >> > goes against the idea of having one generic boot script for all
> >> > platforms that use config_distro_bootcmd.h.
> >> >
> >> > It would be nice if the i.MX6 platforms could - while adopting
> >> > config_distro_bootcmd.h and thereby changing their default
> >> > environment to a large extend - also change their console
> >> > variable from console=ttymxc0 to console=ttymxc0,115200.
> >>
> >> Yes please.  And Karsten can you do a patch that updates the README to
> >> note that as an expectation?  Thanks!
> >>
> >> --
> >> Tom
>
XoD June 26, 2015, 11:54 a.m. UTC | #6
Hello,
I have now tested upstream uboot-imx with OpenELEC with SPL suppport for
wandbard.

It's work great without your patch. but with your path, OpenELEC don't boot.

The default uboot config assume than kernel file name is zImage.
But OpenELEC use a filename KERNEL.
The actual version of OpenELEC use a uEnv.txt file with this line :
zImage=/KERNEL
bootfile=/KERNEL
But this no longer work with your patch.

How I can configure uboot to open a file named KERNEL instead of zImage (at
build time or at runtime) ?

Thank you.

2015-05-20 9:36 GMT+02:00 XoD <xoddark@gmail.com>:

> Ok, thank you for your response.
>
> I waiting SPL for wandboard too.
> I like to add Wandboard support in OpenELEC (and Lakka) with SPL (to not
> have separate img for Wandboard dual and Wandboard quad.)
>
> XoD
>
> 2015-05-19 22:42 GMT+02:00 Vagrant Cascadian <vagrant@debian.org>:
>
>> On 2015-05-19, XoD wrote:
>> > Any new of this ? it can be merged ?
>>
>> I think my submitted patch was a bit too invasive by removing most of
>> the environment, and have reworked the patch to leave much of the
>> environment:
>>
>>
>> https://anonscm.debian.org/cgit/collab-maint/u-boot.git/tree/debian/patches/wandboard/config_distro_bootcmd.patch?h=experimental-2015.04
>>
>> I haven't yet reworked it for resubmission, but I'd be happy to do so.
>>
>> I was hoping to see the wandboard SPL support added before reworking, as
>> that will require a few minor changes to the config_distro_bootcmd patch
>> as well:
>>
>>   https://patchwork.ozlabs.org/patch/471092/
>>
>>
>> > I have tested and successfully boot a fedora on a Wandboard Quad with
>> this.
>> >
>> > The improvement of the console variable management can be done with an
>> > other patch ?
>>
>> It would be nice if switching to config_distro_bootcmd.h was not
>> dependent on sorting out the console variable switch... though I'd be
>> fine with switching the default console to include the baudrate as well.
>>
>>
>> > Thank you for working on this.
>>
>> Thanks for testing!
>>
>> live well,
>>   vagrant
>>
>>
>> > 2015-03-29 15:05 GMT+02:00 Tom Rini <trini@konsulko.com>:
>> >
>> >> On Sat, Mar 28, 2015 at 02:15:38PM +0100, Karsten Merker wrote:
>> >> > On Fri, Mar 27, 2015 at 06:24:43PM -0700, Vagrant Cascadian wrote:
>> >> >
>> >> > > This allows for more flexible and standardized boot across multiple
>> >> > > platforms. Remove most redundant legacy boot environment.
>> >> > >
>> >> > > Cc: Otavio Salvador <otavio@ossystems.com.br>
>> >> > > Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
>> >> > > ---
>> >> > >
>> >> > >  include/configs/wandboard.h | 139
>> >> ++++++--------------------------------------
>> >> > >  1 file changed, 17 insertions(+), 122 deletions(-)
>> >> > >
>> >> > > diff --git a/include/configs/wandboard.h
>> b/include/configs/wandboard.h
>> >> > [...]
>> >> > >  #define CONFIG_EXTRA_ENV_SETTINGS \
>> >> > > -   "script=boot.scr\0" \
>> >> > > -   "image=zImage\0" \
>> >> > >     "console=ttymxc0\0" \
>> >> >
>> >> > Hello,
>> >> >
>> >> > regarding the boot environment standardization there is still the
>> >> > open topic of standardizing the console variable format for
>> >> > serial consoles - most platforms include the console baudrate in
>> >> > the console variable (e.g. "console=ttyS0,115200") while some
>> >> > others, in particular the i.MX6 platforms, do not. This means
>> >> > that distributions like Debian currently need to add special-case
>> >> > handling for i.MX6-based platforms in their boot scripts which
>> >> > goes against the idea of having one generic boot script for all
>> >> > platforms that use config_distro_bootcmd.h.
>> >> >
>> >> > It would be nice if the i.MX6 platforms could - while adopting
>> >> > config_distro_bootcmd.h and thereby changing their default
>> >> > environment to a large extend - also change their console
>> >> > variable from console=ttymxc0 to console=ttymxc0,115200.
>> >>
>> >> Yes please.  And Karsten can you do a patch that updates the README to
>> >> note that as an expectation?  Thanks!
>> >>
>> >> --
>> >> Tom
>>
>
>
Nikolay Dimitrov June 26, 2015, 5:44 p.m. UTC | #7
Hi XoD,

On 06/26/2015 02:54 PM, XoD wrote:
> Hello,
> I have now tested upstream uboot-imx with OpenELEC with SPL suppport for
> wandbard.
>
> It's work great without your patch. but with your path, OpenELEC don't boot.
>
> The default uboot config assume than kernel file name is zImage.
> But OpenELEC use a filename KERNEL.
> The actual version of OpenELEC use a uEnv.txt file with this line :
> zImage=/KERNEL
> bootfile=/KERNEL
> But this no longer work with your patch.
>
> How I can configure uboot to open a file named KERNEL instead of zImage (at
> build time or at runtime) ?

config_distro_bootcmd uses a cool feature called "extlinux", which
allows you to define a boot configuration without hacking in U-Boot
source/configuration. Here's how it works:

1. U-Boot scans a list of boot devices (mmc, usb, pxe, dhcp)
2. When it find a bootable local storage (mmc, usb) it looks for the
first bootable partition, or just first one if no partition was marked
as bootable
3. U-Boot looks for extlinux.conf in "/" and "/boot". This file
contains the actual boot configuration (kernel image, bootargs, etc)
that will be executed on boot. Here's how a simple extlinux.conf looks
like:

-----> cut <-----
default linux

label linux
kernel /boot/zImage
devicetree /boot/mydevicetree.dtb
append console=ttymxc1,115200 root=/dev/mmcblk0p1 rw
-----> cut <-----

4. U-Boot boots the "default" configuration.

Hope this helps.

Regards,
Nikolay
XoD June 26, 2015, 7:15 p.m. UTC | #8
Ok, great, I use a little the file extlinux with Fedora on Wandboard.

Thank you for your detailed answer.

Le vendredi 26 juin 2015, Nikolay Dimitrov <picmaster@mail.bg> a écrit :

> Hi XoD,
>
> On 06/26/2015 02:54 PM, XoD wrote:
>
>> Hello,
>> I have now tested upstream uboot-imx with OpenELEC with SPL suppport for
>> wandbard.
>>
>> It's work great without your patch. but with your path, OpenELEC don't
>> boot.
>>
>> The default uboot config assume than kernel file name is zImage.
>> But OpenELEC use a filename KERNEL.
>> The actual version of OpenELEC use a uEnv.txt file with this line :
>> zImage=/KERNEL
>> bootfile=/KERNEL
>> But this no longer work with your patch.
>>
>> How I can configure uboot to open a file named KERNEL instead of zImage
>> (at
>> build time or at runtime) ?
>>
>
> config_distro_bootcmd uses a cool feature called "extlinux", which
> allows you to define a boot configuration without hacking in U-Boot
> source/configuration. Here's how it works:
>
> 1. U-Boot scans a list of boot devices (mmc, usb, pxe, dhcp)
> 2. When it find a bootable local storage (mmc, usb) it looks for the
> first bootable partition, or just first one if no partition was marked
> as bootable
> 3. U-Boot looks for extlinux.conf in "/" and "/boot". This file
> contains the actual boot configuration (kernel image, bootargs, etc)
> that will be executed on boot. Here's how a simple extlinux.conf looks
> like:
>
> -----> cut <-----
> default linux
>
> label linux
> kernel /boot/zImage
> devicetree /boot/mydevicetree.dtb
> append console=ttymxc1,115200 root=/dev/mmcblk0p1 rw
> -----> cut <-----
>
> 4. U-Boot boots the "default" configuration.
>
> Hope this helps.
>
> Regards,
> Nikolay
>
diff mbox

Patch

diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index b586803..b4cb9db 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -51,8 +51,6 @@ 
 #define CONFIG_CMD_BMODE
 #define CONFIG_CMD_SETEXPR
 
-#define CONFIG_BOOTDELAY		5
-
 #define CONFIG_SYS_MEMTEST_START	0x10000000
 #define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START + 500 * SZ_1M)
 #define CONFIG_LOADADDR			0x12000000
@@ -74,9 +72,6 @@ 
 #define CONFIG_CMD_MMC
 #define CONFIG_GENERIC_MMC
 #define CONFIG_BOUNCE_BUFFER
-#define CONFIG_CMD_EXT2
-#define CONFIG_CMD_FAT
-#define CONFIG_DOS_PARTITION
 
 /* USB Configs */
 #define CONFIG_CMD_USB
@@ -131,131 +126,34 @@ 
 #endif
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
-	"script=boot.scr\0" \
-	"image=zImage\0" \
 	"console=ttymxc0\0" \
-	"splashpos=m,m\0" \
+	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
+	"fdt_addr_r=0x18000000\0"     \
 	"fdt_high=0xffffffff\0" \
 	"initrd_high=0xffffffff\0" \
-	"fdt_file=" CONFIG_DEFAULT_FDT_FILE "\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 " \
-			"setenv get_cmd dhcp; " \
-		"else " \
-			"setenv get_cmd tftp; " \
-		"fi; " \
-		"if mmc dev ${mmcdev}; then "	\
-			"if ${get_cmd} ${update_sd_firmware_filename}; then " \
-				"setexpr fw_sz ${filesize} / 0x200; " \
-				"setexpr fw_sz ${fw_sz} + 1; "	\
-				"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 " \
-			"setenv bootargs ${bootargs} " \
-				"video=mxcfb${nextcon}:dev=hdmi,1280x720M@60," \
-					"if=RGB24; " \
-			"setenv fbmen fbmem=28M; " \
-			"setexpr nextcon ${nextcon} + 1; " \
-		"else " \
-			"echo - no HDMI monitor;" \
-		"fi; " \
-		"i2c dev 1; " \
-		"if i2c probe 0x10; then " \
-			"setenv bootargs ${bootargs} " \
-				"video=mxcfb${nextcon}:dev=lcd,800x480@60," \
-					"if=RGB666,bpp=32; " \
-			"if test 0 -eq ${nextcon}; then " \
-				"setenv fbmem fbmem=10M; " \
-			"else " \
-				"setenv fbmem ${fbmem},10M; " \
-			"fi; " \
-			"setexpr nextcon ${nextcon} + 1; " \
-		"else " \
-			"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} ${fdt_file}\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} ${fdt_file}; 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"
-
-#define CONFIG_BOOTCOMMAND \
-	   "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"
+	"kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+	"pxe_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+	"ramdisk_addr_r=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)
+
+#include <config_distro_defaults.h>
+#include <config_distro_bootcmd.h>
 
 /* Miscellaneous configurable options */
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_SYS_HUSH_PARSER
-#define CONFIG_AUTO_COMPLETE
 #define CONFIG_SYS_CBSIZE		256
 #define CONFIG_SYS_MAXARGS	       16
 #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
 
 #define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
 
-#define CONFIG_CMDLINE_EDITING
-
 /* Physical Memory Map */
 #define CONFIG_NR_DRAM_BANKS		1
 #define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR
@@ -278,9 +176,6 @@ 
 #define CONFIG_ENV_OFFSET		(6 * 64 * 1024)
 #define CONFIG_SYS_MMC_ENV_DEV		0
 
-#define CONFIG_OF_LIBFDT
-#define CONFIG_CMD_BOOTZ
-
 #ifndef CONFIG_SYS_DCACHE_OFF
 #define CONFIG_CMD_CACHE
 #endif