summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Boschung <rainer.boschung@keymile.com>2014-01-27 11:49:04 +0100
committerYork Sun <yorksun@freescale.com>2014-02-03 08:38:49 -0800
commitdd21f09669ee65500f1f9bce5c4024cf817f3c79 (patch)
treeae8b332e5102eeba1194fa660847ac08bc111de3
parent714fd406daab6a98b2ee8d301c4888c113fdd818 (diff)
downloadu-boot-imx-dd21f09669ee65500f1f9bce5c4024cf817f3c79.zip
u-boot-imx-dd21f09669ee65500f1f9bce5c4024cf817f3c79.tar.gz
u-boot-imx-dd21f09669ee65500f1f9bce5c4024cf817f3c79.tar.bz2
kmp204x: support for QRIO1 bootcounter
Make use of the QRIO1 32bit register at 0x20 as bootcounter register Check for BOOTCOUNT_MAGIC pattern when before bootcounter value is read Signed-off-by: Rainer Boschung <rainer.boschung@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> [York Sun: Minor change to commit message] Signed-off-by: York Sun <yorksun@freescale.com>
-rw-r--r--board/keymile/kmp204x/kmp204x.c20
-rw-r--r--include/configs/km/kmp204x-common.h6
2 files changed, 4 insertions, 22 deletions
diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c
index f02642a..20a3264 100644
--- a/board/keymile/kmp204x/kmp204x.c
+++ b/board/keymile/kmp204x/kmp204x.c
@@ -133,26 +133,6 @@ void qrio_prstcfg(u8 bit, u8 mode)
out_be32(qrio_base + PRSTCFG_OFF, prstcfg);
}
-
-#define BOOTCOUNT_OFF 0x12
-
-void bootcount_store(ulong counter)
-{
- u8 val;
- void __iomem *qrio_base = (void *)CONFIG_SYS_QRIO_BASE;
-
- val = (counter <= 255) ? (u8)counter : 255;
- out_8(qrio_base + BOOTCOUNT_OFF, val);
-}
-
-ulong bootcount_load(void)
-{
- u8 val;
- void __iomem *qrio_base = (void *)CONFIG_SYS_QRIO_BASE;
- val = in_8(qrio_base + BOOTCOUNT_OFF);
- return val;
-}
-
#define NUM_SRDS_BANKS 2
#define PHY_RST 15
diff --git a/include/configs/km/kmp204x-common.h b/include/configs/km/kmp204x-common.h
index 2466649..0461815 100644
--- a/include/configs/km/kmp204x-common.h
+++ b/include/configs/km/kmp204x-common.h
@@ -148,8 +148,6 @@ unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_KM_KERNEL_ADDR 0x1000000 /* max kernel size 15.5Mbytes */
#define CONFIG_KM_FDT_ADDR 0x1F80000 /* max dtb size 0.5Mbytes */
-#define CONFIG_BOOTCOUNT_LIMIT
-
/*
* Local Bus Definitions
*/
@@ -206,6 +204,10 @@ unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_SYS_BR1_PRELIM CONFIG_SYS_QRIO_BR_PRELIM /* QRIO Base Address */
#define CONFIG_SYS_OR1_PRELIM CONFIG_SYS_QRIO_OR_PRELIM /* QRIO Options */
+/* bootcounter in QRIO */
+#define CONFIG_BOOTCOUNT_LIMIT
+#define CONFIG_SYS_BOOTCOUNT_ADDR (CONFIG_SYS_QRIO_BASE + 0x20)
+
#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_BOARD_EARLY_INIT_R /* call board_early_init_r function */
#define CONFIG_MISC_INIT_R