xref: /openbmc/u-boot/tools/aisimage.h (revision e8f80a5a)
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