/*
 * (C) Copyright 2012
 * Stefano Babic DENX Software Engineering sbabic@denx.de.
 *
 * 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
 */

/* image version */
IMAGE_VERSION 2

/*
 * Boot Device : one of
 * spi, sd (the board has no nand neither onenand)
 */
BOOT_FROM	nor

/*
 * 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
 */
/* IOMUX for RAM only */
DATA 4 0x53fa8554 0x300020
DATA 4 0x53fa8560 0x300020
DATA 4 0x53fa8594 0x300020
DATA 4 0x53fa8584 0x300020
DATA 4 0x53fa8558 0x300040
DATA 4 0x53fa8568 0x300040
DATA 4 0x53fa8590 0x300040
DATA 4 0x53fa857c 0x300040
DATA 4 0x53fa8564 0x300040
DATA 4 0x53fa8580 0x300040
DATA 4 0x53fa8570 0x300220
DATA 4 0x53fa8578 0x300220
DATA 4 0x53fa872c 0x300000
DATA 4 0x53fa8728 0x300000
DATA 4 0x53fa871c 0x300000
DATA 4 0x53fa8718 0x300000
DATA 4 0x53fa8574 0x300020
DATA 4 0x53fa8588 0x300020
DATA 4 0x53fa855c 0x0
DATA 4 0x53fa858c 0x0
DATA 4 0x53fa856c 0x300040
DATA 4 0x53fa86f0 0x300000
DATA 4 0x53fa8720 0x300000
DATA 4 0x53fa86fc 0x0
DATA 4 0x53fa86f4 0x0
DATA 4 0x53fa8714 0x0
DATA 4 0x53fa8724 0x4000000

/* DDR RAM */
DATA 4 0x63fd9088 0x40404040
DATA 4 0x63fd9090 0x40404040
DATA 4 0x63fd907C 0x01420143
DATA 4 0x63fd9080 0x01450146
DATA 4 0x63fd9018 0x00111740
DATA 4 0x63fd9000 0x84190000

/* esdcfgX */
DATA 4 0x63fd900C 0x9f5152e3
DATA 4 0x63fd9010 0xb68e8a63
DATA 4 0x63fd9014 0x01ff00db

/* Read/Write command delay */
DATA 4 0x63fd902c 0x000026d2

/* Out of reset delays */
DATA 4 0x63fd9030 0x00ff0e21

/* ESDCTL ODT timing control */
DATA 4 0x63fd9008 0x12273030

/* ESDCTL power down control */
DATA 4 0x63fd9004 0x0002002d

/* Set registers in DDR memory chips */
DATA 4 0x63fd901c 0x00008032
DATA 4 0x63fd901c 0x00008033
DATA 4 0x63fd901c 0x00028031
DATA 4 0x63fd901c 0x052080b0
DATA 4 0x63fd901c 0x04008040

/* ESDCTL refresh control */
DATA 4 0x63fd9020 0x00005800

/* PHY ZQ HW control */
DATA 4 0x63fd9040 0x05380003

/* PHY ODT control */
DATA 4 0x63fd9058 0x00022222

/* start DDR3 */
DATA 4 0x63fd901c 0x00000000
