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