blob: 8e3c23c468249bda8336a53c2f22f8f949a8e744 [file] [log] [blame]
/*
* Copyright (C) 2012-2016 Freescale Semiconductor, Inc.
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <config.h>
/* DDR script */
.macro imx6dqpsabreauto_ddr_setting
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]
str r1, [r0, #0x594]
str r1, [r0, #0x56c]
str r1, [r0, #0x578]
str r1, [r0, #0x74c]
str r1, [r0, #0x57c]
ldr r1, =0x00000000
str r1, [r0, #0x58c]
ldr r1, =0x00000030
str r1, [r0, #0x59c]
str r1, [r0, #0x5a0]
str r1, [r0, #0x78c]
ldr r1, =0x00020000
str r1, [r0, #0x750]
ldr r1, =0x00000030
str r1, [r0, #0x5a8]
str r1, [r0, #0x5b0]
str r1, [r0, #0x524]
str r1, [r0, #0x51c]
str r1, [r0, #0x518]
str r1, [r0, #0x50c]
str r1, [r0, #0x5b8]
str r1, [r0, #0x5c0]
ldr r1, =0x00020000
str r1, [r0, #0x774]
ldr r1, =0x00000030
str r1, [r0, #0x784]
str r1, [r0, #0x788]
str r1, [r0, #0x794]
str r1, [r0, #0x79c]
str r1, [r0, #0x7a0]
str r1, [r0, #0x7a4]
str r1, [r0, #0x7a8]
str r1, [r0, #0x748]
str r1, [r0, #0x5ac]
str r1, [r0, #0x5b4]
str r1, [r0, #0x528]
str r1, [r0, #0x520]
str r1, [r0, #0x514]
str r1, [r0, #0x510]
str r1, [r0, #0x5bc]
str r1, [r0, #0x5c4]
ldr r0, =MMDC_P0_BASE_ADDR
ldr r2, =0xa1390003
str r2, [r0, #0x800]
ldr r2, =0x001b001e
str r2, [r0, #0x80c]
ldr r2, =0x002e0029
str r2, [r0, #0x810]
ldr r1, =MMDC_P1_BASE_ADDR
ldr r2, =0x001b002a
str r2, [r1, #0x80c]
ldr r2, =0x0019002c
str r2, [r1, #0x810]
ldr r2, =0x43240334
str r2, [r0, #0x83c]
ldr r2, =0x0324031a
str r2, [r0, #0x840]
ldr r2, =0x43340344
str r2, [r1, #0x83c]
ldr r2, =0x03280276
str r2, [r1, #0x840]
ldr r2, =0x44383A3E
str r2, [r0, #0x848]
ldr r2, =0x3C3C3846
str r2, [r1, #0x848]
ldr r2, =0x2e303230
str r2, [r0, #0x850]
ldr r2, =0x38283E34
str r2, [r1, #0x850]
ldr r2, =0x33333333
str r2, [r0, #0x81c]
str r2, [r0, #0x820]
str r2, [r0, #0x824]
str r2, [r0, #0x828]
str r2, [r1, #0x81c]
str r2, [r1, #0x820]
str r2, [r1, #0x824]
str r2, [r1, #0x828]
ldr r2, =0x24912249
str r2, [r0, #0x8c0]
ldr r2, =0x24914289
str r2, [r1, #0x8c0]
ldr r2, =0x00000800
str r2, [r0, #0x8b8]
str r2, [r1, #0x8b8]
ldr r2, =0x00020036
str r2, [r0, #0x004]
ldr r2, =0x24444040
str r2, [r0, #0x008]
ldr r2, =0x898E7955
str r2, [r0, #0x00c]
ldr r2, =0xFF320F64
str r2, [r0, #0x010]
ldr r2, =0x01FF00DB
str r2, [r0, #0x014]
ldr r2, =0x00001740
str r2, [r0, #0x018]
ldr r2, =0x00008000
str r2, [r0, #0x01c]
ldr r2, =0x000026d2
str r2, [r0, #0x02c]
ldr r2, =0x008E1023
str r2, [r0, #0x030]
ldr r2, =0x00000047
str r2, [r0, #0x040]
ldr r2, =0x14420000
str r2, [r0, #0x400]
ldr r2, =0x841A0000
str r2, [r0, #0x000]
ldr r2, =0x00400C58
str r2, [r0, #0x890]
ldr r3, =0x00bb0000
ldr r2, =0x00000000
str r2, [r3, #0x008]
ldr r2, =0x2891E41A
str r2, [r3, #0x00c]
ldr r2, =0x00000564
str r2, [r3, #0x038]
ldr r2, =0x00000040
str r2, [r3, #0x014]
ldr r2, =0x00000020
str r2, [r3, #0x028]
str r2, [r3, #0x02c]
ldr r2, =0x04088032
str r2, [r0, #0x01c]
ldr r2, =0x00008033
str r2, [r0, #0x01c]
ldr r2, =0x00048031
str r2, [r0, #0x01c]
ldr r2, =0x09408030
str r2, [r0, #0x01c]
ldr r2, =0x04008040
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 imx6dqsabreauto_ddr_setting
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]
str r1, [r0, #0x594]
str r1, [r0, #0x56c]
str r1, [r0, #0x578]
str r1, [r0, #0x74c]
str r1, [r0, #0x57c]
ldr r1, =0x00000000
str r1, [r0, #0x58c]
ldr r1, =0x00000030
str r1, [r0, #0x59c]
str r1, [r0, #0x5a0]
str r1, [r0, #0x78c]
ldr r1, =0x00020000
str r1, [r0, #0x750]
ldr r1, =0x00000028
str r1, [r0, #0x5a8]
str r1, [r0, #0x5b0]
str r1, [r0, #0x524]
str r1, [r0, #0x51c]
str r1, [r0, #0x518]
str r1, [r0, #0x50c]
str r1, [r0, #0x5b8]
str r1, [r0, #0x5c0]
ldr r1, =0x00020000
str r1, [r0, #0x774]
ldr r1, =0x00000028
str r1, [r0, #0x784]
str r1, [r0, #0x788]
str r1, [r0, #0x794]
str r1, [r0, #0x79c]
str r1, [r0, #0x7a0]
str r1, [r0, #0x7a4]
str r1, [r0, #0x7a8]
str r1, [r0, #0x748]
str r1, [r0, #0x5ac]
str r1, [r0, #0x5b4]
str r1, [r0, #0x528]
str r1, [r0, #0x520]
str r1, [r0, #0x514]
str r1, [r0, #0x510]
str r1, [r0, #0x5bc]
str r1, [r0, #0x5c4]
ldr r0, =MMDC_P0_BASE_ADDR
ldr r2, =0xa1390003
str r2, [r0, #0x800]
ldr r2, =0x001F001F
str r2, [r0, #0x80c]
str r2, [r0, #0x810]
ldr r1, =MMDC_P1_BASE_ADDR
str r2, [r1, #0x80c]
str r2, [r1, #0x810]
ldr r2, =0x43260335
str r2, [r0, #0x83c]
ldr r2, =0x031A030B
str r2, [r0, #0x840]
ldr r2, =0x4323033B
str r2, [r1, #0x83c]
ldr r2, =0x0323026F
str r2, [r1, #0x840]
ldr r2, =0x483D4545
str r2, [r0, #0x848]
ldr r2, =0x44433E48
str r2, [r1, #0x848]
ldr r2, =0x41444840
str r2, [r0, #0x850]
ldr r2, =0x4835483E
str r2, [r1, #0x850]
ldr r2, =0x33333333
str r2, [r0, #0x81c]
str r2, [r0, #0x820]
str r2, [r0, #0x824]
str r2, [r0, #0x828]
str r2, [r1, #0x81c]
str r2, [r1, #0x820]
str r2, [r1, #0x824]
str r2, [r1, #0x828]
ldr r2, =0x00000800
str r2, [r0, #0x8b8]
str r2, [r1, #0x8b8]
ldr r2, =0x00020036
str r2, [r0, #0x004]
ldr r2, =0x09444040
str r2, [r0, #0x008]
ldr r2, =0x8A8F7955
str r2, [r0, #0x00c]
ldr r2, =0xFF328F64
str r2, [r0, #0x010]
ldr r2, =0x01FF00DB
str r2, [r0, #0x014]
ldr r2, =0x00001740
str r2, [r0, #0x018]
ldr r2, =0x00008000
str r2, [r0, #0x01c]
ldr r2, =0x000026d2
str r2, [r0, #0x02c]
ldr r2, =0x008F1023
str r2, [r0, #0x030]
ldr r2, =0x00000047
str r2, [r0, #0x040]
ldr r2, =0x841A0000
str r2, [r0, #0x000]
ldr r2, =0x04088032
str r2, [r0, #0x01c]
ldr r2, =0x00008033
str r2, [r0, #0x01c]
ldr r2, =0x00048031
str r2, [r0, #0x01c]
ldr r2, =0x09408030
str r2, [r0, #0x01c]
ldr r2, =0x04008040
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 imx6dlsabreauto_ddr_setting
ldr r0, =IOMUXC_BASE_ADDR
ldr r1, =0x000c0000
str r1, [r0, #0x774]
ldr r1, =0x00000000
str r1, [r0, #0x754]
ldr r1, =0x00000030
str r1, [r0, #0x4ac]
str r1, [r0, #0x4b0]
str r1, [r0, #0x464]
str r1, [r0, #0x490]
str r1, [r0, #0x74c]
str r1, [r0, #0x494]
ldr r1, =0x00000000
str r1, [r0, #0x4a0]
ldr r1, =0x00000030
str r1, [r0, #0x4b4]
str r1, [r0, #0x4b8]
str r1, [r0, #0x76c]
ldr r1, =0x00020000
str r1, [r0, #0x750]
ldr r1, =0x00000028
str r1, [r0, #0x4bc]
str r1, [r0, #0x4c0]
str r1, [r0, #0x4c4]
str r1, [r0, #0x4c8]
str r1, [r0, #0x4cc]
str r1, [r0, #0x4d0]
str r1, [r0, #0x4d4]
str r1, [r0, #0x4d8]
ldr r1, =0x00020000
str r1, [r0, #0x760]
ldr r1, =0x00000028
str r1, [r0, #0x764]
str r1, [r0, #0x770]
str r1, [r0, #0x778]
str r1, [r0, #0x77c]
str r1, [r0, #0x780]
str r1, [r0, #0x784]
str r1, [r0, #0x78c]
str r1, [r0, #0x748]
str r1, [r0, #0x470]
str r1, [r0, #0x474]
str r1, [r0, #0x478]
str r1, [r0, #0x47c]
str r1, [r0, #0x480]
str r1, [r0, #0x484]
str r1, [r0, #0x488]
str r1, [r0, #0x48c]
ldr r0, =MMDC_P0_BASE_ADDR
ldr r2, =0xa1390003
str r2, [r0, #0x800]
ldr r2, =0x001f001f
str r2, [r0, #0x80c]
str r2, [r0, #0x810]
ldr r1, =MMDC_P1_BASE_ADDR
str r2, [r1, #0x80c]
str r2, [r1, #0x810]
ldr r2, =0x42190217
str r2, [r0, #0x83c]
ldr r2, =0x017b017b
str r2, [r0, #0x840]
ldr r2, =0x4176017b
str r2, [r1, #0x83c]
ldr r2, =0x015f016c
str r2, [r1, #0x840]
ldr r2, =0x4c4c4d4c
str r2, [r0, #0x848]
ldr r2, =0x4a4d4c48
str r2, [r1, #0x848]
ldr r2, =0x3f3f3f40
str r2, [r0, #0x850]
ldr r2, =0x3538382e
str r2, [r1, #0x850]
ldr r2, =0x33333333
str r2, [r0, #0x81c]
str r2, [r0, #0x820]
str r2, [r0, #0x824]
str r2, [r0, #0x828]
str r2, [r1, #0x81c]
str r2, [r1, #0x820]
str r2, [r1, #0x824]
str r2, [r1, #0x828]
ldr r2, =0x00000800
str r2, [r0, #0x8b8]
str r2, [r1, #0x8b8]
ldr r2, =0x00020025
str r2, [r0, #0x004]
ldr r2, =0x00333030
str r2, [r0, #0x008]
ldr r2, =0x676b5313
str r2, [r0, #0x00c]
ldr r2, =0xb66e8b63
str r2, [r0, #0x010]
ldr r2, =0x01ff00db
str r2, [r0, #0x014]
ldr r2, =0x00001740
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, =0x00000047
str r2, [r0, #0x040]
ldr r2, =0x841a0000
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, =0x00005800
str r2, [r0, #0x020]
ldr r2, =0x00011117
str r2, [r0, #0x818]
str r2, [r1, #0x818]
ldr r2, =0x00025565
str r2, [r0, #0x004]
ldr r2, =0x00011006
str r2, [r0, #0x404]
ldr r2, =0x00000000
str r2, [r0, #0x01c]
.endm
.macro imx6solosabreauto_ddr_setting
ldr r0, =IOMUXC_BASE_ADDR
ldr r1, =0x000c0000
str r1, [r0, #0x774]
ldr r1, =0x00000000
str r1, [r0, #0x754]
ldr r1, =0x00000030
str r1, [r0, #0x4ac]
str r1, [r0, #0x4b0]
str r1, [r0, #0x464]
str r1, [r0, #0x490]
str r1, [r0, #0x74c]
str r1, [r0, #0x494]
ldr r1, =0x00000000
str r1, [r0, #0x4a0]
ldr r1, =0x00000030
str r1, [r0, #0x4b4]
str r1, [r0, #0x4b8]
str r1, [r0, #0x76c]
ldr r1, =0x00020000
str r1, [r0, #0x750]
ldr r1, =0x00000028
str r1, [r0, #0x4bc]
str r1, [r0, #0x4c0]
str r1, [r0, #0x4c4]
str r1, [r0, #0x4c8]
ldr r1, =0x00020000
str r1, [r0, #0x760]
ldr r1, =0x00000028
str r1, [r0, #0x764]
str r1, [r0, #0x770]
str r1, [r0, #0x778]
str r1, [r0, #0x77c]
str r1, [r0, #0x470]
str r1, [r0, #0x474]
str r1, [r0, #0x478]
str r1, [r0, #0x47c]
ldr r0, =MMDC_P0_BASE_ADDR
ldr r2, =0xa1390003
str r2, [r0, #0x800]
ldr r2, =0x001F001F
str r2, [r0, #0x80c]
str r2, [r0, #0x810]
ldr r2, =0x421C0216
str r2, [r0, #0x83c]
ldr r2, =0x017B017A
str r2, [r0, #0x840]
ldr r2, =0x4B4A4E4C
str r2, [r0, #0x848]
ldr r2, =0x3F3F3334
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, =0x00020025
str r2, [r0, #0x004]
ldr r2, =0x00333030
str r2, [r0, #0x008]
ldr r2, =0x676B5313
str r2, [r0, #0x00c]
ldr r2, =0xB66E8B63
str r2, [r0, #0x010]
ldr r2, =0x01FF00DB
str r2, [r0, #0x014]
ldr r2, =0x00001740
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, =0x00000027
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, =0x00005800
str r2, [r0, #0x020]
ldr r2, =0x00011117
str r2, [r0, #0x818]
ldr r2, =0x00025565
str r2, [r0, #0x004]
ldr r2, =0x00011006
str r2, [r0, #0x404]
ldr r2, =0x00000000
str r2, [r0, #0x01c]
.endm
.macro imx6_clock_gating
ldr r0, =CCM_BASE_ADDR
ldr r1, =0x00C03F3F
str r1, [r0, #0x068]
ldr r1, =0x0030FC03
str r1, [r0, #0x06c]
ldr r1, =0x0FFFC000
str r1, [r0, #0x070]
ldr r1, =0x3FF00000
str r1, [r0, #0x074]
ldr r1, =0xFFFFF300
str r1, [r0, #0x078]
ldr r1, =0x0F0000C3
str r1, [r0, #0x07c]
ldr r1, =0x00000FFF
str r1, [r0, #0x080]
#ifdef CONFIG_IMX_OPTEE
#ifndef CONFIG_MX6QP
ldr r0, =0x20e0024
ldr r1, =0x3
str r1, [r0]
#endif
#endif
.endm
.macro imx6_qos_setting
ldr r0, =IOMUXC_BASE_ADDR
ldr r1, =0xF00000CF
str r1, [r0, #0x10]
#if defined(CONFIG_MX6QP)
ldr r1, =0x77177717
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
#else
ldr r1, =0x007F007F
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
#endif
.endm
.macro imx6_ddr_setting
#if defined (CONFIG_MX6S)
imx6solosabreauto_ddr_setting
#elif defined (CONFIG_MX6DL)
imx6dlsabreauto_ddr_setting
#elif defined (CONFIG_MX6QP)
imx6dqpsabreauto_ddr_setting
#elif defined (CONFIG_MX6Q)
imx6dqsabreauto_ddr_setting
#else
#error "SOC not configured"
#endif
.endm
/* include the common plugin code here */
#include <asm/arch/mx6_plugin.S>