The following is a list of files and features that are going to be
removed from the U-Boot source tree.  Every entry should contain what
exactly is going away, when it will be gone, why it is being removed,
and who is going to be doing the work.  When the feature is removed
from U-Boot, its corresponding entry should also be removed from this
file.

---------------------------

What:	"autoscr" command
When:	Release 2009-09

Why:	"autosrc" is an ugly and completely non-standard name.
        The "autoscr" command is deprecated and will be replaced by

        the "source" command as used by other shells such as bash.

        Starting with March 2009, both commands will be supported for
        a transition period of 6 months after which "autoscr" will be
        removed. During the transition period existing scripts and
        environment variable names remain untouched for maximum
        compatibiltiy; thse will be changed when support for the
        "autoscr" command get's finally dropped.

Who:	Peter Tyser <ptyser@xes-inc.com>

---------------------------

What:	GPL cleanup
When:	August 2009
Why:	Over time, a couple of files have sneaked in into the U-Boot
	source code that are either missing a valid GPL license
	header or that carry a license that is incompatible with the
	GPL.
	Such files shall be removed from the U-Boot source tree.
	See http://www.denx.de/wiki/pub/U-Boot/TaskGplCleanup/u-boot-1.1.2-files
	for an old and probably incomplete list of such files.

Who:	Wolfgang Denk <wd@denx.de> and board maintainers

---------------------------

What:	Individual I2C commands
When:	April 2009
Why:	Per the U-Boot README, individual I2C commands such as "imd", "imm",
	"imw", etc are deprecated.  The single "i2c" command which is
	currently enabled via CONFIG_I2C_CMD_TREE contains the same
	functionality as the individual I2C commands.  The individual
	I2C commands should be removed as well as any references to
	CONFIG_I2C_CMD_TREE.
Who:	Peter Tyser <ptyser@xes-inc.com>

---------------------------

What:	Legacy NAND code
When:	April 2009
Why:	Legacy NAND code is deprecated.  Similar functionality exists in
	more recent NAND code ported from the Linux kernel.
Who:	Scott Wood <scottwood@freescale.com>
