| # |
| # (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 |