1d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
29a322993SPhilippe De Muyter /*
39a322993SPhilippe De Muyter  * Bestcomm ATA task microcode
49a322993SPhilippe De Muyter  *
59a322993SPhilippe De Muyter  * Copyright (c) 2004 Freescale Semiconductor, Inc.
69a322993SPhilippe De Muyter  *
79a322993SPhilippe De Muyter  * Created based on bestcom/code_dma/image_rtos1/dma_image.hex
89a322993SPhilippe De Muyter  */
99a322993SPhilippe De Muyter 
109a322993SPhilippe De Muyter #include <asm/types.h>
119a322993SPhilippe De Muyter 
129a322993SPhilippe De Muyter /*
139a322993SPhilippe De Muyter  * The header consists of the following fields:
149a322993SPhilippe De Muyter  *	u32	magic;
159a322993SPhilippe De Muyter  *	u8	desc_size;
169a322993SPhilippe De Muyter  *	u8	var_size;
179a322993SPhilippe De Muyter  *	u8	inc_size;
189a322993SPhilippe De Muyter  *	u8	first_var;
199a322993SPhilippe De Muyter  *	u8	reserved[8];
209a322993SPhilippe De Muyter  *
219a322993SPhilippe De Muyter  * The size fields contain the number of 32-bit words.
229a322993SPhilippe De Muyter  */
239a322993SPhilippe De Muyter 
249a322993SPhilippe De Muyter u32 bcom_ata_task[] = {
259a322993SPhilippe De Muyter 	/* header */
269a322993SPhilippe De Muyter 	0x4243544b,
279a322993SPhilippe De Muyter 	0x0e060709,
289a322993SPhilippe De Muyter 	0x00000000,
299a322993SPhilippe De Muyter 	0x00000000,
309a322993SPhilippe De Muyter 
319a322993SPhilippe De Muyter 	/* Task descriptors */
329a322993SPhilippe De Muyter 	0x8198009b, /* LCD: idx0 = var3; idx0 <= var2; idx0 += inc3 */
339a322993SPhilippe De Muyter 	0x13e00c08, /*   DRD1A: var3 = var1; FN=0 MORE init=31 WS=0 RS=0 */
349a322993SPhilippe De Muyter 	0xb8000264, /*   LCD: idx1 = *idx0, idx2 = var0; idx1 < var9; idx1 += inc4, idx2 += inc4 */
359a322993SPhilippe De Muyter 	0x10000f00, /*     DRD1A: var3 = idx0; FN=0 MORE init=0 WS=0 RS=0 */
369a322993SPhilippe De Muyter 	0x60140002, /*     DRD2A: EU0=0 EU1=0 EU2=0 EU3=2 EXT init=0 WS=2 RS=2 */
379a322993SPhilippe De Muyter 	0x0c8cfc8a, /*     DRD2B1: *idx2 = EU3(); EU3(*idx2,var10)  */
389a322993SPhilippe De Muyter 	0xd8988240, /*   LCDEXT: idx1 = idx1; idx1 > var9; idx1 += inc0 */
399a322993SPhilippe De Muyter 	0xf845e011, /*   LCDEXT: idx2 = *(idx0 + var00000015); ; idx2 += inc2 */
409a322993SPhilippe De Muyter 	0xb845e00a, /*   LCD: idx3 = *(idx0 + var00000019); ; idx3 += inc1 */
419a322993SPhilippe De Muyter 	0x0bfecf90, /*     DRD1A: *idx3 = *idx2; FN=0 TFD init=31 WS=3 RS=3 */
429a322993SPhilippe De Muyter 	0x9898802d, /*   LCD: idx1 = idx1; idx1 once var0; idx1 += inc5 */
439a322993SPhilippe De Muyter 	0x64000005, /*     DRD2A: EU0=0 EU1=0 EU2=0 EU3=5 INT EXT init=0 WS=0 RS=0 */
449a322993SPhilippe De Muyter 	0x0c0cf849, /*     DRD2B1: *idx0 = EU3(); EU3(idx1,var9)  */
459a322993SPhilippe De Muyter 	0x000001f8, /* NOP */
469a322993SPhilippe De Muyter 
479a322993SPhilippe De Muyter 	/* VAR[9]-VAR[14] */
489a322993SPhilippe De Muyter 	0x40000000,
499a322993SPhilippe De Muyter 	0x7fff7fff,
509a322993SPhilippe De Muyter 	0x00000000,
519a322993SPhilippe De Muyter 	0x00000000,
529a322993SPhilippe De Muyter 	0x00000000,
539a322993SPhilippe De Muyter 	0x00000000,
549a322993SPhilippe De Muyter 
559a322993SPhilippe De Muyter 	/* INC[0]-INC[6] */
569a322993SPhilippe De Muyter 	0x40000000,
579a322993SPhilippe De Muyter 	0xe0000000,
589a322993SPhilippe De Muyter 	0xe0000000,
599a322993SPhilippe De Muyter 	0xa000000c,
609a322993SPhilippe De Muyter 	0x20000000,
619a322993SPhilippe De Muyter 	0x00000000,
629a322993SPhilippe De Muyter 	0x00000000,
639a322993SPhilippe De Muyter };
649a322993SPhilippe De Muyter 
65