summaryrefslogtreecommitdiff
path: root/cpu/mpc83xx/fdt.c
diff options
context:
space:
mode:
authorHeiko Schocher <hs@denx.de>2009-02-24 10:30:51 (GMT)
committerKim Phillips <kim.phillips@freescale.com>2009-03-06 00:21:30 (GMT)
commitf70fd13e2fe4cf58e251271c27f9c06e141d7f9a (patch)
tree8d4b4ee4e33de7eaac42443ed27a48ab4fa31f3f /cpu/mpc83xx/fdt.c
parent1e7ed2565031e01abc18c713030a0a9829c07684 (diff)
downloadu-boot-f70fd13e2fe4cf58e251271c27f9c06e141d7f9a.tar.xz
8360, kmeter1: added bootcount feature.
add CONFIG_BOOTCOUNT_LIMIT feature for 8360 CPU. The bootcounter uses 8 bytes from the muram, because no other memory was found on this CPU for the bootcount feature. So we must correct the muram size in DTS before booting Linux. This feature is actual only implemented for MPC8360, because not all 83xx CPU have qe, and therefore no muram, which this feature uses. Signed-off-by: Heiko Schocher <hs@denx.de> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Diffstat (limited to 'cpu/mpc83xx/fdt.c')
-rw-r--r--cpu/mpc83xx/fdt.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/cpu/mpc83xx/fdt.c b/cpu/mpc83xx/fdt.c
index f890775..4cc9047 100644
--- a/cpu/mpc83xx/fdt.c
+++ b/cpu/mpc83xx/fdt.c
@@ -32,6 +32,20 @@ extern void ft_qe_setup(void *blob);
DECLARE_GLOBAL_DATA_PTR;
+#if defined(CONFIG_BOOTCOUNT_LIMIT) && defined(CONFIG_MPC8360)
+#include <asm/immap_qe.h>
+
+void fdt_fixup_muram (void *blob)
+{
+ ulong data[2];
+
+ data[0] = 0;
+ data[1] = QE_MURAM_SIZE - 2 * sizeof(unsigned long);
+ do_fixup_by_path(blob, "/qe/muram/data-only", "reg",
+ data, sizeof (data), 0);
+}
+#endif
+
void ft_cpu_setup(void *blob, bd_t *bd)
{
immap_t *immr = (immap_t *)CONFIG_SYS_IMMR;
@@ -83,4 +97,8 @@ void ft_cpu_setup(void *blob, bd_t *bd)
#endif
fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);
+
+#if defined(CONFIG_BOOTCOUNT_LIMIT)
+ fdt_fixup_muram (blob);
+#endif
}