summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe.Li <B37916@freescale.com>2014-06-05 15:43:59 +0800
committerYe.Li <B37916@freescale.com>2014-06-17 11:13:41 +0800
commit9791a2c1ead3328663cd4a9270f6103989050a35 (patch)
treefadb070eaeab2207621f63805ddd0687263390d5
parentb31a013148bf4b4b7cfec67c72a603e35f7bcb4f (diff)
downloadu-boot-imx-9791a2c1ead3328663cd4a9270f6103989050a35.zip
u-boot-imx-9791a2c1ead3328663cd4a9270f6103989050a35.tar.gz
u-boot-imx-9791a2c1ead3328663cd4a9270f6103989050a35.tar.bz2
ENGR00315894-20 imx6/arm2: add the plugin mode support
This patch add the plugin mode support for arm2 board. In order to enable the plugin mode, please turn on the CONFIG_USE_PLUGIN in the include/configs/mx6qarm2.h Signed-off-by: Jason Liu <r64343@freescale.com> Signed-off-by: Ye.Li <B37916@freescale.com>
-rw-r--r--board/freescale/mx6qarm2/Makefile6
-rw-r--r--board/freescale/mx6qarm2/imximage.cfg14
-rw-r--r--board/freescale/mx6qarm2/plugin.S259
-rw-r--r--include/configs/mx6qarm2.h3
4 files changed, 279 insertions, 3 deletions
diff --git a/board/freescale/mx6qarm2/Makefile b/board/freescale/mx6qarm2/Makefile
index 79401f4..4d51a6e 100644
--- a/board/freescale/mx6qarm2/Makefile
+++ b/board/freescale/mx6qarm2/Makefile
@@ -1,9 +1,13 @@
#
# Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de>
#
-# (C) Copyright 2011 Freescale Semiconductor, Inc.
+# (C) Copyright 2011-2014 Freescale Semiconductor, Inc.
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y := mx6qarm2.o
+
+extra-$(CONFIG_USE_PLUGIN) := plugin.bin
+$(obj)/plugin.bin: $(obj)/plugin.o
+ $(OBJCOPY) -O binary --gap-fill 0xff $< $@
diff --git a/board/freescale/mx6qarm2/imximage.cfg b/board/freescale/mx6qarm2/imximage.cfg
index 710f34d..5595d02 100644
--- a/board/freescale/mx6qarm2/imximage.cfg
+++ b/board/freescale/mx6qarm2/imximage.cfg
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc.
+ * Copyright (C) 2011-2014 Freescale Semiconductor, Inc.
* Jason Liu <r64343@freescale.com>
*
* SPDX-License-Identifier: GPL-2.0+
@@ -10,15 +10,24 @@
* The syntax is taken as close as possible with the kwbimage
*/
+#define __ASSEMBLY__
+#include <config.h>
+
/* image version */
+
IMAGE_VERSION 2
/*
* Boot Device : one of
* spi, sd (the board has no nand neither onenand)
*/
+
BOOT_FROM sd
+#ifdef CONFIG_USE_PLUGIN
+/*PLUGIN plugin-binary-file IRAM_FREE_START_ADDR*/
+PLUGIN board/freescale/mx6qarm2/plugin.bin 0x00907000
+#else
/*
* Device Configuration Data (DCD)
*
@@ -147,7 +156,7 @@ DATA 4 0x020e0018 0x00070007
DATA 4 0x020e001c 0x00070007
DATA 4 0x020c4068 0x00C03F3F
-DATA 4 0x020c406c 0x0030FC00
+DATA 4 0x020c406c 0x0030FC03
DATA 4 0x020c4070 0x0FFFC000
DATA 4 0x020c4074 0x3FF00000
DATA 4 0x020c4078 0x00FFF300
@@ -159,3 +168,4 @@ DATA 4 0x020e0010 0xF00000CF
/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
DATA 4 0x020e0018 0x007F007F
DATA 4 0x020e001c 0x007F007F
+#endif
diff --git a/board/freescale/mx6qarm2/plugin.S b/board/freescale/mx6qarm2/plugin.S
new file mode 100644
index 0000000..08a14c4
--- /dev/null
+++ b/board/freescale/mx6qarm2/plugin.S
@@ -0,0 +1,259 @@
+/*
+ * Copyright (C) 2012-2014 Freescale Semiconductor, Inc.
+ *
+ * Author: Fabio Estevam <fabio.estevam@freescale.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <config.h>
+
+.macro imx6dqarm2_ddr_setting
+ ldr r0, =CCM_BASE_ADDR
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x068]
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x06c]
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x070]
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x074]
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x078]
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x07c]
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x080]
+ ldr r1, =0xffffffff
+ str r1, [r0, #0x084]
+
+ ldr r0, =IOMUXC_BASE_ADDR
+ ldr r1, =0x000c0000
+ str r1, [r0, #0x798]
+ ldr r1, =0x00000000
+ str r1, [r0, #0x758]
+
+ ldr r1, =0x00000030
+ str r1, [r0, #0x588]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x594]
+
+ ldr r1, =0x00000030
+ str r1, [r0, #0x56c]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x578]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x74c]
+
+ ldr r1, =0x00000030
+ str r1, [r0, #0x57c]
+
+ ldr r1, =0x00000000
+ str r1, [r0, #0x58c]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x59c]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x5a0]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x78c]
+
+ ldr r1, =0x00000000
+ str r1, [r0, #0x750]
+
+ ldr r1, =0x00000038
+ str r1, [r0, #0x5a8]
+ ldr r1, =0x00000038
+ str r1, [r0, #0x5b0]
+ ldr r1, =0x00000038
+ str r1, [r0, #0x524]
+ ldr r1, =0x00000038
+ str r1, [r0, #0x51c]
+ ldr r1, =0x00000038
+ str r1, [r0, #0x518]
+ ldr r1, =0x00000038
+ str r1, [r0, #0x50c]
+ ldr r1, =0x00000038
+ str r1, [r0, #0x5b8]
+ ldr r1, =0x00000038
+ str r1, [r0, #0x5c0]
+
+ ldr r1, =0x00000000
+ str r1, [r0, #0x774]
+
+ ldr r1, =0x00000030
+ str r1, [r0, #0x784]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x788]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x794]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x79c]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x7a0]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x7a4]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x7a8]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x748]
+
+ ldr r1, =0x00000030
+ str r1, [r0, #0x5ac]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x5b4]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x528]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x520]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x514]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x510]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x5bc]
+ ldr r1, =0x00000030
+ str r1, [r0, #0x5c4]
+
+ ldr r0, =MMDC_P0_BASE_ADDR
+ ldr r2, =0xa1390003
+ str r2, [r0, #0x800]
+
+ ldr r2, =0x001F001F
+ str r2, [r0, #0x80c]
+ ldr r2, =0x001F001F
+ str r2, [r0, #0x810]
+
+ ldr r1, =MMDC_P1_BASE_ADDR
+ ldr r2, =0x00440044
+ str r2, [r1, #0x80c]
+ ldr r2, =0x00440044
+ str r2, [r1, #0x810]
+
+ ldr r2, =0x4333033F
+ str r2, [r0, #0x83c]
+ ldr r2, =0x0339033E
+ str r2, [r0, #0x840]
+ ldr r2, =0x433F0343
+ str r2, [r1, #0x83c]
+ ldr r2, =0x03490320
+ str r2, [r1, #0x840]
+
+ ldr r2, =0x42363838
+ str r2, [r0, #0x848]
+ ldr r2, =0x3F343242
+ str r2, [r1, #0x848]
+
+ ldr r2, =0x37424844
+ str r2, [r0, #0x850]
+ ldr r2, =0x48264731
+ str r2, [r1, #0x850]
+
+ ldr r2, =0x33333333
+ str r2, [r0, #0x81c]
+ ldr r2, =0x33333333
+ str r2, [r0, #0x820]
+ ldr r2, =0x33333333
+ str r2, [r0, #0x824]
+ ldr r2, =0x33333333
+ str r2, [r0, #0x828]
+ ldr r2, =0x33333333
+ str r2, [r1, #0x81c]
+ ldr r2, =0x33333333
+ str r2, [r1, #0x820]
+ ldr r2, =0x33333333
+ str r2, [r1, #0x824]
+ ldr r2, =0x33333333
+ str r2, [r1, #0x828]
+
+ ldr r2, =0x00000800
+ str r2, [r0, #0x8b8]
+ ldr r2, =0x00000800
+ str r2, [r1, #0x8b8]
+
+ ldr r2, =0x00020036
+ str r2, [r0, #0x004]
+ ldr r2, =0x09444040
+ str r2, [r0, #0x008]
+ ldr r2, =0x555A7975
+ str r2, [r0, #0x00c]
+ ldr r2, =0xFF538F64
+ str r2, [r0, #0x010]
+ ldr r2, =0x01ff00db
+ str r2, [r0, #0x014]
+ ldr r2, =0x00081740
+ str r2, [r0, #0x018]
+
+ ldr r2, =0x00008000
+ str r2, [r0, #0x01c]
+
+ ldr r2, =0x000026d2
+ str r2, [r0, #0x02c]
+ ldr r2, =0x005a1023
+ str r2, [r0, #0x030]
+ ldr r2, =0x00000027
+ str r2, [r0, #0x040]
+
+ ldr r2, =0x11420000
+ str r2, [r0, #0x400]
+ ldr r2, =0x11420000
+ str r2, [r1, #0x400]
+
+ ldr r2, =0xc31a0000
+ str r2, [r0, #0x000]
+
+ ldr r2, =0x04088032
+ str r2, [r0, #0x01c]
+ ldr r2, =0x0408803a
+ str r2, [r0, #0x01c]
+
+ ldr r2, =0x00008033
+ str r2, [r0, #0x01c]
+ ldr r2, =0x0000803b
+ str r2, [r0, #0x01c]
+
+ ldr r2, =0x00048031
+ str r2, [r0, #0x01c]
+ ldr r2, =0x00048039
+ str r2, [r0, #0x01c]
+
+ ldr r2, =0x09408030
+ str r2, [r0, #0x01c]
+ ldr r2, =0x09408038
+ str r2, [r0, #0x01c]
+
+ ldr r2, =0x04008040
+ str r2, [r0, #0x01c]
+ ldr r2, =0x04008048
+ str r2, [r0, #0x01c]
+
+ ldr r2, =0x00005800
+ str r2, [r0, #0x020]
+
+ ldr r2, =0x00011117
+ str r2, [r0, #0x818]
+ str r2, [r1, #0x818]
+
+ ldr r2, =0x00025576
+ str r2, [r0, #0x004]
+ ldr r2, =0x00011006
+ str r2, [r0, #0x404]
+ ldr r2, =0x00000000
+ str r2, [r0, #0x01c]
+.endm
+
+.macro imx6_ddr_setting
+ #if defined (CONFIG_MX6Q)
+ imx6dqarm2_ddr_setting
+ #else
+ #error "SOC not configured"
+ #endif
+.endm
+
+.macro imx6_clock_gating
+.endm
+
+.macro imx6_qos_setting
+.endm
+
+/* include the common plugin code here */
+#include <asm/arch/mx6_plugin.S>
diff --git a/include/configs/mx6qarm2.h b/include/configs/mx6qarm2.h
index 77534f2..caeebb6 100644
--- a/include/configs/mx6qarm2.h
+++ b/include/configs/mx6qarm2.h
@@ -12,6 +12,9 @@
#define CONFIG_MX6
#define CONFIG_MX6Q
+/* uncomment for PLUGIN mode support */
+/* #define CONFIG_USE_PLUGIN */
+
#include "mx6_common.h"
#define CONFIG_DISPLAY_CPUINFO