/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2016 Freescale Semiconductor, Inc.
 *
 * 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_evk/plugin.bin 0x2F020000
#else

#ifdef CONFIG_IMX_HAB
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   0x403f00dc 0x00000000
DATA 4   0x403e0040 0x01000020
DATA 4   0x403e0500 0x01000000
DATA 4   0x403e050c 0x80808080
DATA 4   0x403e0508 0x00160002
DATA 4   0x403E0510 0x00000001
DATA 4   0x403E0514 0x00000014
DATA 4   0x403e0500 0x00000001
CHECK_BITS_SET 4 0x403e0500 0x01000000
DATA 4   0x403e050c 0x8080801B
CHECK_BITS_SET 4 0x403e050c 0x00000040
DATA 4   0x403E0030 0x00000001
DATA 4   0x403e0040 0x11000020
DATA 4   0x403f00dc 0x42000000

DATA 4   0x40B300AC 0x40000000

DATA 4   0x40AD0128 0x00040000
DATA 4   0x40AD00F8 0x00000000
DATA 4   0x40AD00D8 0x00000180
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 0x00211718
DATA 4   0x40AB002C 0x0F9F26D2
DATA 4   0x40AB0030 0x009F0E10
DATA 4   0x40AB0040 0x0000003F
DATA 4   0x40AB0000 0xC3190000

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 0x83018030
DATA 4   0x40AB001C 0x83018038
DATA 4   0x40AB001C 0x01038030
DATA 4   0x40AB001C 0x01038038

DATA 4   0x40AB083C 0x20000000

DATA 4   0x40AB0020 0x00001800
DATA 4   0x40AB0800 0xA1310000
DATA 4   0x40AB0004 0x00020052
DATA 4   0x40AB0404 0x00011006
DATA 4   0x40AB001C 0x00000000
#endif
