/*
 * Copyright (C) 2015 Freescale Semiconductor, Inc.
 *
 * SPDX-License-Identifier:	GPL-2.0+
 *
 * 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
 */

#define __ASSEMBLY__
#include <config.h>

/* image version */

IMAGE_VERSION 2

/*
 * Boot Device : one of
 * spi/sd/nand/onenand, qspi/nor
 */

#ifdef CONFIG_SYS_BOOT_QSPI
BOOT_FROM	qspi
#elif defined(CONFIG_SYS_BOOT_EIMNOR)
BOOT_FROM	nor
#else
BOOT_FROM	sd
#endif

#ifdef CONFIG_USE_PLUGIN
/*PLUGIN    plugin-binary-file    IRAM_FREE_START_ADDR*/
PLUGIN	board/freescale/mx6ul_14x14_evk/plugin.bin 0x00907000
#else

#ifdef CONFIG_SECURE_BOOT
CSF CONFIG_CSF_SIZE
#endif

/*
 * 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
 */

DATA 4 0x020c4068 0xffffffff
DATA 4 0x020c406c 0xffffffff
DATA 4 0x020c4070 0xffffffff
DATA 4 0x020c4074 0xffffffff
DATA 4 0x020c4078 0xffffffff
DATA 4 0x020c407c 0xffffffff
DATA 4 0x020c4080 0xffffffff
DATA 4 0x020c4084 0xffffffff

DATA 4 0x020E04B4 0x00080000
DATA 4 0x020E04AC 0x00000000
DATA 4 0x020E027C 0x00000030
DATA 4 0x020E0250 0x00000030
DATA 4 0x020E024C 0x00000030
DATA 4 0x020E0490 0x00000030
DATA 4 0x020E0288 0x00000030
DATA 4 0x020E0270 0x00000000
DATA 4 0x020E0260 0x00000000
DATA 4 0x020E0264 0x00000000
DATA 4 0x020E04A0 0x00000030
DATA 4 0x020E0494 0x00020000
DATA 4 0x020E0280 0x00003030
DATA 4 0x020E0284 0x00003030
DATA 4 0x020E04B0 0x00020000
DATA 4 0x020E0498 0x00000030
DATA 4 0x020E04A4 0x00000030
DATA 4 0x020E0244 0x00000030
DATA 4 0x020E0248 0x00000030

DATA 4 0x021B001C 0x00008000
DATA 4 0x021B085C 0x1b4700c7
DATA 4 0x021B0800 0xA1390003
DATA 4 0x021B0890 0x00470000
DATA 4 0x021B08b8 0x00000800

DATA 4 0x021B081C 0x33333333
DATA 4 0x021B0820 0x33333333
DATA 4 0x021B082C 0xf3333333
DATA 4 0x021B0830 0xf3333333
DATA 4 0x021B083C 0x20000000
DATA 4 0x021B0848 0x4040484F
DATA 4 0x021B0850 0x40405247
DATA 4 0x021B08C0 0x00922012
DATA 4 0x021B08b8 0x00000800

DATA 4 0x021B0004 0x00020012
DATA 4 0x021B0008 0x00000000
DATA 4 0x021B000C 0x33374133
DATA 4 0x021B0010 0x00100A82
DATA 4 0x021B0038 0x00170557
DATA 4 0x021B0014 0x00000093
DATA 4 0x021B0018 0x00001748
DATA 4 0x021B001C 0x00008000
DATA 4 0x021B002C 0x0F9F0682
DATA 4 0x021B0030 0x009F0010
DATA 4 0x021B0040 0x00000047
DATA 4 0x021B0000 0x83100000
DATA 4 0x021B001C 0x003F8030
DATA 4 0x021B001C 0xFF0A8030
DATA 4 0x021B001C 0x82018030
DATA 4 0x021B001C 0x04028030
DATA 4 0x021B001C 0x01038030
DATA 4 0x021B0020 0x00001800
DATA 4 0x021B0818 0x00000000
DATA 4 0x021B0800 0xA1310003
DATA 4 0x021B0004 0x00025576
DATA 4 0x021B0404 0x00011006
DATA 4 0x021B001C 0x00000000
#endif
