diff options
author | Anish Trivedi <anish@freescale.com> | 2011-01-31 11:02:32 -0600 |
---|---|---|
committer | Anish Trivedi <anish@freescale.com> | 2011-01-31 11:02:32 -0600 |
commit | d56b22a7f367d358d35e188da6f58310ae980cbe (patch) | |
tree | 00cb0c4ed843e09f5f2a82881de0be6cc67d31f7 /board/freescale/mx50_rdp | |
parent | c8087980af087ef280bbf59d62fff8c2c78f79ad (diff) | |
download | u-boot-imx-d56b22a7f367d358d35e188da6f58310ae980cbe.zip u-boot-imx-d56b22a7f367d358d35e188da6f58310ae980cbe.tar.gz u-boot-imx-d56b22a7f367d358d35e188da6f58310ae980cbe.tar.bz2 |
ENGR00138689 MX50 Update LPDDR2 script to use more optimized settings
New LPDDR2 initialization script from designer includes
controller changes as well as very important PHY changes that increase
internal sampling window to detect DQS edge. This increase
compensates for possible jitter.
The script, Codex_LPDDR2_266MHz.inc v7, is found at
http://compass.freescale.net/livelink/
livelink?func=ll&objId=218722501&objAction=browse&viewType=1
Also removed ARM2 LPDDR2 init section since the settings for that
board are the same as the RDP (EVK).
Signed-off-by: Anish Trivedi <anish@freescale.com>
Diffstat (limited to 'board/freescale/mx50_rdp')
-rw-r--r-- | board/freescale/mx50_rdp/flash_header.S | 357 |
1 files changed, 42 insertions, 315 deletions
diff --git a/board/freescale/mx50_rdp/flash_header.S b/board/freescale/mx50_rdp/flash_header.S index 97bd92a..5565af5 100644 --- a/board/freescale/mx50_rdp/flash_header.S +++ b/board/freescale/mx50_rdp/flash_header.S @@ -291,7 +291,7 @@ plugin_start: strhi r3, [r2] /*============================================================================= - *init script for codex LPDDR1-200MHz CPU board + *init script for all MX50 boards *===========================================================================*/ /* Setup PLL1 to be 800 MHz */ @@ -369,6 +369,9 @@ wait_pll1_lock: //setmem /32 0x53fa86ac = 0x04000000 //IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE, ddr_sel=2'b01 (LPDDR2) str r1, [r0, #0xac] +//setmem /32 0x53fa8670 = 0x00000000 //IOMUXC_SW_PAD_CTL_GRP_DDRPKE +// bit 7: PKE=0 (All ddr pads except DQS) + str r2, [r0, #0x70] //setmem /32 0x53fa86a4 = 0x00200000 //IOMUXC_SW_PAD_CTL_GRP_CTLDS, dse=3'b100 str r3, [r0, #0xa4] @@ -461,8 +464,6 @@ wait_pll1_lock: str r1, [r0, #0x124] #endif -#if defined(CONFIG_MX50_RDP) - /*=========================================================================== * DDR setting *===========================================================================*/ @@ -470,9 +471,6 @@ wait_pll1_lock: //setmem /32 0x14000000 = 0x00000500 ldr r1, =0x00000500 str r1, [r0, #0x0] -//setmem /32 0x14000004 = 0x00000000 - ldr r1, =0x00000000 - str r1, [r0, #0x4] //setmem /32 0x14000008 = 0x0000001b ldr r1, =0x0000001b str r1, [r0, #0x8] @@ -485,20 +483,20 @@ wait_pll1_lock: //setmem /32 0x14000014 = 0x00000a6b ldr r1, =0x00000a6b str r1, [r0, #0x14] -//setmem /32 0x14000018 = 0x02030d0c - ldr r1, =0x02030d0c +//setmem /32 0x14000018 = 0x02020d0c + ldr r1, =0x02020d0c str r1, [r0, #0x18] -//setmem /32 0x1400001c = 0x0c110304 - ldr r1, =0x0c110304 +//setmem /32 0x1400001c = 0x0c110302 + ldr r1, =0x0c110302 str r1, [r0, #0x1c] //setmem /32 0x14000020 = 0x05020503 ldr r1, =0x05020503 str r1, [r0, #0x20] -//setmem /32 0x14000024 = 0x0048D005 - ldr r1, =0x0048D005 +//setmem /32 0x14000024 = 0x0048eb05 + ldr r1, =0x0048eb05 str r1, [r0, #0x24] -//setmem /32 0x14000028 = 0x01000403 - ldr r1, =0x01000403 +//setmem /32 0x14000028 = 0x00000606 + ldr r1, =0x00000606 str r1, [r0, #0x28] //setmem /32 0x1400002c = 0x09040501 ldr r1, =0x09040501 @@ -515,8 +513,8 @@ wait_pll1_lock: //setmem /32 0x1400003c = 0x00002301 ldr r1, =0x00002301 str r1, [r0, #0x3c] -//setmem /32 0x14000040 = 0x00050300 - ldr r1, =0x00050300 +//setmem /32 0x14000040 = 0x00050408 + ldr r1, =0x00050408 str r1, [r0, #0x40] //setmem /32 0x14000044 = 0x00000300 ldr r1, =0x00000300 @@ -612,8 +610,8 @@ wait_pll1_lock: ldr r1, =0x0000ffff str r1, [r0, #0xdc] -//setmem /32 0x140000e0 = 0x0000ffff - ldr r1, =0x0000ffff +//setmem /32 0x140000e0 = 0x0000ff00 + ldr r1, =0x0000ff00 str r1, [r0, #0xe0] //setmem /32 0x140000e4 = 0x02020000 @@ -668,8 +666,8 @@ wait_pll1_lock: ldr r1, =0x03060408 str r1, [r0, #0x114] -//setmem /32 0x14000118 = 0x01010002 - ldr r1, =0x01010002 +//setmem /32 0x14000118 = 0x00010002 + ldr r1, =0x00010002 str r1, [r0, #0x118] //setmem /32 0x1400011c = 0x00001000 @@ -685,44 +683,36 @@ wait_pll1_lock: ldr r1, =0x00000000 str r1, [r0, #0x204] -//setmem /32 0x14000208 = 0xf5003a27 - ldr r1, =0xf5003a27 +//setmem /32 0x14000208 = 0x35003a27 + ldr r1, =0x35003a27 str r1, [r0, #0x208] -//setmem /32 0x14000210 = 0xf5003a27 - ldr r1, =0xf5003a27 +//setmem /32 0x14000210 = 0x35003a27 str r1, [r0, #0x210] -//setmem /32 0x14000218 = 0xf5003a27 - ldr r1, =0xf5003a27 +//setmem /32 0x14000218 = 0x35003a27 str r1, [r0, #0x218] -//setmem /32 0x14000220 = 0xf5003a27 - ldr r1, =0xf5003a27 +//setmem /32 0x14000220 = 0x35003a27 str r1, [r0, #0x220] -//setmem /32 0x14000228 = 0xf5003a27 - ldr r1, =0xf5003a27 +//setmem /32 0x14000228 = 0x35003a27 str r1, [r0, #0x228] -//setmem /32 0x1400020c = 0x074002e1 - ldr r1, =0x074002e1 +//setmem /32 0x1400020c = 0x380002e1 + ldr r1, =0x380002e1 str r1, [r0, #0x20c] -//setmem /32 0x14000214 = 0x074002e1 - ldr r1, =0x074002e1 +//setmem /32 0x14000214 = 0x380002e1 str r1, [r0, #0x214] -//setmem /32 0x1400021c = 0x074002e1 - ldr r1, =0x074002e1 +//setmem /32 0x1400021c = 0x380002e1 str r1, [r0, #0x21c] -//setmem /32 0x14000224 = 0x074002e1 - ldr r1, =0x074002e1 +//setmem /32 0x14000224 = 0x380002e1 str r1, [r0, #0x224] -//setmem /32 0x1400022c = 0x074002e1 - ldr r1, =0x074002e1 +//setmem /32 0x1400022c = 0x380002e1 str r1, [r0, #0x22c] //setmem /32 0x14000230 = 0x00000000 @@ -733,301 +723,38 @@ wait_pll1_lock: ldr r1, =0x00810006 str r1, [r0, #0x234] -//setmem /32 0x14000238 = 0x60099414 - ldr r1, =0x60099414 +//setmem /32 0x14000238 = 0x60101014 + ldr r1, =0x60101014 str r1, [r0, #0x238] -//setmem /32 0x14000240 = 0x60099414 - ldr r1, =0x60099414 +//setmem /32 0x14000240 = 0x60101014 str r1, [r0, #0x240] -//setmem /32 0x14000248 = 0x60099414 - ldr r1, =0x60099414 +//setmem /32 0x14000248 = 0x60101014 str r1, [r0, #0x248] -//setmem /32 0x14000250 = 0x60099414 - ldr r1, =0x60099414 +//setmem /32 0x14000250 = 0x60101014 str r1, [r0, #0x250] -//setmem /32 0x14000258 = 0x60099414 - ldr r1, =0x60099414 +//setmem /32 0x14000258 = 0x60101014 str r1, [r0, #0x258] -//setmem /32 0x1400023c = 0x000a0b01 - ldr r1, =0x000a0b01 +//setmem /32 0x1400023c = 0x00100b01 + ldr r1, =0x00100b01 str r1, [r0, #0x23c] -//setmem /32 0x14000244 = 0x000a0b01 - ldr r1, =0x000a0b01 +//setmem /32 0x14000244 = 0x00100b01 str r1, [r0, #0x244] -//setmem /32 0x1400024c = 0x000a0b01 - ldr r1, =0x000a0b01 +//setmem /32 0x1400024c = 0x00100b01 str r1, [r0, #0x24c] -//setmem /32 0x14000254 = 0x000a0b01 - ldr r1, =0x000a0b01 +//setmem /32 0x14000254 = 0x00100b01 str r1, [r0, #0x254] -//setmem /32 0x1400025c = 0x000a0b01 - ldr r1, =0x000a0b01 +//setmem /32 0x1400025c = 0x00100b01 str r1, [r0, #0x25c] -#elif defined(CONFIG_MX50_ARM2) - -/*============================================================================= - * DDR setting - *===========================================================================*/ - -/* setmem /32 0x14000000 = 0x00000500 */ - ldr r1, =0x00000500 - str r1, [r0, #0x0] -/* setmem /32 0x14000004 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x4] -/* setmem /32 0x14000008 = 0x0000001b */ - ldr r1, =0x0000001b - str r1, [r0, #0x8] -/* setmem /32 0x1400000c = 0x0000d056 */ - ldr r1, =0x0000d056 - str r1, [r0, #0xc] -/* setmem /32 0x14000010 = 0x0000010b */ - ldr r1, =0x0000010b - str r1, [r0, #0x10] -/* setmem /32 0x14000014 = 0x00000a6b */ - ldr r1, =0x00000a6b - str r1, [r0, #0x14] -/* setmem /32 0x14000018 = 0x02020d0c */ - ldr r1, =0x02020d0c - str r1, [r0, #0x18] -/* setmem /32 0x1400001c = 0x0c110302 */ - ldr r1, =0x0c110302 - str r1, [r0, #0x1c] -/* setmem /32 0x14000020 = 0x05020503 */ - ldr r1, =0x05020503 - str r1, [r0, #0x20] -/* setmem /32 0x14000024 = 0x00000105 */ - ldr r1, =0x00000105 - str r1, [r0, #0x24] -/* setmem /32 0x14000028 = 0x01000403 */ - ldr r1, =0x01000403 - str r1, [r0, #0x28] -/* setmem /32 0x1400002c = 0x09040501 */ - ldr r1, =0x09040501 - str r1, [r0, #0x2c] -/* setmem /32 0x14000030 = 0x02000000 */ - ldr r1, =0x02000000 - str r1, [r0, #0x30] -/* setmem /32 0x14000034 = 0x00000e02 */ - ldr r1, =0x00000e02 - str r1, [r0, #0x34] -/* setmem /32 0x14000038 = 0x00000006 */ - ldr r1, =0x00000006 - str r1, [r0, #0x38] -/* setmem /32 0x1400003c = 0x00002301 */ - ldr r1, =0x00002301 - str r1, [r0, #0x3c] -/* setmem /32 0x14000040 = 0x00050300 */ - ldr r1, =0x00050300 - str r1, [r0, #0x40] -/* setmem /32 0x14000044 = 0x00000300 */ - ldr r1, =0x00000300 - str r1, [r0, #0x44] -/* setmem /32 0x14000048 = 0x00260026 */ - ldr r1, =0x00260026 - str r1, [r0, #0x48] -/* setmem /32 0x1400004c = 0x00010000 */ - ldr r1, =0x00010000 - str r1, [r0, #0x4c] -/* setmem /32 0x1400005c = 0x02000000 */ - ldr r1, =0x02000000 - str r1, [r0, #0x5c] -/* setmem /32 0x14000060 = 0x00000002 */ - ldr r1, =0x00000002 - str r1, [r0, #0x60] -/* setmem /32 0x14000064 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x64] -/* setmem /32 0x14000068 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x68] -/* setmem /32 0x1400006c = 0x00040042 */ - ldr r1, =0x00040042 - str r1, [r0, #0x6c] -/* setmem /32 0x14000070 = 0x00000001 */ - ldr r1, =0x00000001 - str r1, [r0, #0x70] -/* setmem /32 0x14000074 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x74] -/* setmem /32 0x14000078 = 0x00040042 */ - ldr r1, =0x00040042 - str r1, [r0, #0x78] -/* setmem /32 0x1400007c = 0x00000001 */ - ldr r1, =0x00000001 - str r1, [r0, #0x7c] -/* setmem /32 0x14000080 = 0x010b0000 */ - ldr r1, =0x010b0000 - str r1, [r0, #0x80] -/* setmem /32 0x14000084 = 0x00000060 */ - ldr r1, =0x00000060 - str r1, [r0, #0x84] -/* setmem /32 0x14000088 = 0x02400018 */ - ldr r1, =0x02400018 - str r1, [r0, #0x88] -/* setmem /32 0x1400008c = 0x01000e00 */ - ldr r1, =0x01000e00 - str r1, [r0, #0x8c] -/* setmem /32 0x14000090 = 0x0a010101 */ - ldr r1, =0x0a010101 - str r1, [r0, #0x90] -/* setmem /32 0x14000094 = 0x01011f1f */ - ldr r1, =0x01011f1f - str r1, [r0, #0x94] -/* setmem /32 0x14000098 = 0x01010101 */ - ldr r1, =0x01010101 - str r1, [r0, #0x98] -/* setmem /32 0x1400009c = 0x00030101 */ - ldr r1, =0x00030101 - str r1, [r0, #0x9c] -/* setmem /32 0x140000a0 = 0x00010000 */ - ldr r1, =0x00010000 - str r1, [r0, #0xa0] -/* setmem /32 0x140000a4 = 0x00010000 */ - ldr r1, =0x00010000 - str r1, [r0, #0xa4] -/* setmem /32 0x140000a8 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0xa8] -/* setmem /32 0x140000ac = 0x0000ffff */ - ldr r1, =0x0000ffff - str r1, [r0, #0xac] -/* setmem /32 0x140000c8 = 0x02020101 */ - ldr r1, =0x02020101 - str r1, [r0, #0xc8] -/* setmem /32 0x140000cc = 0x01000000 */ - ldr r1, =0x01000000 - str r1, [r0, #0xcc] -/* setmem /32 0x140000d0 = 0x06060606 */ - ldr r1, =0x06060606 - str r1, [r0, #0xd0] -/* setmem /32 0x140000d4 = 0x06060606 */ - ldr r1, =0x06060606 - str r1, [r0, #0xd4] -/* setmem /32 0x140000d8 = 0x00000102 */ - ldr r1, =0x00000102 - str r1, [r0, #0xd8] -/* setmem /32 0x140000dc = 0x0000ffff */ - ldr r1, =0x0000ffff - str r1, [r0, #0xdc] -/* setmem /32 0x140000e0 = 0x0000ffff */ - ldr r1, =0x0000ffff - str r1, [r0, #0xdc] -/* setmem /32 0x140000e4 = 0x02020000 */ - ldr r1, =0x02020000 - str r1, [r0, #0xe4] -/* setmem /32 0x140000e8 = 0x02020202 */ - ldr r1, =0x02020202 - str r1, [r0, #0xe8] -/* setmem /32 0x140000ec = 0x00000202 */ - ldr r1, =0x00000202 - str r1, [r0, #0xec] -/* setmem /32 0x140000f0 = 0x01010064 */ - ldr r1, =0x01010064 - str r1, [r0, #0xf0] -/* setmem /32 0x140000f4 = 0x01010101 */ - ldr r1, =0x01010101 - str r1, [r0, #0xf4] -/* setmem /32 0x140000f8 = 0x00010101 */ - ldr r1, =0x00010101 - str r1, [r0, #0xf8] -/* setmem /32 0x140000fc = 0x00000064 */ - ldr r1, =0x00000064 - str r1, [r0, #0xfc] -/* setmem /32 0x14000100 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x100] -/* setmem /32 0x14000104 = 0x02000802 */ - ldr r1, =0x02000802 - str r1, [r0, #0x104] -/* setmem /32 0x14000108 = 0x04080000 */ - ldr r1, =0x04080000 - str r1, [r0, #0x108] -/* setmem /32 0x1400010c = 0x04080408 */ - ldr r1, =0x04080408 - str r1, [r0, #0x10c] -/* setmem /32 0x14000110 = 0x04080408 */ - ldr r1, =0x04080408 - str r1, [r0, #0x110] -/* setmem /32 0x14000114 = 0x03060408 */ - ldr r1, =0x03060408 - str r1, [r0, #0x114] -/* setmem /32 0x14000118 = 0x01010002 */ - ldr r1, =0x01010002 - str r1, [r0, #0x118] -/* setmem /32 0x1400011c = 0x00001000 */ - ldr r1, =0x00001000 - str r1, [r0, #0x11c] -/* setmem /32 0x14000200 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x200] -/* setmem /32 0x14000204 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x204] -/* setmem /32 0x14000208 = 0xf5003a27 */ - ldr r1, =0xf5003a27 - str r1, [r0, #0x208] -/* setmem /32 0x14000210 = 0xf5003a27 */ - str r1, [r0, #0x210] -/* setmem /32 0x14000218 = 0xf5003a27 */ - str r1, [r0, #0x218] -/* setmem /32 0x14000220 = 0xf5003a27 */ - str r1, [r0, #0x220] -/* setmem /32 0x14000228 = 0xf5003a27 */ - str r1, [r0, #0x228] -/* setmem /32 0x1400020c = 0x074002e1 */ - ldr r1, =0x074002e1 - str r1, [r0, #0x20c] -/* setmem /32 0x14000214 = 0x074002e1 */ - str r1, [r0, #0x214] -/* setmem /32 0x1400021c = 0x074002e1 */ - str r1, [r0, #0x21c] -/* setmem /32 0x14000224 = 0x074002e1 */ - str r1, [r0, #0x224] -/* setmem /32 0x1400022c = 0x074002e1 */ - str r1, [r0, #0x22c] -/* setmem /32 0x14000230 = 0x00000000 */ - ldr r1, =0x00000000 - str r1, [r0, #0x230] -/* setmem /32 0x14000234 = 0x00810006 */ - ldr r1, =0x00810006 - str r1, [r0, #0x234] -/* setmem /32 0x14000238 = 0x20099414 */ - ldr r1, =0x20099414 - str r1, [r0, #0x238] -/* setmem /32 0x14000240 = 0x20099414 */ - str r1, [r0, #0x240] -/* setmem /32 0x14000248 = 0x20099414 */ - str r1, [r0, #0x248] -/* setmem /32 0x14000250 = 0x20099414 */ - str r1, [r0, #0x250] -/* setmem /32 0x14000258 = 0x20099414 */ - str r1, [r0, #0x258] -/* setmem /32 0x1400023c = 0x000a0b01 */ - ldr r1, =0x000a0b01 - str r1, [r0, #0x23c] -/* setmem /32 0x14000244 = 0x000a0b01 */ - str r1, [r0, #0x244] -/* setmem /32 0x1400024c = 0x000a0b01 */ - str r1, [r0, #0x24c] -/* setmem /32 0x14000254 = 0x000a0b01 */ - str r1, [r0, #0x254] -/* setmem /32 0x1400025c = 0x000a0b01 */ - str r1, [r0, #0x25c] -#else -# error "Unsupported board!" -#endif - /* Start ddr */ /* setmem /32 0x14000000 = 0x00000501 // bit[0]: start */ ldr r1, =0x00000501 |