#
# (C Copyright 2009
# 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	sd

# 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

# Setting IOMUXC
DATA 4 0x53fa8554 0x00200000
DATA 4 0x53fa8560 0x00200000
DATA 4 0x53fa8594 0x00200000
DATA 4 0x53fa8584 0x00200000
DATA 4 0x53fa8558 0x00200040
DATA 4 0x53fa8568 0x00200040
DATA 4 0x53fa8590 0x00200040
DATA 4 0x53fa857c 0x00200040
DATA 4 0x53fa8564 0x00200040
DATA 4 0x53fa8580 0x00200040
DATA 4 0x53fa8570 0x00200000
DATA 4 0x53fa8578 0x00200000
DATA 4 0x53fa872c 0x00200000
DATA 4 0x53fa8728 0x00200000
DATA 4 0x53fa871c 0x00200000
DATA 4 0x53fa8718 0x00200000
DATA 4 0x53fa8574 0x00280000
DATA 4 0x53fa8588 0x00280000
DATA 4 0x53fa86f0 0x00280000
DATA 4 0x53fa8720 0x00280000
DATA 4 0x53fa86fc 0x00000000
DATA 4 0x53fa86f4 0x00000200
DATA 4 0x53fa8714 0x00000000
DATA 4 0x53fa8724 0x06000000
DATA 4 0x63fd9088 0x34333936
DATA 4 0x63fd9090 0x49434942
DATA 4 0x63fd90F8 0x00000800
DATA 4 0x63fd907c 0x01350138
DATA 4 0x63fd9080 0x01380139
DATA 4 0x63fd9018 0x00001710
DATA 4 0x63fd9000 0xc4110000
DATA 4 0x63fd900C 0x4d5122d2
DATA 4 0x63fd9010 0x92d18a22
DATA 4 0x63fd9014 0x00c70092
DATA 4 0x63fd902c 0x000026d2
DATA 4 0x63fd9030 0x009f000e
DATA 4 0x63fd9008 0x12272000
DATA 4 0x63fd9004 0x00030012
DATA 4 0x63fd901c 0x04008010
DATA 4 0x63fd901c 0x00008032
DATA 4 0x63fd901c 0x00008033
DATA 4 0x63fd901c 0x00008031
DATA 4 0x63fd901c 0x0b5280b0
DATA 4 0x63fd901c 0x04008010
DATA 4 0x63fd901c 0x00008020
DATA 4 0x63fd901c 0x00008020
DATA 4 0x63fd901c 0x0a528030
DATA 4 0x63fd901c 0x03c68031
DATA 4 0x63fd901c 0x00448031
DATA 4 0x63fd901c 0x04008018
DATA 4 0x63fd901c 0x0000803a
DATA 4 0x63fd901c 0x0000803b
DATA 4 0x63fd901c 0x00008039
DATA 4 0x63fd901c 0x0b528138
DATA 4 0x63fd901c 0x04008018
DATA 4 0x63fd901c 0x00008028
DATA 4 0x63fd901c 0x00008028
DATA 4 0x63fd901c 0x0a528038
DATA 4 0x63fd901c 0x03c68039
DATA 4 0x63fd901c 0x00448039
DATA 4 0x63fd9020 0x00005800
DATA 4 0x63fd9058 0x00033335
DATA 4 0x63fd901c 0x00000000
DATA 4 0x63fd9040 0x05380003
DATA 4 0x53fa8004 0x00194005
