[U-Boot] [PATCH V2] MPC8308: Fixup clocks in PCI Host configuration

Barry Grussling barry at grussling.com
Wed Jan 9 03:25:11 CET 2013


While trying to bring up a custom MPC8308 based board I found
that the clocking was wrong.  The comment in
include/configs/mpc8308_p1m.h led me to believe
setting HRCWH_PCI_HOST and HRCWH_PCI1_ARBITER_ENABLE in the
CONFIG_SYS_HRCW_HIGH should allow the system to work, but on
my newer version of the 8308 this is not working.  Setting
the HRCWH_PCI_HOST bit (which doesn't exist according to the manual)
doesn't latch, and as such the im->reset.rcwh & HRCWH_PCI_HOST test
in speed.c fails.  Since this board is running off the
CONFIG_83XX_CLKIN and is not a PCI client, I end up with 0xdeadbeef
and hosed clock values.

This patch allows for proper clocks on the 8308 as a workaround
for the lack of HRCWH_PCI_HOST support.

Signed-off-by: Barry Grussling <barry at grussling.com>

---
Changes since V1:
* Fix multi-line comment style
* Remove trailing whitespace
* Align comment
 - All per Kim Phillips recommendation

* Verified output of checkpatch.pl clean now that I know
about checkpatch.pl :-)

---
 arch/powerpc/cpu/mpc83xx/speed.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/powerpc/cpu/mpc83xx/speed.c b/arch/powerpc/cpu/mpc83xx/speed.c
index b8c05d1..8816d71 100644
--- a/arch/powerpc/cpu/mpc83xx/speed.c
+++ b/arch/powerpc/cpu/mpc83xx/speed.c
@@ -160,6 +160,12 @@ int get_clocks(void)
 	} else {
 #if defined(CONFIG_83XX_PCICLK)
 		pci_sync_in = CONFIG_83XX_PCICLK;
+#elif defined(CONFIG_83XX_CLKIN) && defined(CONFIG_MPC8308)
+		/*
+		 * 8308 doesn't have the HRCWH_PCI_HOST, but should
+		 * run off the CONFIG_83XX_CLKIN
+		 */
+		pci_sync_in = CONFIG_83XX_CLKIN / (1 + clkin_div);
 #else
 		pci_sync_in = 0xDEADBEEF;
 #endif
-- 
1.7.9.5



More information about the U-Boot mailing list