aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-oxnas/src/board/ox820/spl_start.S
blob: 2eab3f56d8056da593f894d62e0fb2c85060b7f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.section .init
.globl _spl_start
_spl_start:
	b	_start
	b	_start+0x4
	b	_start+0x8
	b	_start+0xc
	b	_start+0x10
	b	_start+0x14
	b	_start+0x18
	b	_start+0x1c
	.space	0x30 - (. - _spl_start)
	.ascii	"BOOT"		/* 0x30 signature*/
	.word	0x50		/* 0x34 header size itself */
	.word	0		/* 0x38 */
	.word	0x5000f000	/* boot report location */
	.word	_start		/* 0x40 */

main_crc_size:	.word	code_size	/* 0x44 filled by linker */
main_crc:	.word	0		/* 0x48 fill later */
header_crc:	.word	0		/* 0x4C header crc*/
UT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the GNU C Library; if not, write to the Free * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307 USA. */ #ifndef __SEAMA_HEADER_FILE__ #define __SEAMA_HEADER_FILE__ #include <stdint.h> #define SEAMA_MAGIC 0x5EA3A417 /* * SEAMA looks like the following map. * All the data of the header should be in network byte order. * * +-------------+-------------+------------ * | SEAMA magic | ^ * +-------------+-------------+ | * | reserved | meta size | | * +-------------+-------------+ header * | image size (0 bytes) | | * +-------------+-------------+ | * ~ Meta data ~ v * +-------------+-------------+------------ * | SEAMA magic | ^ ^ * +-------------+-------------+ | | * | reserved | meta size | | | * +-------------+-------------+ | | * | image size | | | * +-------------+-------------+ header | * | | | | * | 16 bytes of MD5 digest | | | * | | | | * | | | | * +-------------+-------------+ | | * ~ Meta data ~ v | * +-------------+-------------+------- | * | | | * | Image of the 1st entity | | * ~ ~ 1st entity * | | | * | | v * +-------------+-------------+------------- * | SEAMA magic | ^ ^ * +-------------+-------------+ | | * | reserved | meta size | | | * +-------------+-------------+ | | * | image size | | | * +-------------+-------------+ header | * | | | | * | 16 bytes of MD5 digest | | | * | | | | * | | | | * +-------------+-------------+ | | * ~ Meta data ~ v | * +-------------+-------------+------- | * | | | * | Image of the 2nd entity | | * ~ ~ 2nd entity * | | | * | | v * +-------------+-------------+------------- */ /* * SEAMA header * * |<-------- 32 bits -------->| * +-------------+-------------+ * | SEAMA magic | * +-------------+-------------+ * | reserved | meta size | * +-------------+-------------+ * | image size | * +-------------+-------------+ */ /* seama header */ typedef struct seama_hdr seamahdr_t; struct seama_hdr { uint32_t magic; /* should always be SEAMA_MAGIC. */ uint16_t reserved; /* reserved for */ uint16_t metasize; /* size of the META data */ uint32_t size; /* size of the image */ } __attribute__ ((packed)); #endif