* [U-Boot] [PATCH 7/7 v4] 8360, kmeter1: added bootcount feature.
@ 2009-02-24 10:30 Heiko Schocher
2009-03-06 0:49 ` Kim Phillips
0 siblings, 1 reply; 2+ messages in thread
From: Heiko Schocher @ 2009-02-24 10:30 UTC (permalink / raw)
To: u-boot
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>
---
cpu/mpc83xx/cpu.c | 34 ++++++++++++++++++++++++++++++++++
cpu/mpc83xx/fdt.c | 18 ++++++++++++++++++
2 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c
index 9e0a05d..876f5c7 100644
--- a/cpu/mpc83xx/cpu.c
+++ b/cpu/mpc83xx/cpu.c
@@ -35,6 +35,10 @@
#include <tsec.h>
#include <netdev.h>
#include <fsl_esdhc.h>
+#ifdef CONFIG_BOOTCOUNT_LIMIT
+#include <asm/immap_qe.h>
+#include <asm/io.h>
+#endif
DECLARE_GLOBAL_DATA_PTR;
@@ -399,3 +403,33 @@ int cpu_mmc_init(bd_t *bis)
return 0;
#endif
}
+
+#ifdef CONFIG_BOOTCOUNT_LIMIT
+
+#if !defined(CONFIG_MPC8360)
+#error "CONFIG_BOOTCOUNT_LIMIT only for MPC8360 implemented"
+#endif
+
+#if !defined(CONFIG_BOOTCOUNT_ADDR)
+#define CONFIG_BOOTCOUNT_ADDR (0x110000 + QE_MURAM_SIZE - 2 * sizeof(unsigned long))
+#endif
+
+#include <asm/io.h>
+
+void bootcount_store (ulong a)
+{
+ void *reg = (void *)(CONFIG_SYS_IMMR + CONFIG_BOOTCOUNT_ADDR);
+ out_be32 (reg, a);
+ out_be32 (reg + 4, BOOTCOUNT_MAGIC);
+}
+
+ulong bootcount_load (void)
+{
+ void *reg = (void *)(CONFIG_SYS_IMMR + CONFIG_BOOTCOUNT_ADDR);
+
+ if (in_be32 (reg + 4) != BOOTCOUNT_MAGIC)
+ return 0;
+ else
+ return in_be32 (reg);
+}
+#endif /* CONFIG_BOOTCOUNT_LIMIT */
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
}
--
1.6.0.6
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH 7/7 v4] 8360, kmeter1: added bootcount feature.
2009-02-24 10:30 [U-Boot] [PATCH 7/7 v4] 8360, kmeter1: added bootcount feature Heiko Schocher
@ 2009-03-06 0:49 ` Kim Phillips
0 siblings, 0 replies; 2+ messages in thread
From: Kim Phillips @ 2009-03-06 0:49 UTC (permalink / raw)
To: u-boot
On Tue, 24 Feb 2009 11:30:51 +0100
Heiko Schocher <hs@denx.de> wrote:
> 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>
> ---
applied patches 1-7.
Thanks Heiko,
Kim
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-03-06 0:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-24 10:30 [U-Boot] [PATCH 7/7 v4] 8360, kmeter1: added bootcount feature Heiko Schocher
2009-03-06 0:49 ` Kim Phillips
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox