/*
 * Copyright 2017 NXP
 *
 * 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
 */

BOOT_FROM	sd

#ifdef CONFIG_USE_IMXIMG_PLUGIN
/*PLUGIN    plugin-binary-file    IRAM_FREE_START_ADDR*/
PLUGIN	board/freescale/mx7ulp_arm2/plugin.bin 0x2F020000
#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   0x403f00e0 0x00000000
DATA 4   0x403e0040 0x01000020
DATA 4   0x403e050c 0x80808080
DATA 4   0x403e050c 0x8080801E
CHECK_BITS_SET 4 0x403e050c 0x00000040
DATA 4   0x403E0030 0x00000001
DATA 4   0x403e0040 0x11000020
DATA 4   0x403f00e0 0x42000000

DATA 4   0x40B300AC 0x40000000

DATA 4   0x40AD0128 0x00040000
DATA 4   0x40AD00F8 0x00000000
DATA 4   0x40AD00D8 0x0000018C
DATA 4   0x40AD0108 0x00000180
DATA 4   0x40AD0104 0x00000180
DATA 4   0x40AD0124 0x00010000
DATA 4   0x40AD0080 0x0000018C
DATA 4   0x40AD0084 0x0000018C
DATA 4   0x40AD0088 0x0000018C
DATA 4   0x40AD008C 0x0000018C

DATA 4   0x40AD0120 0x00010000
DATA 4   0x40AD010C 0x00000180
DATA 4   0x40AD0110 0x00000180
DATA 4   0x40AD0114 0x00000180
DATA 4   0x40AD0118 0x00000180
DATA 4   0x40AD0090 0x00000180
DATA 4   0x40AD0094 0x00000180
DATA 4   0x40AD0098 0x00000180
DATA 4   0x40AD009C 0x00000180

DATA 4   0x40AD00E0 0x00040000
DATA 4   0x40AD00E4 0x00040000

DATA 4   0x40AB001C 0x00008000
DATA 4   0x40AB0800 0xA1390003
DATA 4   0x40AB085C 0x0D3900A0
DATA 4   0x40AB0890 0x00400000

DATA 4   0x40AB0848 0x40404040
DATA 4   0x40AB0850 0x40404040
DATA 4   0x40AB081C 0x33333333
DATA 4   0x40AB0820 0x33333333
DATA 4   0x40AB0824 0x33333333
DATA 4   0x40AB0828 0x33333333

DATA 4   0x40AB08C0 0x24922492
DATA 4   0x40AB08B8 0x00000800

DATA 4   0x40AB0004 0x00020052
DATA 4   0x40AB000C 0x292C42F3
DATA 4   0x40AB0010 0x00100A22
DATA 4   0x40AB0038 0x00120556
DATA 4   0x40AB0014 0x00C700DB
DATA 4   0x40AB0018 0x00211708
DATA 4   0x40AB002C 0x0F9F26D2
DATA 4   0x40AB0030 0x009F0E10
DATA 4   0x40AB0040 0x0000003F
DATA 4   0x40AB0000 0xC3110000

DATA 4   0x40AB001C 0x00008010
DATA 4   0x40AB001C 0x00008018
DATA 4   0x40AB001C 0x003F8030
DATA 4   0x40AB001C 0x003F8038
DATA 4   0x40AB001C 0xFF0A8030
DATA 4   0x40AB001C 0xFF0A8038
DATA 4   0x40AB001C 0x04028030
DATA 4   0x40AB001C 0x04028038
DATA 4   0x40AB001C 0x82018030
DATA 4   0x40AB001C 0x82018038
DATA 4   0x40AB001C 0x01038030
DATA 4   0x40AB001C 0x01038038

DATA 4   0x40AB083C 0x20000000

DATA 4   0x40AB0020 0x00001800
DATA 4   0x40AB0800 0xA1390003
DATA 4   0x40AB0004 0x00020052
DATA 4   0x40AB0404 0x00011006
DATA 4   0x40AB001C 0x00000000

#endif
