summaryrefslogtreecommitdiff
path: root/cpu/mpc5xxx
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2006-11-28 17:55:49 +0100
committerStefan Roese <sr@denx.de>2006-11-28 17:55:49 +0100
commite59581c56ab5d6e0207ddac3b2c1d55cb36ec706 (patch)
treeaa24a15300f3c94e06beab022d33a7155b1ff2b9 /cpu/mpc5xxx
parente732faec95a83cb468b4850ae807c8301dde8f6a (diff)
[PATCH] Enable the IceCube/lite5200 variants to pass a device tree to Linux.
This patch adds the code and configuration necessary to boot with an arch/powerpc Linux kernel. Signed-off-by: Grant Likely <grant.likely@gmail.com> Acked-by: Jon Loeliger <jdl@freescale.com>
Diffstat (limited to 'cpu/mpc5xxx')
-rw-r--r--cpu/mpc5xxx/cpu.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/cpu/mpc5xxx/cpu.c b/cpu/mpc5xxx/cpu.c
index 6b6f8282c..20e6735de 100644
--- a/cpu/mpc5xxx/cpu.c
+++ b/cpu/mpc5xxx/cpu.c
@@ -31,6 +31,10 @@
#include <mpc5xxx.h>
#include <asm/processor.h>
+#if defined(CONFIG_OF_FLAT_TREE)
+#include <ft_build.h>
+#endif
+
DECLARE_GLOBAL_DATA_PTR;
int checkcpu (void)
@@ -102,3 +106,27 @@ unsigned long get_tbclk (void)
}
/* ------------------------------------------------------------------------- */
+
+#ifdef CONFIG_OF_FLAT_TREE
+void
+ft_cpu_setup(void *blob, bd_t *bd)
+{
+ u32 *p;
+ ulong clock;
+ int len;
+
+ clock = bd->bi_busfreq;
+ p = ft_get_prop(blob, "/cpus/" OF_CPU "/bus-frequency", &len);
+ if (p != NULL)
+ *p = cpu_to_be32(clock);
+
+ p = ft_get_prop(blob, "/" OF_SOC "/bus-frequency", &len);
+ if (p != NULL)
+ *p = cpu_to_be32(clock);
+
+ p = ft_get_prop(blob, "/" OF_SOC "/ethernet@3000/mac-address", &len);
+ if (p != NULL)
+ memcpy(p, bd->bi_enetaddr, 6);
+
+}
+#endif