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:	CONFIG_NET_MULTI option
When:	Release 2009-11

Why:	U-boot currently implements two network driver APIs.  New drivers with
	the older-style implementation have not been accepted for a while, and
	this parallel system makes the code confusing and hard to augment.

	All existing in-tree boards will be converted to use CONFIG_NET_MULTI
	over the span of two releases (2009-07 and 2009-09).
	In the 2009-11 release, all code that is compiled when CONFIG_NET_MULTI
	is not set will be removed, and all references to CONFIG_NET_MULTI
	will be removed, effectively making it the only API.  This should
	provide ample time for out-of-tree users to adjust, and for tools on
	all architectures to be made to work with weak functions.

Who:	Ben Warren <biggerbadderben@gmail.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
