xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-rockchip/boot0.h (revision 733d51d5a7b2cc3e474f4230ed87302b14b826a9)
1 /*
2  * Copyright 2017 Theobroma Systems Design und Consulting GmbH
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 /*
8  * Execution starts on the instruction following this 4-byte header
9  * (containing the magic 'RK33').
10  *
11  * To make life easier for everyone, we build the SPL binary with
12  * space for this 4-byte header already included in the binary.
13  */
14 
15 #ifdef CONFIG_SPL_BUILD
16 	/*
17 	 * We need to add 4 bytes of space for the 'RK33' at the
18 	 * beginning of the executable.	 However, as we want to keep
19 	 * this generic and make it applicable to builds that are like
20 	 * the RK3368 (TPL needs this, SPL doesn't) or the RK3399 (no
21 	 * TPL, but extra space needed in the SPL), we simply repeat
22 	 * the 'b reset' with the expectation that the first one will
23 	 * be overwritten, if this is the first stage contained in the
24 	 * final image created with mkimage)...
25 	 */
26 	b reset	 /* may be overwritten --- should be 'nop' or a 'b reset' */
27 #endif
28 	b reset
29 
30 #if defined(CONFIG_ROCKCHIP_RK3399) && defined(CONFIG_SPL_BUILD)
31 	.space CONFIG_ROCKCHIP_SPL_RESERVE_IRAM	/* space for the ATF data */
32 #endif
33