The current implementation allows the user to specify the desired CPU
clock value, in MHz, via an environment variable "cpuclk".

Four compile-time constants are used:

	CONFIG_8xx_OSCLK          - input quartz clock
	CFG_8xx_CPUCLK_MIN        - minimum allowed CPU clock
	CFG_8xx_CPUCLK_MAX        - maximum allowed CPU clock
	CONFIG_8xx_CPUCLK_DEFAULT - default CPU clock value

If the "cpuclk" environment variable value is within the CPUCLK_MIN /
CPUCLK_MAX limits, the specified value is used. Otherwise, the
default CPU clock value is set.

Please make sure you understand what you are doing, and understand
the restrictions of your hardware (board, processor). For example,
ethernet will stop working for CPU clock frequencies below 25 MHz.

Please note that the new clock-handling code is enabled if
CONFIG_8xx_CPUCLK_DEFAULT is defined. Since this mechanism supports
only MPC866 and newer CPUs, this constant MUST NOT be defined for
MPC823/850/860/862 series. The clock generation algorithm for older
chips is different and has not been implemented yet. If you need it,
your patch is welcome.
