1*4962e38eSStefano Babic /* 2*4962e38eSStefano Babic * (C) Copyright 2011 3*4962e38eSStefano Babic * Stefano Babic, DENX Software Engineering, sbabic@denx.de. 4*4962e38eSStefano Babic * 5*4962e38eSStefano Babic * See file CREDITS for list of people who contributed to this 6*4962e38eSStefano Babic * project. 7*4962e38eSStefano Babic * 8*4962e38eSStefano Babic * This program is free software; you can redistribute it and/or 9*4962e38eSStefano Babic * modify it under the terms of the GNU General Public License as 10*4962e38eSStefano Babic * published by the Free Software Foundation; either version 2 of 11*4962e38eSStefano Babic * the License, or (at your option) any later version. 12*4962e38eSStefano Babic * 13*4962e38eSStefano Babic * This program is distributed in the hope that it will be useful, 14*4962e38eSStefano Babic * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*4962e38eSStefano Babic * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*4962e38eSStefano Babic * GNU General Public License for more details. 17*4962e38eSStefano Babic * 18*4962e38eSStefano Babic * You should have received a copy of the GNU General Public License 19*4962e38eSStefano Babic * along with this program; if not, write to the Free Software 20*4962e38eSStefano Babic * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21*4962e38eSStefano Babic * MA 02111-1307 USA 22*4962e38eSStefano Babic */ 23*4962e38eSStefano Babic 24*4962e38eSStefano Babic #ifndef _AISIMAGE_H_ 25*4962e38eSStefano Babic #define _AISIMAGE_H_ 26*4962e38eSStefano Babic 27*4962e38eSStefano Babic /* all values are for little endian systems */ 28*4962e38eSStefano Babic #define AIS_MAGIC_WORD 0x41504954 29*4962e38eSStefano Babic #define AIS_FCN_MAX 8 30*4962e38eSStefano Babic 31*4962e38eSStefano Babic enum { 32*4962e38eSStefano Babic AIS_CMD_LOAD = 0x58535901, 33*4962e38eSStefano Babic AIS_CMD_VALCRC = 0x58535902, 34*4962e38eSStefano Babic AIS_CMD_ENCRC = 0x58535903, 35*4962e38eSStefano Babic AIS_CMD_DISCRC = 0x58535904, 36*4962e38eSStefano Babic AIS_CMD_JMP = 0x58535905, 37*4962e38eSStefano Babic AIS_CMD_JMPCLOSE = 0x58535906, 38*4962e38eSStefano Babic AIS_CMD_BOOTTBL = 0x58535907, 39*4962e38eSStefano Babic AIS_CMD_FILL = 0x5853590A, 40*4962e38eSStefano Babic AIS_CMD_FNLOAD = 0x5853590D, 41*4962e38eSStefano Babic AIS_CMD_SEQREAD = 0x58535963, 42*4962e38eSStefano Babic }; 43*4962e38eSStefano Babic 44*4962e38eSStefano Babic struct ais_cmd_load { 45*4962e38eSStefano Babic uint32_t cmd; 46*4962e38eSStefano Babic uint32_t addr; 47*4962e38eSStefano Babic uint32_t size; 48*4962e38eSStefano Babic uint32_t data[1]; 49*4962e38eSStefano Babic }; 50*4962e38eSStefano Babic 51*4962e38eSStefano Babic struct ais_cmd_func { 52*4962e38eSStefano Babic uint32_t cmd; 53*4962e38eSStefano Babic uint32_t func_args; 54*4962e38eSStefano Babic uint32_t parms[AIS_FCN_MAX]; 55*4962e38eSStefano Babic }; 56*4962e38eSStefano Babic 57*4962e38eSStefano Babic struct ais_cmd_jmpclose { 58*4962e38eSStefano Babic uint32_t cmd; 59*4962e38eSStefano Babic uint32_t addr; 60*4962e38eSStefano Babic }; 61*4962e38eSStefano Babic 62*4962e38eSStefano Babic #define CMD_DATA_STR "DATA" 63*4962e38eSStefano Babic 64*4962e38eSStefano Babic enum ais_file_cmd { 65*4962e38eSStefano Babic CMD_INVALID, 66*4962e38eSStefano Babic CMD_FILL, 67*4962e38eSStefano Babic CMD_CRCON, 68*4962e38eSStefano Babic CMD_CRCOFF, 69*4962e38eSStefano Babic CMD_CRCCHECK, 70*4962e38eSStefano Babic CMD_JMPCLOSE, 71*4962e38eSStefano Babic CMD_JMP, 72*4962e38eSStefano Babic CMD_SEQREAD, 73*4962e38eSStefano Babic CMD_DATA, 74*4962e38eSStefano Babic CMD_PLL0, 75*4962e38eSStefano Babic CMD_PLL1, 76*4962e38eSStefano Babic CMD_CLK, 77*4962e38eSStefano Babic CMD_DDR2, 78*4962e38eSStefano Babic CMD_EMIFA, 79*4962e38eSStefano Babic CMD_EMIFA_ASYNC, 80*4962e38eSStefano Babic CMD_PLL, 81*4962e38eSStefano Babic CMD_PSC, 82*4962e38eSStefano Babic CMD_PINMUX, 83*4962e38eSStefano Babic CMD_BOOTTABLE 84*4962e38eSStefano Babic }; 85*4962e38eSStefano Babic 86*4962e38eSStefano Babic enum aisimage_fld_types { 87*4962e38eSStefano Babic CFG_INVALID = -1, 88*4962e38eSStefano Babic CFG_COMMAND, 89*4962e38eSStefano Babic CFG_VALUE, 90*4962e38eSStefano Babic }; 91*4962e38eSStefano Babic 92*4962e38eSStefano Babic struct ais_header { 93*4962e38eSStefano Babic uint32_t magic; 94*4962e38eSStefano Babic char data[1]; 95*4962e38eSStefano Babic }; 96*4962e38eSStefano Babic 97*4962e38eSStefano Babic #endif /* _AISIMAGE_H_ */ 98