1*7809fbb9SPrafulla Wadaskar# 2*7809fbb9SPrafulla Wadaskar# (C) Copyright 2009 3*7809fbb9SPrafulla Wadaskar# Marvell Semiconductor <www.marvell.com> 4*7809fbb9SPrafulla Wadaskar# Written-by: Prafulla Wadaskar <prafulla@marvell.com> 5*7809fbb9SPrafulla Wadaskar# 6*7809fbb9SPrafulla Wadaskar# See file CREDITS for list of people who contributed to this 7*7809fbb9SPrafulla Wadaskar# project. 8*7809fbb9SPrafulla Wadaskar# 9*7809fbb9SPrafulla Wadaskar# This program is free software; you can redistribute it and/or 10*7809fbb9SPrafulla Wadaskar# modify it under the terms of the GNU General Public License as 11*7809fbb9SPrafulla Wadaskar# published by the Free Software Foundation; either version 2 of 12*7809fbb9SPrafulla Wadaskar# the License, or (at your option) any later version. 13*7809fbb9SPrafulla Wadaskar# 14*7809fbb9SPrafulla Wadaskar# This program is distributed in the hope that it will be useful, 15*7809fbb9SPrafulla Wadaskar# but WITHOUT ANY WARRANTY; without even the implied warranty of 16*7809fbb9SPrafulla Wadaskar# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*7809fbb9SPrafulla Wadaskar# GNU General Public License for more details. 18*7809fbb9SPrafulla Wadaskar# 19*7809fbb9SPrafulla Wadaskar# You should have received a copy of the GNU General Public License 20*7809fbb9SPrafulla Wadaskar# along with this program; if not, write to the Free Software 21*7809fbb9SPrafulla Wadaskar# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 22*7809fbb9SPrafulla Wadaskar# MA 02110-1301 USA 23*7809fbb9SPrafulla Wadaskar# 24*7809fbb9SPrafulla Wadaskar# Refer docs/README.kwimage for more details about how-to configure 25*7809fbb9SPrafulla Wadaskar# and create kirkwood boot image 26*7809fbb9SPrafulla Wadaskar# 27*7809fbb9SPrafulla Wadaskar 28*7809fbb9SPrafulla Wadaskar# Boot Media configurations 29*7809fbb9SPrafulla WadaskarBOOT_FROM nand 30*7809fbb9SPrafulla WadaskarNAND_ECC_MODE default 31*7809fbb9SPrafulla WadaskarNAND_PAGE_SIZE 0x0800 32*7809fbb9SPrafulla Wadaskar 33*7809fbb9SPrafulla Wadaskar# SOC registers configuration using bootrom header extension 34*7809fbb9SPrafulla Wadaskar# Maximum KWBIMAGE_MAX_CONFIG configurations allowed 35*7809fbb9SPrafulla Wadaskar 36*7809fbb9SPrafulla Wadaskar# Configure RGMII-0 interface pad voltage to 1.8V 37*7809fbb9SPrafulla WadaskarDATA 0xFFD100e0 0x1b1b1b9b 38*7809fbb9SPrafulla Wadaskar 39*7809fbb9SPrafulla Wadaskar#Dram initalization for SINGLE x16 CL=5 @ 400MHz 40*7809fbb9SPrafulla WadaskarDATA 0xFFD01400 0x43000c30 # DDR Configuration register 41*7809fbb9SPrafulla Wadaskar# bit13-0: 0xc30 (3120 DDR2 clks refresh rate) 42*7809fbb9SPrafulla Wadaskar# bit23-14: zero 43*7809fbb9SPrafulla Wadaskar# bit24: 1= enable exit self refresh mode on DDR access 44*7809fbb9SPrafulla Wadaskar# bit25: 1 required 45*7809fbb9SPrafulla Wadaskar# bit29-26: zero 46*7809fbb9SPrafulla Wadaskar# bit31-30: 01 47*7809fbb9SPrafulla Wadaskar 48*7809fbb9SPrafulla WadaskarDATA 0xFFD01404 0x37543000 # DDR Controller Control Low 49*7809fbb9SPrafulla Wadaskar# bit 4: 0=addr/cmd in smame cycle 50*7809fbb9SPrafulla Wadaskar# bit 5: 0=clk is driven during self refresh, we don't care for APX 51*7809fbb9SPrafulla Wadaskar# bit 6: 0=use recommended falling edge of clk for addr/cmd 52*7809fbb9SPrafulla Wadaskar# bit14: 0=input buffer always powered up 53*7809fbb9SPrafulla Wadaskar# bit18: 1=cpu lock transaction enabled 54*7809fbb9SPrafulla Wadaskar# bit23-20: 5=recommended value for CL=5 and STARTBURST_DEL disabled bit31=0 55*7809fbb9SPrafulla Wadaskar# bit27-24: 7= CL+2, STARTBURST sample stages, for freqs 400MHz, unbuffered DIMM 56*7809fbb9SPrafulla Wadaskar# bit30-28: 3 required 57*7809fbb9SPrafulla Wadaskar# bit31: 0=no additional STARTBURST delay 58*7809fbb9SPrafulla Wadaskar 59*7809fbb9SPrafulla WadaskarDATA 0xFFD01408 0x22125451 # DDR Timing (Low) (active cycles value +1) 60*7809fbb9SPrafulla Wadaskar# bit3-0: TRAS lsbs 61*7809fbb9SPrafulla Wadaskar# bit7-4: TRCD 62*7809fbb9SPrafulla Wadaskar# bit11- 8: TRP 63*7809fbb9SPrafulla Wadaskar# bit15-12: TWR 64*7809fbb9SPrafulla Wadaskar# bit19-16: TWTR 65*7809fbb9SPrafulla Wadaskar# bit20: TRAS msb 66*7809fbb9SPrafulla Wadaskar# bit23-21: 0x0 67*7809fbb9SPrafulla Wadaskar# bit27-24: TRRD 68*7809fbb9SPrafulla Wadaskar# bit31-28: TRTP 69*7809fbb9SPrafulla Wadaskar 70*7809fbb9SPrafulla WadaskarDATA 0xFFD0140C 0x00000a33 # DDR Timing (High) 71*7809fbb9SPrafulla Wadaskar# bit6-0: TRFC 72*7809fbb9SPrafulla Wadaskar# bit8-7: TR2R 73*7809fbb9SPrafulla Wadaskar# bit10-9: TR2W 74*7809fbb9SPrafulla Wadaskar# bit12-11: TW2W 75*7809fbb9SPrafulla Wadaskar# bit31-13: zero required 76*7809fbb9SPrafulla Wadaskar 77*7809fbb9SPrafulla WadaskarDATA 0xFFD01410 0x00000099 # DDR Address Control 78*7809fbb9SPrafulla Wadaskar# bit1-0: 01, Cs0width=x16 79*7809fbb9SPrafulla Wadaskar# bit3-2: 10, Cs0size=512Mb 80*7809fbb9SPrafulla Wadaskar# bit5-4: 01, Cs1width=x16 81*7809fbb9SPrafulla Wadaskar# bit7-6: 10, Cs1size=512Mb 82*7809fbb9SPrafulla Wadaskar# bit9-8: 00, Cs2width=nonexistent 83*7809fbb9SPrafulla Wadaskar# bit11-10: 00, Cs2size =nonexistent 84*7809fbb9SPrafulla Wadaskar# bit13-12: 00, Cs3width=nonexistent 85*7809fbb9SPrafulla Wadaskar# bit15-14: 00, Cs3size =nonexistent 86*7809fbb9SPrafulla Wadaskar# bit16: 0, Cs0AddrSel 87*7809fbb9SPrafulla Wadaskar# bit17: 0, Cs1AddrSel 88*7809fbb9SPrafulla Wadaskar# bit18: 0, Cs2AddrSel 89*7809fbb9SPrafulla Wadaskar# bit19: 0, Cs3AddrSel 90*7809fbb9SPrafulla Wadaskar# bit31-20: 0 required 91*7809fbb9SPrafulla Wadaskar 92*7809fbb9SPrafulla WadaskarDATA 0xFFD01414 0x00000000 # DDR Open Pages Control 93*7809fbb9SPrafulla Wadaskar# bit0: 0, OpenPage enabled 94*7809fbb9SPrafulla Wadaskar# bit31-1: 0 required 95*7809fbb9SPrafulla Wadaskar 96*7809fbb9SPrafulla WadaskarDATA 0xFFD01418 0x00000000 # DDR Operation 97*7809fbb9SPrafulla Wadaskar# bit3-0: 0x0, DDR cmd 98*7809fbb9SPrafulla Wadaskar# bit31-4: 0 required 99*7809fbb9SPrafulla Wadaskar 100*7809fbb9SPrafulla WadaskarDATA 0xFFD0141C 0x00000C52 # DDR Mode 101*7809fbb9SPrafulla Wadaskar# bit2-0: 2, BurstLen=2 required 102*7809fbb9SPrafulla Wadaskar# bit3: 0, BurstType=0 required 103*7809fbb9SPrafulla Wadaskar# bit6-4: 4, CL=5 104*7809fbb9SPrafulla Wadaskar# bit7: 0, TestMode=0 normal 105*7809fbb9SPrafulla Wadaskar# bit8: 0, DLL reset=0 normal 106*7809fbb9SPrafulla Wadaskar# bit11-9: 6, auto-precharge write recovery ???????????? 107*7809fbb9SPrafulla Wadaskar# bit12: 0, PD must be zero 108*7809fbb9SPrafulla Wadaskar# bit31-13: 0 required 109*7809fbb9SPrafulla Wadaskar 110*7809fbb9SPrafulla WadaskarDATA 0xFFD01420 0x00000040 # DDR Extended Mode 111*7809fbb9SPrafulla Wadaskar# bit0: 0, DDR DLL enabled 112*7809fbb9SPrafulla Wadaskar# bit1: 0, DDR drive strenght normal 113*7809fbb9SPrafulla Wadaskar# bit2: 0, DDR ODT control lsd (disabled) 114*7809fbb9SPrafulla Wadaskar# bit5-3: 000, required 115*7809fbb9SPrafulla Wadaskar# bit6: 1, DDR ODT control msb, (disabled) 116*7809fbb9SPrafulla Wadaskar# bit9-7: 000, required 117*7809fbb9SPrafulla Wadaskar# bit10: 0, differential DQS enabled 118*7809fbb9SPrafulla Wadaskar# bit11: 0, required 119*7809fbb9SPrafulla Wadaskar# bit12: 0, DDR output buffer enabled 120*7809fbb9SPrafulla Wadaskar# bit31-13: 0 required 121*7809fbb9SPrafulla Wadaskar 122*7809fbb9SPrafulla WadaskarDATA 0xFFD01424 0x0000F17F # DDR Controller Control High 123*7809fbb9SPrafulla Wadaskar# bit2-0: 111, required 124*7809fbb9SPrafulla Wadaskar# bit3 : 1 , MBUS Burst Chop disabled 125*7809fbb9SPrafulla Wadaskar# bit6-4: 111, required 126*7809fbb9SPrafulla Wadaskar# bit7 : 0 127*7809fbb9SPrafulla Wadaskar# bit8 : 1 , add writepath sample stage, must be 1 for DDR freq >= 300MHz 128*7809fbb9SPrafulla Wadaskar# bit9 : 0 , no half clock cycle addition to dataout 129*7809fbb9SPrafulla Wadaskar# bit10 : 0 , 1/4 clock cycle skew enabled for addr/ctl signals 130*7809fbb9SPrafulla Wadaskar# bit11 : 0 , 1/4 clock cycle skew disabled for write mesh 131*7809fbb9SPrafulla Wadaskar# bit15-12: 1111 required 132*7809fbb9SPrafulla Wadaskar# bit31-16: 0 required 133*7809fbb9SPrafulla Wadaskar 134*7809fbb9SPrafulla WadaskarDATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing (default values) 135*7809fbb9SPrafulla WadaskarDATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values) 136*7809fbb9SPrafulla Wadaskar 137*7809fbb9SPrafulla WadaskarDATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0 138*7809fbb9SPrafulla WadaskarDATA 0xFFD01504 0x0FFFFFF1 # CS[0]n Size 139*7809fbb9SPrafulla Wadaskar# bit0: 1, Window enabled 140*7809fbb9SPrafulla Wadaskar# bit1: 0, Write Protect disabled 141*7809fbb9SPrafulla Wadaskar# bit3-2: 00, CS0 hit selected 142*7809fbb9SPrafulla Wadaskar# bit23-4: ones, required 143*7809fbb9SPrafulla Wadaskar# bit31-24: 0x0F, Size (i.e. 256MB) 144*7809fbb9SPrafulla Wadaskar 145*7809fbb9SPrafulla WadaskarDATA 0xFFD01508 0x10000000 # CS[1]n Base address to 256Mb 146*7809fbb9SPrafulla WadaskarDATA 0xFFD0150C 0x0FFFFFF5 # CS[1]n Size 256Mb Window enabled for CS1 147*7809fbb9SPrafulla Wadaskar 148*7809fbb9SPrafulla WadaskarDATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled 149*7809fbb9SPrafulla WadaskarDATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled 150*7809fbb9SPrafulla Wadaskar 151*7809fbb9SPrafulla WadaskarDATA 0xFFD01494 0x00030000 # DDR ODT Control (Low) 152*7809fbb9SPrafulla WadaskarDATA 0xFFD01498 0x00000000 # DDR ODT Control (High) 153*7809fbb9SPrafulla Wadaskar# bit1-0: 00, ODT0 controlled by ODT Control (low) register above 154*7809fbb9SPrafulla Wadaskar# bit3-2: 01, ODT1 active NEVER! 155*7809fbb9SPrafulla Wadaskar# bit31-4: zero, required 156*7809fbb9SPrafulla Wadaskar 157*7809fbb9SPrafulla WadaskarDATA 0xFFD0149C 0x0000E803 # CPU ODT Control 158*7809fbb9SPrafulla WadaskarDATA 0xFFD01480 0x00000001 # DDR Initialization Control 159*7809fbb9SPrafulla Wadaskar#bit0=1, enable DDR init upon this register write 160*7809fbb9SPrafulla Wadaskar 161*7809fbb9SPrafulla Wadaskar# End of Header extension 162*7809fbb9SPrafulla WadaskarDATA 0x0 0x0 163