| /* |
| * (C) Copyright 2009 |
| * Stefano Babic DENX Software Engineering sbabic@denx.de. |
| * |
| * (C) Copyright 2010 |
| * Klaus Steinhammer TTECH Control Gmbh kst@tttech.com |
| * |
| * See file CREDITS for list of people who contributed to this |
| * project. |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License as |
| * published by the Free Software Foundation; either version 2 of |
| * the License or (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not write to the Free Software |
| * Foundation Inc. 51 Franklin Street Fifth Floor Boston, |
| * MA 02110-1301 USA |
| * |
| * Refer docs/README.imxmage for more details about how-to configure |
| * and create imximage boot image |
| * |
| * The syntax is taken as close as possible with the kwbimage |
| */ |
| |
| /* |
| * Boot Device : one of |
| * spi, nand, onenand, sd |
| */ |
| BOOT_FROM spi |
| |
| /* |
| * Device Configuration Data (DCD) |
| * |
| * Each entry must have the format: |
| * Addr-type Address Value |
| * |
| * where: |
| * Addr-type register length (1,2 or 4 bytes) |
| * Address absolute address of the register |
| * value value to be stored in the register |
| */ |
| |
| /* |
| * ####################### |
| * ### Disable WDOG ### |
| * ####################### |
| */ |
| DATA 2 0x73f98000 0x30 |
| |
| /* |
| * ####################### |
| * ### SET DDR Clk ### |
| * ####################### |
| */ |
| /* CCM: CBMCR - ddr_clk_sel: axi_b (133MHz) */ |
| DATA 4 0x73FD4018 0x000024C0 |
| |
| /* DOUBLE SPI CLK (13MHz->26 MHz Clock) */ |
| DATA 4 0x73FD4038 0x2010241 |
| |
| /* IOMUXC_SW_PAD_CTL_PAD_CSPI1_MOSI HYS_ENABLE | DRV_MAX | SRE_FAST */ |
| DATA 4 0x73fa8600 0x00000107 |
| /* IOMUXC_SW_PAD_CTL_PAD_CSPI1_MISO HYS_ENABLE | DRV_MAX | SRE_FAST */ |
| DATA 4 0x73fa8604 0x00000107 |
| /* IOMUXC_SW_PAD_CTL_PAD_CSPI1_SS0 HYS_ENABLE | PKE_ENABLE | DRV_MAX | SRE_FAST */ |
| DATA 4 0x73fa8608 0x00000187 |
| /* IOMUXC_SW_PAD_CTL_PAD_CSPI1_SS1 HYS_ENABLE | PKE_ENABLE | DRV_MAX | SRE_FAST */ |
| DATA 4 0x73fa860c 0x00000187 |
| /* IOMUXC_SW_PAD_CTL_PAD_CSPI1_SCLK HYS_ENABLE | DRV_MAX | SRE_FAST */ |
| DATA 4 0x73fa8614 0x00000107 |
| /* IOMUXC_SW_PAD_CTL_PAD_DI1_PIN11 HYS_ENABLE | DRV_MAX | SRE_FAST (CSPI1_SS2) */ |
| DATA 4 0x73fa86a8 0x00000187 |
| |
| /* |
| * ####################### |
| * ### Settings IOMUXC ### |
| * ####################### |
| */ |
| /* |
| * DDR IOMUX configuration |
| * Control, Data, Address pads are in their default state: HIGH DS, FAST SR. |
| * IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK MAX DS |
| */ |
| DATA 4 0x73fa84b8 0x000000e7 |
| /* PVTC MAX (at GPC, PGR reg) */ |
| /* DATA 4 0x73FD8004 0x1fc00000 */ |
| |
| /* DQM0 DS high slew rate slow */ |
| DATA 4 0x73fa84d4 0x000000e4 |
| /* DQM1 DS high slew rate slow */ |
| DATA 4 0x73fa84d8 0x000000e4 |
| /* DQM2 DS high slew rate slow */ |
| DATA 4 0x73fa84dc 0x000000e4 |
| /* DQM3 DS high slew rate slow */ |
| DATA 4 0x73fa84e0 0x000000e4 |
| |
| /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0 DS high & SLEW slow */ |
| DATA 4 0x73fa84bc 0x000000c4 |
| /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1 DS high & SLEW slow */ |
| DATA 4 0x73fa84c0 0x000000c4 |
| /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS2 DS high & SLEW slow */ |
| DATA 4 0x73fa84c4 0x000000c4 |
| /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS3 DS high & SLEW slow */ |
| DATA 4 0x73fa84c8 0x000000c4 |
| |
| /* DRAM_DATA B0 */ |
| DATA 4 0x73fa88a4 0x00000004 |
| /* DRAM_DATA B1 */ |
| DATA 4 0x73fa88ac 0x00000004 |
| /* DRAM_DATA B2 */ |
| DATA 4 0x73fa88b8 0x00000004 |
| /* DRAM_DATA B3 */ |
| DATA 4 0x73fa882c 0x00000004 |
| |
| /* DRAM_DATA B0 slew rate */ |
| DATA 4 0x73fa8878 0x00000000 |
| /* DRAM_DATA B1 slew rate */ |
| DATA 4 0x73fa8880 0x00000000 |
| /* DRAM_DATA B2 slew rate */ |
| DATA 4 0x73fa888c 0x00000000 |
| /* DRAM_DATA B3 slew rate */ |
| DATA 4 0x73fa889c 0x00000000 |
| |
| /* |
| * ####################### |
| * ### Configure SDRAM ### |
| * ####################### |
| */ |
| |
| /* Configure CS0 */ |
| /* ####################### */ |
| |
| /* ESDCTL0: Enable controller */ |
| DATA 4 0x83fd9000 0x83220000 |
| |
| /* Init DRAM on CS0 / |
| /* ESDSCR: Precharge command */ |
| DATA 4 0x83fd9014 0x04008008 |
| /* ESDSCR: Refresh command */ |
| DATA 4 0x83fd9014 0x00008010 |
| /* ESDSCR: Refresh command */ |
| DATA 4 0x83fd9014 0x00008010 |
| /* ESDSCR: LMR with CAS=3 and BL=3 (Burst Length = 8) */ |
| DATA 4 0x83fd9014 0x00338018 |
| /* ESDSCR: EMR with half Drive strength (= medium strength @ i.MX51) */ |
| DATA 4 0x83fd9014 0x0020801a |
| /* ESDSCR */ |
| DATA 4 0x83fd9014 0x00008000 |
| |
| /* ESDSCR: EMR with full Drive strength */ |
| /* DATA 4 0x83fd9014 0x0000801a */ |
| |
| /* ESDCTL0: 14 ROW, 10 COL, 32Bit, SREF=8 */ |
| DATA 4 0x83fd9000 0xC3220000 |
| |
| /* |
| * ESDCFG0: tRFC:22clks, tXSR:28clks, tXP:2clks, tWTR:2clk, tRP:3clks, tMRD:2clks |
| * tRAS:8clks, tRRD:2clks, tWR:3clks, tRCD:3clks, tRC:11clks |
| * DATA 4 0x83fd9004 0xC33574AA |
| */ |
| /* |
| * micron mDDR |
| * ESDCFG0: tRFC:11clks, tXSR:19clks, tXP:1clks, tWTR:2clk, tRP:3clks, tMRD:2clks |
| * tRAS:7clks, tRRD:2clks, tWR:3clks, tRCD:3clks, tRC:9clks |
| * DATA 4 0x83FD9004 0x101564a8 |
| */ |
| /* |
| * hynix mDDR |
| * ESDCFG0: tRFC:17clks, tXSR:21clks, tXP:3clks, tWTR:1clk, tRP:3clks, tMRD:2clks |
| * tRAS:7clks, tRRD:2clks, tWR:3clks, tRCD:3clks, tRC:9clks |
| */ |
| DATA 4 0x83FD9004 0x704564a8 |
| |
| /* ESDMISC: AP=10, Bank interleaving on, MIF3 en, RALAT=2 */ |
| DATA 4 0x83fd9010 0x000a1700 |
| |
| /* Configure CS1 */ |
| /* ####################### */ |
| |
| /* ESDCTL1: Enable controller */ |
| DATA 4 0x83fd9008 0x83220000 |
| |
| /* Init DRAM on CS1 */ |
| /* ESDSCR: Precharge command */ |
| DATA 4 0x83fd9014 0x0400800c |
| /* ESDSCR: Refresh command */ |
| DATA 4 0x83fd9014 0x00008014 |
| /* ESDSCR: Refresh command */ |
| DATA 4 0x83fd9014 0x00008014 |
| /* ESDSCR: LMR with CAS=3 and BL=3 (Burst Length = 8) */ |
| DATA 4 0x83fd9014 0x0033801c |
| /* ESDSCR: EMR with half Drive strength (= medium strength @ i.MX51) */ |
| DATA 4 0x83fd9014 0x0020801e |
| /* ESDSCR */ |
| DATA 4 0x83fd9014 0x00008004 |
| |
| /* ESDCTL1: 14 ROW, 10 COL, 32Bit, SREF=8 */ |
| DATA 4 0x83fd9008 0xC3220000 |
| /* |
| * ESDCFG1: tRFC:22clks, tXSR:28clks, tXP:2clks, tWTR:2clk, tRP:3clks, tMRD:2clks |
| * tRAS:8clks, tRRD:2clks, tWR:3clks, tRCD:3clks, tRC:11clks |
| * DATA 4 0x83fd900c 0xC33574AA |
| */ |
| /* |
| * micron mDDR |
| * ESDCFG1: tRFC:11clks, tXSR:19clks, tXP:1clks, tWTR:2clk, tRP:3clks, tMRD:2clks |
| * tRAS:7clks, tRRD:2clks, tWR:3clks, tRCD:3clks, tRC:9clks |
| * DATA 4 0x83FD900C 0x101564a8 |
| */ |
| /* |
| * hynix mDDR |
| * ESDCFG0: tRFC:17clks, tXSR:21clks, tXP:3clks, tWTR:1clk, tRP:3clks, tMRD:2clks |
| * tRAS:7clks, tRRD:2clks, tWR:3clks, tRCD:3clks, tRC:9clks |
| */ |
| DATA 4 0x83FD900C 0x704564a8 |
| |
| /* ESDSCR (mDRAM configuration finished) */ |
| DATA 4 0x83FD9014 0x00000004 |
| |
| /* ESDSCR - clear "configuration request" bit */ |
| DATA 4 0x83fd9014 0x00000000 |