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:	Remove unused CONFIG_SYS_MEMTEST_START/END
When:	Release v2013.10

Why:	As the 'mtest' command is no longer default, a number of platforms
	have not opted to turn the command back on and thus provide unused
	defines (which are likely to be propogated to new platforms from
	copy/paste).  Remove these defines when unused.

Who:	Tom Rini <trini@ti.com>

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

What:	Remove CONFIG_SYS_ENABLE_PADS_ALL and CONFIG_SYS_CLOCKS_ENABLE_ALL
When:	Release v2013.07

Why:	When set these options enable "all" of the pads and clocks found
	on OMAP4/5 platforms, so that the Linux Kernel does not have to.
	It has been agreed that this goes against the U-Boot design
	philosophy and since f3f98bb0 we have not enabled more than is
	used in U-Boot.  The kernel has been updating drivers to enable
	rather than assume pads/clocks have been enabled already.  Our
	expectation is that by v2013.07 a suitable kernel shall exist that
	does not need these options set for a reasonable I/O set to function.

Who:	Tom Rini <trini@ti.com> and Sricharan R <r.sricharan@ti.com>

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

What:	Users of the legacy miiphy_* code
When:	undetermined

Why:	We now have a PHY library, which allows everyone to share PHY
	drivers. All new drivers should use this infrastructure, and
	all old drivers should get converted to use it.

Who:	Andy Fleming <afleming@freescale.com> and driver maintainers

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

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
