]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - cpu/mpc8xx/commproc.c
rename CFG_ macros to CONFIG_SYS
[karo-tx-uboot.git] / cpu / mpc8xx / commproc.c
index 37c72a7273ee3700e46ba821afb4b455189b3266..a87a0dce88cbd3119baa617b79916be819229214 100644 (file)
 #include <common.h>
 #include <commproc.h>
 
-#ifdef CFG_ALLOC_DPRAM
+DECLARE_GLOBAL_DATA_PTR;
+
+#ifdef CONFIG_SYS_ALLOC_DPRAM
 
 int dpram_init (void)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        /* Reclaim the DP memory for our use. */
        gd->dp_alloc_base = CPM_DATAONLY_BASE;
        gd->dp_alloc_top  = CPM_DATAONLY_BASE + CPM_DATAONLY_SIZE;
@@ -43,7 +43,6 @@ int dpram_init (void)
  */
 uint dpram_alloc (uint size)
 {
-       DECLARE_GLOBAL_DATA_PTR;
        uint addr = gd->dp_alloc_base;
 
        if ((gd->dp_alloc_base + size) >= gd->dp_alloc_top)
@@ -56,8 +55,6 @@ uint dpram_alloc (uint size)
 
 uint dpram_base (void)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        return gd->dp_alloc_base;
 }
 
@@ -67,8 +64,6 @@ uint dpram_base (void)
  */
 uint dpram_alloc_align (uint size, uint align)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        uint addr, mask = align - 1;
 
        addr = (gd->dp_alloc_base + mask) & ~mask;
@@ -83,20 +78,18 @@ uint dpram_alloc_align (uint size, uint align)
 
 uint dpram_base_align (uint align)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        uint mask = align - 1;
 
        return (gd->dp_alloc_base + mask) & ~mask;
 }
-#endif /* CFG_ALLOC_DPRAM */
+#endif /* CONFIG_SYS_ALLOC_DPRAM */
 
 #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER)
 
 void post_word_store (ulong a)
 {
        volatile void *save_addr =
-               ((immap_t *) CFG_IMMR)->im_cpm.cp_dpmem + CPM_POST_WORD_ADDR;
+               ((immap_t *) CONFIG_SYS_IMMR)->im_cpm.cp_dpmem + CPM_POST_WORD_ADDR;
 
        *(volatile ulong *) save_addr = a;
 }
@@ -104,9 +97,35 @@ void post_word_store (ulong a)
 ulong post_word_load (void)
 {
        volatile void *save_addr =
-               ((immap_t *) CFG_IMMR)->im_cpm.cp_dpmem + CPM_POST_WORD_ADDR;
+               ((immap_t *) CONFIG_SYS_IMMR)->im_cpm.cp_dpmem + CPM_POST_WORD_ADDR;
 
        return *(volatile ulong *) save_addr;
 }
 
 #endif /* CONFIG_POST || CONFIG_LOGBUFFER*/
+
+#ifdef CONFIG_BOOTCOUNT_LIMIT
+
+void bootcount_store (ulong a)
+{
+       volatile ulong *save_addr =
+               (volatile ulong *)( ((immap_t *) CONFIG_SYS_IMMR)->im_cpm.cp_dpmem +
+                                   CPM_BOOTCOUNT_ADDR );
+
+       save_addr[0] = a;
+       save_addr[1] = BOOTCOUNT_MAGIC;
+}
+
+ulong bootcount_load (void)
+{
+       volatile ulong *save_addr =
+               (volatile ulong *)( ((immap_t *) CONFIG_SYS_IMMR)->im_cpm.cp_dpmem +
+                                   CPM_BOOTCOUNT_ADDR );
+
+       if (save_addr[1] != BOOTCOUNT_MAGIC)
+               return 0;
+       else
+               return save_addr[0];
+}
+
+#endif /* CONFIG_BOOTCOUNT_LIMIT */