summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPeng Fan <Peng.Fan@freescale.com>2015-09-10 14:40:01 +0800
committerMax Krummenacher <max.krummenacher@toradex.com>2016-03-09 14:42:48 +0100
commit54ab6f9ff6d65e2dbf322c719936a439b9903672 (patch)
treeed6f756e1ec50ce11ee74255e3b78c989f150282 /arch
parentc6157ee0331ebae6a30fb7b0de2fb461f2093a07 (diff)
MLK-11528 imx: mx6ul check fuse before init bee
Need to check fuse bit 25 of bank 0 word 4 before initialize bee. The bit: 0 means bee enabled, 1 means bee disabled. If disabled, continuing initialize bee will cause system hang, so need to check this bit before initialize bee. Add macro to enable BEE in header file, default disabled. Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/cpu/armv7/mx6/bee.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm/cpu/armv7/mx6/bee.c b/arch/arm/cpu/armv7/mx6/bee.c
index 40c4c5aaaf..d40b58474d 100644
--- a/arch/arm/cpu/armv7/mx6/bee.c
+++ b/arch/arm/cpu/armv7/mx6/bee.c
@@ -10,6 +10,7 @@
#include <asm/system.h>
#include <common.h>
#include <command.h>
+#include <fuse.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -265,7 +266,7 @@ static int region_valid(u32 start, u32 size)
static int do_bee_init(cmd_tbl_t *cmdtp, int flag, int argc,
char * const argv[])
{
- u32 start, size;
+ u32 start, size, val;
int ret;
struct bee_parameters *p = &para;
@@ -278,6 +279,15 @@ static int do_bee_init(cmd_tbl_t *cmdtp, int flag, int argc,
if (argc > 5)
return CMD_RET_USAGE;
+ if (fuse_read(0, 4, &val)) {
+ puts("Can not get fuse bank 0, word 4\n");
+ } else {
+ if (val & (1 << 25)) {
+ puts("BEE disabed in fuse!\n");
+ return CMD_RET_FAILURE;
+ }
+ }
+
/* Cache enabled? */
if ((get_cr() & (CR_I | CR_C)) != (CR_I | CR_C)) {
/*