1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 24962e38eSStefano Babic /* 34962e38eSStefano Babic * (C) Copyright 2011 44962e38eSStefano Babic * Stefano Babic, DENX Software Engineering, sbabic@denx.de. 54962e38eSStefano Babic */ 64962e38eSStefano Babic 74962e38eSStefano Babic #ifndef _AISIMAGE_H_ 84962e38eSStefano Babic #define _AISIMAGE_H_ 94962e38eSStefano Babic 104962e38eSStefano Babic /* all values are for little endian systems */ 114962e38eSStefano Babic #define AIS_MAGIC_WORD 0x41504954 124962e38eSStefano Babic #define AIS_FCN_MAX 8 134962e38eSStefano Babic 144962e38eSStefano Babic enum { 154962e38eSStefano Babic AIS_CMD_LOAD = 0x58535901, 164962e38eSStefano Babic AIS_CMD_VALCRC = 0x58535902, 174962e38eSStefano Babic AIS_CMD_ENCRC = 0x58535903, 184962e38eSStefano Babic AIS_CMD_DISCRC = 0x58535904, 194962e38eSStefano Babic AIS_CMD_JMP = 0x58535905, 204962e38eSStefano Babic AIS_CMD_JMPCLOSE = 0x58535906, 214962e38eSStefano Babic AIS_CMD_BOOTTBL = 0x58535907, 224962e38eSStefano Babic AIS_CMD_FILL = 0x5853590A, 234962e38eSStefano Babic AIS_CMD_FNLOAD = 0x5853590D, 244962e38eSStefano Babic AIS_CMD_SEQREAD = 0x58535963, 254962e38eSStefano Babic }; 264962e38eSStefano Babic 274962e38eSStefano Babic struct ais_cmd_load { 284962e38eSStefano Babic uint32_t cmd; 294962e38eSStefano Babic uint32_t addr; 304962e38eSStefano Babic uint32_t size; 314962e38eSStefano Babic uint32_t data[1]; 324962e38eSStefano Babic }; 334962e38eSStefano Babic 344962e38eSStefano Babic struct ais_cmd_func { 354962e38eSStefano Babic uint32_t cmd; 364962e38eSStefano Babic uint32_t func_args; 374962e38eSStefano Babic uint32_t parms[AIS_FCN_MAX]; 384962e38eSStefano Babic }; 394962e38eSStefano Babic 404962e38eSStefano Babic struct ais_cmd_jmpclose { 414962e38eSStefano Babic uint32_t cmd; 424962e38eSStefano Babic uint32_t addr; 434962e38eSStefano Babic }; 444962e38eSStefano Babic 454962e38eSStefano Babic #define CMD_DATA_STR "DATA" 464962e38eSStefano Babic 474962e38eSStefano Babic enum ais_file_cmd { 484962e38eSStefano Babic CMD_INVALID, 494962e38eSStefano Babic CMD_FILL, 504962e38eSStefano Babic CMD_CRCON, 514962e38eSStefano Babic CMD_CRCOFF, 524962e38eSStefano Babic CMD_CRCCHECK, 534962e38eSStefano Babic CMD_JMPCLOSE, 544962e38eSStefano Babic CMD_JMP, 554962e38eSStefano Babic CMD_SEQREAD, 564962e38eSStefano Babic CMD_DATA, 574962e38eSStefano Babic CMD_PLL0, 584962e38eSStefano Babic CMD_PLL1, 594962e38eSStefano Babic CMD_CLK, 604962e38eSStefano Babic CMD_DDR2, 614962e38eSStefano Babic CMD_EMIFA, 624962e38eSStefano Babic CMD_EMIFA_ASYNC, 634962e38eSStefano Babic CMD_PLL, 644962e38eSStefano Babic CMD_PSC, 654962e38eSStefano Babic CMD_PINMUX, 664962e38eSStefano Babic CMD_BOOTTABLE 674962e38eSStefano Babic }; 684962e38eSStefano Babic 694962e38eSStefano Babic enum aisimage_fld_types { 704962e38eSStefano Babic CFG_INVALID = -1, 714962e38eSStefano Babic CFG_COMMAND, 724962e38eSStefano Babic CFG_VALUE, 734962e38eSStefano Babic }; 744962e38eSStefano Babic 754962e38eSStefano Babic struct ais_header { 764962e38eSStefano Babic uint32_t magic; 774962e38eSStefano Babic char data[1]; 784962e38eSStefano Babic }; 794962e38eSStefano Babic 804962e38eSStefano Babic #endif /* _AISIMAGE_H_ */ 81