diff options
author | Wolfgang Denk <wd@denx.de> | 2009-03-09 00:41:48 +0100 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-03-09 00:41:48 +0100 |
commit | 014c595f12d4f7e14cb10188f856465b2d41718f (patch) | |
tree | 9130a01fbb5499975530a20a559dbaba9a1f2a89 /cpu/mpc83xx/cpu.c | |
parent | 9c2d63ec0e9520948b6d598ea32e9aa4e0de847f (diff) | |
parent | f70fd13e2fe4cf58e251271c27f9c06e141d7f9a (diff) | |
download | u-boot-imx-014c595f12d4f7e14cb10188f856465b2d41718f.zip u-boot-imx-014c595f12d4f7e14cb10188f856465b2d41718f.tar.gz u-boot-imx-014c595f12d4f7e14cb10188f856465b2d41718f.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx
Conflicts:
lib_ppc/board.c
Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'cpu/mpc83xx/cpu.c')
-rw-r--r-- | cpu/mpc83xx/cpu.c | 34 |
1 files changed, 34 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 */ |