summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenoît Thébaudeau <benoit.thebaudeau@advansee.com>2012-09-18 04:48:42 +0000
committerStefano Babic <sbabic@denx.de>2012-09-23 19:55:06 +0200
commit362635bd50e386770ebaa2d5d090eb8cbf96430b (patch)
treea5b2cdff5f729d3940ebd60efd509ad9390b13c5
parent1d9b033269263a69f7402f508c17b242fc7fea43 (diff)
downloadblackbird-obmc-uboot-362635bd50e386770ebaa2d5d090eb8cbf96430b.tar.gz
blackbird-obmc-uboot-362635bd50e386770ebaa2d5d090eb8cbf96430b.zip
mx51evk: Add CONFIG_REVISION_TAG
FSL 2.6.35 kernel assumes that the bootloader passes the CONFIG_REVISION_TAG information. If this data is not present, the kernel misconfigures the TZIC, which results in the timer interrupt handler never being called, so the kernel deadlocks while calibrating its delay. Suggested-by: Greg Topmiller <Greg.Topmiller@jdsu.com> Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <festevam@gmail.com> Acked-by: Fabio Estevam <fabio.estevam@freescale.com>
-rw-r--r--arch/arm/include/asm/arch-mx5/imx-regs.h2
-rw-r--r--board/freescale/mx51evk/mx51evk.c8
-rw-r--r--include/configs/mx51evk.h1
3 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/include/asm/arch-mx5/imx-regs.h b/arch/arm/include/asm/arch-mx5/imx-regs.h
index d1ef15d043..46017f4ad0 100644
--- a/arch/arm/include/asm/arch-mx5/imx-regs.h
+++ b/arch/arm/include/asm/arch-mx5/imx-regs.h
@@ -321,6 +321,8 @@
#define BOARD_REV_1_0 0x0
#define BOARD_REV_2_0 0x1
+#define BOARD_VER_OFFSET 0x8
+
#define IMX_IIM_BASE (IIM_BASE_ADDR)
#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
diff --git a/board/freescale/mx51evk/mx51evk.c b/board/freescale/mx51evk/mx51evk.c
index 7a0682a7e9..a94701cbf1 100644
--- a/board/freescale/mx51evk/mx51evk.c
+++ b/board/freescale/mx51evk/mx51evk.c
@@ -60,6 +60,14 @@ int dram_init(void)
return 0;
}
+u32 get_board_rev(void)
+{
+ u32 rev = get_cpu_rev();
+ if (!gpio_get_value(IMX_GPIO_NR(1, 22)))
+ rev |= BOARD_REV_2_0 << BOARD_VER_OFFSET;
+ return rev;
+}
+
static void setup_iomux_uart(void)
{
unsigned int pad = PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE |
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h
index ba4a4a623c..7b027b42ac 100644
--- a/include/configs/mx51evk.h
+++ b/include/configs/mx51evk.h
@@ -44,6 +44,7 @@
#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_INITRD_TAG
+#define CONFIG_REVISION_TAG
#define CONFIG_OF_LIBFDT
OpenPOWER on IntegriCloud