[U-Boot-Users] Patch to cpu/mpc8260/speed.c
KokHow Teh
KokHow.Teh at marconi.com
Thu Jun 16 08:46:21 CEST 2005
Hi;
I am using u-boot-1.1.2 and I am sending this minor patch to the
cpu/mpc8260/speed.c file in view of MPC8280EC document which lays down how
the PCIDF is calculated but not reflected correctly in the file.
Index: cpu/mpc8260/speed.c
===================================================================
RCS file: /usr/cvsroot/u-boot/cpu/mpc8260/speed.c,v
retrieving revision 1.2
diff -u -b -B -r1.2 speed.c
--- cpu/mpc8260/speed.c 28 Apr 2005 07:01:04 -0000 1.2
+++ cpu/mpc8260/speed.c 16 Jun 2005 04:35:12 -0000
@@ -202,11 +202,12 @@
volatile immap_t *immap = (immap_t *) CFG_IMMR;
ulong sccr, dfbrg;
- ulong scmr, corecnf, busdf, cpmdf, plldf, pllmf;
+ ulong scmr, corecnf, busdf, cpmdf, plldf, pllmf, pcidf;
corecnf_t *cp;
sccr = immap->im_clkrst.car_sccr;
dfbrg = (sccr & SCCR_DFBRG_MSK) >> SCCR_DFBRG_SHIFT;
+ pcidf = (sccr & SCCR_PCIDF_MSK) >> SCCR_PCIDF_SHIFT;
scmr = immap->im_clkrst.car_scmr;
corecnf = (scmr & SCMR_CORECNF_MSK) >> SCMR_CORECNF_SHIFT;
@@ -243,8 +244,8 @@
cp->vco_div, cp->freq_60x, cp->freq_core);
printf (" - dfbrg %ld, corecnf 0x%02lx, busdf %ld, cpmdf %ld, "
- "plldf %ld, pllmf %ld\n", dfbrg, corecnf, busdf, cpmdf, plldf,
- pllmf);
+ "plldf %ld, pllmf %ld, pcidf %ld\n", dfbrg, corecnf, busdf, cpmdf, plldf,
+ pllmf, pcidf);
printf (" - vco_out %10ld, scc_clk %10ld, brg_clk %10ld\n",
gd->vco_out, gd->scc_clk, gd->brg_clk);
@@ -253,10 +254,18 @@
gd->cpu_clk, gd->cpm_clk, gd->bus_clk);
if (sccr & SCCR_PCI_MODE) {
- uint pci_div;
+ uint pci_div, pcidf = (sccr & SCCR_PCIDF_MSK) >> SCCR_PCIDF_SHIFT;
- pci_div = ( (sccr & SCCR_PCI_MODCK) ? 2 : 1) *
- ( ( (sccr & SCCR_PCIDF_MSK) >> SCCR_PCIDF_SHIFT) + 1);
+ if (sccr & SCCR_PCI_MODCK) {
+ pci_div = 2;
+ if (pcidf == 9)
+ pci_div *= 5;
+ else if (pcidf == 0xB)
+ pci_div *= 6;
+ else
+ pci_div *= (pcidf + 1);
+ } else
+ pci_div = pcidf + 1;
printf (" - pci_clk %10ld\n", (gd->cpm_clk * 2) / pci_div);
}
Regards,
TEH
More information about the U-Boot
mailing list