[U-Boot] MPC8280 Clock configuration for U-boot

Jerry Van Baren gerald.vanbaren at ge.com
Thu Aug 6 22:25:59 CEST 2009


GurumurthyGowdar wrote:
> Dear all,
>               i have an issue with the clock configuration for MPC8280 for U-boot 1.3.1, 
> 
> the following is the message when u-boot booted.
> 
> U-Boot 1.3.1 (Jul 27 2009 - 17:27:10)
> 
> MPC8260 Reset Status: External Soft, External Hard
> 
> MPC8260 Clock Configuration
>  - Bus-to-Core Mult 3x, VCO Div 4, 60x Bus Freq  16-50 , Core Freq  50-150
>  - dfbrg 1, corecnf 0x10, busdf 4, cpmdf 1, plldf 0, pllmf 4, pcidf 3
>  - vco_out  500000000, scc_clk  125000000, brg_clk   31250000
>  - cpu_clk  300000000, cpm_clk  250000000, bus_clk  100000000
> 
> CPU:   MPC8260 (HiP7 Rev 14, Mask 1.0 1K49M) at 300 MHz

OK, your bus clock is 100MHz, your multiplier is 3x, and your corecnf is 
0x10.

[snip]

> in terms of hardware i have configured as per the clock configuration but if we see the 
> above message i have a doubt  regarding the 60x Bus Freq 16-50 --> but i have set 100 
> MHZ, Core Freq 50-150 , i have set for 300 MHZ by checking the MPC8280EC i have 
> configured the clock settings.

[snip]

grep says this is coming from cpu/mpc8260/speed.c.  The only entry that 
matches the power on print out is:
	{   _3x,  4, " 16-50 ", " 50-150" },	/* 0x10 */

The 0x10 matches your corecnf and this is where the printout comes from. 
  It also is *WRONG.*

You want the corecnf of 0x08, which is *ALSO* a 3x multiplier, but for 
the 100MHz/300MHz configuration that you are running.
	{   _3x,  2, " 33-100", "100-300" },	/* 0x08 */

See the MPC8260 (MPC8280) User's Manual chapter 10.

You should also verify that your XFC (external filter capacitor) the 
correct value (probably OK, but would cause issues).  When it comes to 
hardware folks, trust, but verify! ;-)

 From speed.c:

typedef struct {
	int b2c_mult;
	int vco_div;
	char *freq_60x;
	char *freq_core;
} corecnf_t;

/*
  * this table based on "Errata to MPC8260 PowerQUICC II User's Manual",
  * Rev. 1, 8/2000, page 10.
  */
corecnf_t corecnf_tab[] = {
	{ _1_5x,  4, " 33-100", " 33-100" },	/* 0x00 */
	{   _1x,  4, " 50-150", " 50-150" },	/* 0x01 */
	{   _1x,  8, " 25-75 ", " 25-75 " },	/* 0x02 */
	{  _byp, -1, "  ?-?  ", "  ?-?  " },	/* 0x03 */
	{   _2x,  2, " 50-150", "100-300" },	/* 0x04 */
	{   _2x,  4, " 25-75 ", " 50-150" },	/* 0x05 */
	{ _2_5x,  2, " 40-120", "100-240" },	/* 0x06 */
	{ _4_5x,  2, " 22-65 ", "100-300" },	/* 0x07 */
	{   _3x,  2, " 33-100", "100-300" },	/* 0x08 */ <---- GOOD
	{ _5_5x,  2, " 18-55 ", "100-300" },	/* 0x09 */
	{   _4x,  2, " 25-75 ", "100-300" },	/* 0x0A */
	{   _5x,  2, " 20-60 ", "100-300" },	/* 0x0B */
	{ _1_5x,  8, " 16-50 ", " 16-50 " },	/* 0x0C */
	{   _6x,  2, " 16-50 ", "100-300" },	/* 0x0D */
	{ _3_5x,  2, " 30-85 ", "100-300" },	/* 0x0E */
	{  _off, -1, "  ?-?  ", "  ?-?  " },	/* 0x0F */
	{   _3x,  4, " 16-50 ", " 50-150" },	/* 0x10 */ <---- BAD
	{ _2_5x,  4, " 20-60 ", " 50-120" },	/* 0x11 */
	{ _6_5x,  2, " 15-46 ", "100-300" },	/* 0x12 */
	{  _byp, -1, "  ?-?  ", "  ?-?  " },	/* 0x13 */
	{   _7x,  2, " 14-43 ", "100-300" },	/* 0x14 */
	{   _2x,  4, " 25-75 ", " 50-150" },	/* 0x15 */
	{ _7_5x,  2, " 13-40 ", "100-300" },	/* 0x16 */
	{ _4_5x,  2, " 22-65 ", "100-300" },	/* 0x17 */
	{  _unk, -1, "  ?-?  ", "  ?-?  " },	/* 0x18 */
	{ _5_5x,  2, " 18-55 ", "100-300" },	/* 0x19 */
	{   _4x,  2, " 25-75 ", "100-300" },	/* 0x1A */
	{   _5x,  2, " 20-60 ", "100-300" },	/* 0x1B */
	{   _8x,  2, " 12-38 ", "100-300" },	/* 0x1C */
	{   _6x,  2, " 16-50 ", "100-300" },	/* 0x1D */
	{ _3_5x,  2, " 30-85 ", "100-300" },	/* 0x1E */
	{  _off, -1, "  ?-?  ", "  ?-?  " },	/* 0x1F */
};

Good luck,
gvb


More information about the U-Boot mailing list