xref: /rk3399_ARM-atf/tools/renesas/rzg_layout_create/sa6.c (revision 6369498c0802f23bb27fbf00577a6c2e12b83975)
1*6369498cSBiju Das /*
2*6369498cSBiju Das  * Copyright (c) 2020, Renesas Electronics Corporation. All rights reserved.
3*6369498cSBiju Das  *
4*6369498cSBiju Das  * SPDX-License-Identifier: BSD-3-Clause
5*6369498cSBiju Das  */
6*6369498cSBiju Das 
7*6369498cSBiju Das #include <stdint.h>
8*6369498cSBiju Das 
9*6369498cSBiju Das #define RCAR_SA6_TYPE_QSPIFLASH		(0)
10*6369498cSBiju Das #define RCAR_SA6_TYPE_EMMC		(1)
11*6369498cSBiju Das 
12*6369498cSBiju Das #if (RCAR_SA6_TYPE == RCAR_SA6_TYPE_QSPIFLASH)
13*6369498cSBiju Das 
14*6369498cSBiju Das /* Number of content cert for Non-secure Target Program(BL33x) */
15*6369498cSBiju Das #define RCAR_IMAGE_NUM			(0x00000001U)
16*6369498cSBiju Das /* Source address on flash for BL31 */
17*6369498cSBiju Das #define RCAR_BL31SRC_ADDRESS		(0x001C0000U)
18*6369498cSBiju Das /* Reserved */
19*6369498cSBiju Das #define RCAR_BL31_PARTITION		(0x00000000U)
20*6369498cSBiju Das /* Source address on flash for BL32 */
21*6369498cSBiju Das #define RCAR_BL32SRC_ADDRESS		(0x00200000U)
22*6369498cSBiju Das /* Reserved */
23*6369498cSBiju Das #define RCAR_BL32_PARTITION		(0x00000000U)
24*6369498cSBiju Das /* Source address on flash for BL33 */
25*6369498cSBiju Das #define RCAR_BL33SRC_ADDRESS		(0x00300000U)
26*6369498cSBiju Das /* Reserved */
27*6369498cSBiju Das #define RCAR_BL33_PARTITION		(0x00000000U)
28*6369498cSBiju Das #define RCAR_BL332SRC_ADDRESS		(0x00000000U)
29*6369498cSBiju Das /* Reserved */
30*6369498cSBiju Das #define RCAR_BL332_PARTITION		(0x00000000U)
31*6369498cSBiju Das #define RCAR_BL333SRC_ADDRESS		(0x00000000U)
32*6369498cSBiju Das /* Reserved */
33*6369498cSBiju Das #define RCAR_BL333_PARTITION		(0x00000000U)
34*6369498cSBiju Das #define RCAR_BL334SRC_ADDRESS		(0x00000000U)
35*6369498cSBiju Das /* Reserved */
36*6369498cSBiju Das #define RCAR_BL334_PARTITION		(0x00000000U)
37*6369498cSBiju Das #define RCAR_BL335SRC_ADDRESS		(0x00000000U)
38*6369498cSBiju Das /* Reserved */
39*6369498cSBiju Das #define RCAR_BL335_PARTITION		(0x00000000U)
40*6369498cSBiju Das #define RCAR_BL336SRC_ADDRESS		(0x00000000U)
41*6369498cSBiju Das /* Reserved */
42*6369498cSBiju Das #define RCAR_BL336_PARTITION		(0x00000000U)
43*6369498cSBiju Das #define RCAR_BL337SRC_ADDRESS		(0x00000000U)
44*6369498cSBiju Das /* Reserved */
45*6369498cSBiju Das #define RCAR_BL337_PARTITION		(0x00000000U)
46*6369498cSBiju Das #define RCAR_BL338SRC_ADDRESS		(0x00000000U)
47*6369498cSBiju Das /* Reserved */
48*6369498cSBiju Das #define RCAR_BL338_PARTITION		(0x00000000U)
49*6369498cSBiju Das 
50*6369498cSBiju Das #else /* RCAR_SA6_TYPE == RCAR_SA6_TYPE_EMMC */
51*6369498cSBiju Das 
52*6369498cSBiju Das /* Number of content cert for Non-secure Target Program(BL33x) */
53*6369498cSBiju Das #define RCAR_IMAGE_NUM			(0x00000001U)
54*6369498cSBiju Das /* Source address on eMMC for BL31 */
55*6369498cSBiju Das #define RCAR_BL31SRC_ADDRESS		(0x00040000U)
56*6369498cSBiju Das /* Source partition on eMMC for BL31 */
57*6369498cSBiju Das #define RCAR_BL31_PARTITION		(0x00000001U)
58*6369498cSBiju Das /* Source address on eMMC for BL32 */
59*6369498cSBiju Das #define RCAR_BL32SRC_ADDRESS		(0x00200000U)
60*6369498cSBiju Das /* Source partition on eMMC for BL32 */
61*6369498cSBiju Das #define RCAR_BL32_PARTITION		(0x00000001U)
62*6369498cSBiju Das /* Source address on eMMC for BL33 */
63*6369498cSBiju Das #define RCAR_BL33SRC_ADDRESS		(0x00000000U)
64*6369498cSBiju Das /* Source partition on eMMC for BL33 */
65*6369498cSBiju Das #define RCAR_BL33_PARTITION		(0x00000002U)
66*6369498cSBiju Das /* Reserved */
67*6369498cSBiju Das #define RCAR_BL332SRC_ADDRESS		(0x00000000U)
68*6369498cSBiju Das #define RCAR_BL332_PARTITION		(0x00000000U)
69*6369498cSBiju Das /* Reserved */
70*6369498cSBiju Das #define RCAR_BL333SRC_ADDRESS		(0x00000000U)
71*6369498cSBiju Das #define RCAR_BL333_PARTITION		(0x00000000U)
72*6369498cSBiju Das /* Reserved */
73*6369498cSBiju Das #define RCAR_BL334SRC_ADDRESS		(0x00000000U)
74*6369498cSBiju Das #define RCAR_BL334_PARTITION		(0x00000000U)
75*6369498cSBiju Das /* Reserved */
76*6369498cSBiju Das #define RCAR_BL335SRC_ADDRESS		(0x00000000U)
77*6369498cSBiju Das #define RCAR_BL335_PARTITION		(0x00000000U)
78*6369498cSBiju Das /* Reserved */
79*6369498cSBiju Das #define RCAR_BL336SRC_ADDRESS		(0x00000000U)
80*6369498cSBiju Das #define RCAR_BL336_PARTITION		(0x00000000U)
81*6369498cSBiju Das /* Reserved */
82*6369498cSBiju Das #define RCAR_BL337SRC_ADDRESS		(0x00000000U)
83*6369498cSBiju Das #define RCAR_BL337_PARTITION		(0x00000000U)
84*6369498cSBiju Das /* Reserved */
85*6369498cSBiju Das #define RCAR_BL338SRC_ADDRESS		(0x00000000U)
86*6369498cSBiju Das #define RCAR_BL338_PARTITION		(0x00000000U)
87*6369498cSBiju Das 
88*6369498cSBiju Das #endif /* RCAR_SA6_TYPE == RCAR_SA6_TYPE_QSPIFLASH */
89*6369498cSBiju Das 
90*6369498cSBiju Das /* Destination address for BL31 */
91*6369498cSBiju Das #define RCAR_BL31DST_ADDRESS		(0x44000000U)
92*6369498cSBiju Das #define RCAR_BL31DST_ADDRESSH		(0x00000000U)
93*6369498cSBiju Das /* Destination size for BL31 */
94*6369498cSBiju Das #define RCAR_BL31DST_SIZE		(0x00004000U)
95*6369498cSBiju Das /* Destination address for BL32 */
96*6369498cSBiju Das #define RCAR_BL32DST_ADDRESS		(0x44100000U)
97*6369498cSBiju Das #define RCAR_BL32DST_ADDRESSH		(0x00000000U)
98*6369498cSBiju Das /* Destination size for BL32 */
99*6369498cSBiju Das #define RCAR_BL32DST_SIZE		(0x00040000U)
100*6369498cSBiju Das /* Destination address for BL33 */
101*6369498cSBiju Das #define RCAR_BL33DST_ADDRESS		(0x50000000U)
102*6369498cSBiju Das #define RCAR_BL33DST_ADDRESSH		(0x00000000U)
103*6369498cSBiju Das /* Destination size for BL33 */
104*6369498cSBiju Das #define RCAR_BL33DST_SIZE		(0x00040000U)
105*6369498cSBiju Das /* Reserved */
106*6369498cSBiju Das #define RCAR_BL332DST_ADDRESS		(0x00000000U)
107*6369498cSBiju Das #define RCAR_BL332DST_ADDRESSH		(0x00000000U)
108*6369498cSBiju Das #define RCAR_BL332DST_SIZE		(0x00000000U)
109*6369498cSBiju Das /* Reserved */
110*6369498cSBiju Das #define RCAR_BL333DST_ADDRESS		(0x00000000U)
111*6369498cSBiju Das #define RCAR_BL333DST_ADDRESSH		(0x00000000U)
112*6369498cSBiju Das #define RCAR_BL333DST_SIZE		(0x00000000U)
113*6369498cSBiju Das /* Reserved */
114*6369498cSBiju Das #define RCAR_BL334DST_ADDRESS		(0x00000000U)
115*6369498cSBiju Das #define RCAR_BL334DST_ADDRESSH		(0x00000000U)
116*6369498cSBiju Das #define RCAR_BL334DST_SIZE		(0x00000000U)
117*6369498cSBiju Das /* Reserved */
118*6369498cSBiju Das #define RCAR_BL335DST_ADDRESS		(0x00000000U)
119*6369498cSBiju Das #define RCAR_BL335DST_ADDRESSH		(0x00000000U)
120*6369498cSBiju Das #define RCAR_BL335DST_SIZE		(0x00000000U)
121*6369498cSBiju Das /* Reserved */
122*6369498cSBiju Das #define RCAR_BL336DST_ADDRESS		(0x00000000U)
123*6369498cSBiju Das #define RCAR_BL336DST_ADDRESSH		(0x00000000U)
124*6369498cSBiju Das #define RCAR_BL336DST_SIZE		(0x00000000U)
125*6369498cSBiju Das /* Reserved */
126*6369498cSBiju Das #define RCAR_BL337DST_ADDRESS		(0x00000000U)
127*6369498cSBiju Das #define RCAR_BL337DST_ADDRESSH		(0x00000000U)
128*6369498cSBiju Das #define RCAR_BL337DST_SIZE		(0x00000000U)
129*6369498cSBiju Das /* Reserved */
130*6369498cSBiju Das #define RCAR_BL338DST_ADDRESS		(0x00000000U)
131*6369498cSBiju Das #define RCAR_BL338DST_ADDRESSH		(0x00000000U)
132*6369498cSBiju Das #define RCAR_BL338DST_SIZE		(0x00000000U)
133*6369498cSBiju Das 
134*6369498cSBiju Das /* SA6 */
135*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_image_num")))
136*6369498cSBiju Das 				image_num	= RCAR_IMAGE_NUM;
137*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl31src_addr")))
138*6369498cSBiju Das 				bl31src_addr	= RCAR_BL31SRC_ADDRESS;
139*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl31partition")))
140*6369498cSBiju Das 				bl31partition	= RCAR_BL31_PARTITION;
141*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl32src_addr")))
142*6369498cSBiju Das 				bl32src_addr	= RCAR_BL32SRC_ADDRESS;
143*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl32partition")))
144*6369498cSBiju Das 				bl32partition	= RCAR_BL32_PARTITION;
145*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl33src_addr")))
146*6369498cSBiju Das 				bl33src_addr	= RCAR_BL33SRC_ADDRESS;
147*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl33partition")))
148*6369498cSBiju Das 				bl33partition	= RCAR_BL33_PARTITION;
149*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl332src_addr")))
150*6369498cSBiju Das 				bl332src_addr	= RCAR_BL332SRC_ADDRESS;
151*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl332partition")))
152*6369498cSBiju Das 				bl332partition	= RCAR_BL332_PARTITION;
153*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl333src_addr")))
154*6369498cSBiju Das 				bl333src_addr	= RCAR_BL333SRC_ADDRESS;
155*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl333partition")))
156*6369498cSBiju Das 				bl333partition	= RCAR_BL333_PARTITION;
157*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl334src_addr")))
158*6369498cSBiju Das 				bl334src_addr	= RCAR_BL334SRC_ADDRESS;
159*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl334partition")))
160*6369498cSBiju Das 				bl334partition	= RCAR_BL334_PARTITION;
161*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl335src_addr")))
162*6369498cSBiju Das 				bl335src_addr	= RCAR_BL335SRC_ADDRESS;
163*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl335partition")))
164*6369498cSBiju Das 				bl335partition	= RCAR_BL335_PARTITION;
165*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl336src_addr")))
166*6369498cSBiju Das 				bl336src_addr	= RCAR_BL336SRC_ADDRESS;
167*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl336partition")))
168*6369498cSBiju Das 				bl336partition	= RCAR_BL336_PARTITION;
169*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl337src_addr")))
170*6369498cSBiju Das 				bl337src_addr	= RCAR_BL337SRC_ADDRESS;
171*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl337partition")))
172*6369498cSBiju Das 				bl337partition	= RCAR_BL337_PARTITION;
173*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl338src_addr")))
174*6369498cSBiju Das 				bl338src_addr	= RCAR_BL338SRC_ADDRESS;
175*6369498cSBiju Das const uint64_t __attribute__ ((section(".sa6_bl338partition")))
176*6369498cSBiju Das 				bl338partition	= RCAR_BL338_PARTITION;
177*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl31dst_addr")))
178*6369498cSBiju Das 				bl31dst_addr	= RCAR_BL31DST_ADDRESS;
179*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl31dst_addrh")))
180*6369498cSBiju Das 				bl31dst_addrh	= RCAR_BL31DST_ADDRESSH;
181*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl31dst_size")))
182*6369498cSBiju Das 				bl31dst_size	= RCAR_BL31DST_SIZE;
183*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl32dst_addr")))
184*6369498cSBiju Das 				bl32dst_addr	= RCAR_BL32DST_ADDRESS;
185*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl32dst_addrh")))
186*6369498cSBiju Das 				bl32dst_addrh	= RCAR_BL32DST_ADDRESSH;
187*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl32dst_size")))
188*6369498cSBiju Das 				bl32dst_size	= RCAR_BL32DST_SIZE;
189*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl33dst_addr")))
190*6369498cSBiju Das 				bl33dst_addr	= RCAR_BL33DST_ADDRESS;
191*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl33dst_addrh")))
192*6369498cSBiju Das 				bl33dst_addrh	= RCAR_BL33DST_ADDRESSH;
193*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl33dst_size")))
194*6369498cSBiju Das 				bl33dst_size	= RCAR_BL33DST_SIZE;
195*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl332dst_addr")))
196*6369498cSBiju Das 				bl332dst_addr	= RCAR_BL332DST_ADDRESS;
197*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl332dst_addrh")))
198*6369498cSBiju Das 				bl332dst_addrh	= RCAR_BL332DST_ADDRESSH;
199*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl332dst_size")))
200*6369498cSBiju Das 				bl332dst_size	= RCAR_BL332DST_SIZE;
201*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl333dst_addr")))
202*6369498cSBiju Das 				bl333dst_addr	= RCAR_BL333DST_ADDRESS;
203*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl333dst_addrh")))
204*6369498cSBiju Das 				bl333dst_addrh	= RCAR_BL333DST_ADDRESSH;
205*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl333dst_size")))
206*6369498cSBiju Das 				bl333dst_size	= RCAR_BL333DST_SIZE;
207*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl334dst_addr")))
208*6369498cSBiju Das 				bl334dst_addr	= RCAR_BL334DST_ADDRESS;
209*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl334dst_addrh")))
210*6369498cSBiju Das 				bl334dst_addrh	= RCAR_BL334DST_ADDRESSH;
211*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl334dst_size")))
212*6369498cSBiju Das 				bl334dst_size	= RCAR_BL334DST_SIZE;
213*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl335dst_addr")))
214*6369498cSBiju Das 				bl335dst_addr	= RCAR_BL335DST_ADDRESS;
215*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl335dst_addrh")))
216*6369498cSBiju Das 				bl335dst_addrh	= RCAR_BL335DST_ADDRESSH;
217*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl335dst_size")))
218*6369498cSBiju Das 				bl335dst_size	= RCAR_BL335DST_SIZE;
219*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl336dst_addr")))
220*6369498cSBiju Das 				bl336dst_addr	= RCAR_BL336DST_ADDRESS;
221*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl336dst_addrh")))
222*6369498cSBiju Das 				bl336dst_addrh	= RCAR_BL336DST_ADDRESSH;
223*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl336dst_size")))
224*6369498cSBiju Das 				bl336dst_size	= RCAR_BL336DST_SIZE;
225*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl337dst_addr")))
226*6369498cSBiju Das 				bl337dst_addr	= RCAR_BL337DST_ADDRESS;
227*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl337dst_addrh")))
228*6369498cSBiju Das 				bl337dst_addrh	= RCAR_BL337DST_ADDRESSH;
229*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl337dst_size")))
230*6369498cSBiju Das 				bl337dst_size	= RCAR_BL337DST_SIZE;
231*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl338dst_addr")))
232*6369498cSBiju Das 				bl338dst_addr	= RCAR_BL338DST_ADDRESS;
233*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl338dst_addrh")))
234*6369498cSBiju Das 				bl338dst_addrh	= RCAR_BL338DST_ADDRESSH;
235*6369498cSBiju Das const uint32_t __attribute__ ((section(".sa6_bl338dst_size")))
236*6369498cSBiju Das 				bl338dst_size	= RCAR_BL338DST_SIZE;
237