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
	CONFIG_SYS_8xx_CPUCLK_MIN        - minimum allowed CPU clock
	CONFIG_SYS_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.
