MLK-14250-2 mx6sxsabresd: Add plugin boot support
authorYe Li <ye.li@nxp.com>
Fri, 24 Feb 2017 06:52:23 +0000 (14:52 +0800)
committerYe Li <ye.li@nxp.com>
Wed, 5 Apr 2017 06:04:38 +0000 (14:04 +0800)
Add plugin.S for plugin boot initialization. Need to set "CONFIG_USE_IMXIMG_PLUGIN"
for this feature.
Add the build configuration "mx6sxsabresd_plugin_defconfig" to use the plugin.

Signed-off-by: Ye Li <ye.li@nxp.com>
board/freescale/mx6sxsabresd/imximage.cfg
board/freescale/mx6sxsabresd/plugin.S [new file with mode: 0644]
configs/mx6sxsabresd_plugin_defconfig [new file with mode: 0644]

index c862617..7a94399 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Freescale Semiconductor, Inc.
+ * Copyright (C) 2014-2016 Freescale Semiconductor, Inc.
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
@@ -18,6 +18,11 @@ IMAGE_VERSION 2
 
 BOOT_FROM      sd
 
+#ifdef CONFIG_USE_IMXIMG_PLUGIN
+/*PLUGIN    plugin-binary-file    IRAM_FREE_START_ADDR*/
+PLUGIN  board/freescale/mx6sxsabresd/plugin.bin 0x00907000
+#else
+
 /*
  * Device Configuration Data (DCD)
  *
@@ -130,3 +135,4 @@ DATA 4 0x021b001c 0x04008040
 DATA 4 0x021b0020 0x00000800
 DATA 4 0x021b0818 0x00011117
 DATA 4 0x021b001c 0x00000000
+#endif
diff --git a/board/freescale/mx6sxsabresd/plugin.S b/board/freescale/mx6sxsabresd/plugin.S
new file mode 100644 (file)
index 0000000..350ea26
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2013-2016 Freescale Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <config.h>
+
+/* DDR script */
+.macro imx6sx_sabresd_ddr_setting
+       ldr r0, =IOMUXC_BASE_ADDR
+       ldr r1, =0x000c0000
+       str r1, [r0, #0x618]
+       ldr r1, =0x00000000
+       str r1, [r0, #0x5fc]
+       ldr r1, =0x00000030
+       str r1, [r0, #0x32c]
+
+       ldr r1, =0x00000020
+       str r1, [r0, #0x300]
+       str r1, [r0, #0x2fc]
+       str r1, [r0, #0x5f4]
+       str r1, [r0, #0x340]
+
+       ldr r1, =0x00000000
+       str r1, [r0, #0x320]
+       ldr r1, =0x00000020
+       str r1, [r0, #0x310]
+       str r1, [r0, #0x314]
+       str r1, [r0, #0x614]
+
+       ldr r1, =0x00020000
+       str r1, [r0, #0x5f8]
+       ldr r1, =0x00000028
+       str r1, [r0, #0x330]
+       str r1, [r0, #0x334]
+       str r1, [r0, #0x338]
+       str r1, [r0, #0x33c]
+       ldr r1, =0x00020000
+       str r1, [r0, #0x608]
+       ldr r1, =0x00000028
+       str r1, [r0, #0x60c]
+       str r1, [r0, #0x610]
+       str r1, [r0, #0x61c]
+       str r1, [r0, #0x620]
+       str r1, [r0, #0x2ec]
+       str r1, [r0, #0x2f0]
+       str r1, [r0, #0x2f4]
+       str r1, [r0, #0x2f8]
+
+       ldr r0, =MMDC_P0_BASE_ADDR
+       ldr r2, =0xa1390003
+       str r2, [r0, #0x800]
+       ldr r2, =0x00290025
+       str r2, [r0, #0x80c]
+       ldr r2, =0x00220022
+       str r2, [r0, #0x810]
+       ldr r2, =0x41480144
+       str r2, [r0, #0x83c]
+       ldr r2, =0x01340130
+       str r2, [r0, #0x840]
+       ldr r2, =0x3C3E4244
+       str r2, [r0, #0x848]
+       ldr r2, =0x34363638
+       str r2, [r0, #0x850]
+
+       ldr r2, =0x33333333
+       str r2, [r0, #0x81c]
+       str r2, [r0, #0x820]
+       str r2, [r0, #0x824]
+       str r2, [r0, #0x828]
+
+       ldr r2, =0x00000800
+       str r2, [r0, #0x8b8]
+       ldr r2, =0x0002002d
+       str r2, [r0, #0x004]
+       ldr r2, =0x00333030
+       str r2, [r0, #0x008]
+       ldr r2, =0x676b52f3
+       str r2, [r0, #0x00c]
+       ldr r2, =0xb66d8b63
+       str r2, [r0, #0x010]
+       ldr r2, =0x01ff00db
+       str r2, [r0, #0x014]
+       ldr r2, =0x00011740
+       str r2, [r0, #0x018]
+       ldr r2, =0x00008000
+       str r2, [r0, #0x01c]
+       ldr r2, =0x000026d2
+       str r2, [r0, #0x02c]
+       ldr r2, =0x006b1023
+       str r2, [r0, #0x030]
+       ldr r2, =0x0000005f
+       str r2, [r0, #0x040]
+       ldr r2, =0x84190000
+       str r2, [r0, #0x000]
+       ldr r2, =0x04008032
+       str r2, [r0, #0x01c]
+       ldr r2, =0x00008033
+       str r2, [r0, #0x01c]
+       ldr r2, =0x00048031
+       str r2, [r0, #0x01c]
+       ldr r2, =0x05208030
+       str r2, [r0, #0x01c]
+       ldr r2, =0x04008040
+       str r2, [r0, #0x01c]
+       ldr r2, =0x00000800
+       str r2, [r0, #0x020]
+       ldr r2, =0x00011117
+       str r2, [r0, #0x818]
+       ldr r2, =0x00000000
+       str r2, [r0, #0x01c]
+.endm
+.macro imx6_clock_gating
+       ldr r0, =CCM_BASE_ADDR
+       ldr r1, =0xffffffff
+       str r1, [r0, #0x068]
+       str r1, [r0, #0x06c]
+       str r1, [r0, #0x070]
+       str r1, [r0, #0x074]
+       str r1, [r0, #0x078]
+       str r1, [r0, #0x07c]
+       str r1, [r0, #0x080]
+       str r1, [r0, #0x084]
+.endm
+
+.macro imx6_qos_setting
+.endm
+
+.macro imx6_ddr_setting
+       imx6sx_sabresd_ddr_setting
+.endm
+
+/* include the common plugin code here */
+#include <asm/arch/mx6_plugin.S>
diff --git a/configs/mx6sxsabresd_plugin_defconfig b/configs/mx6sxsabresd_plugin_defconfig
new file mode 100644 (file)
index 0000000..51e29c5
--- /dev/null
@@ -0,0 +1,34 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6SXSABRESD=y
+CONFIG_VIDEO=y
+CONFIG_USE_IMXIMG_PLUGIN=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sxsabresd/imximage.cfg"
+CONFIG_BOOTDELAY=3
+# CONFIG_CONSOLE_MUX is not set
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_MMC=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_GPIO=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_TIME=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_BAR=y
+CONFIG_PCI=y
+CONFIG_USB=y
+CONFIG_USB_STORAGE=y
+CONFIG_OF_LIBFDT=y