blob: 758c8bf6ea168a0ddac942575705d019b53d0f3c [file] [log] [blame]
Neha Malcom Francis45140f02023-07-22 00:14:26 +05301// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
4 */
5
Manorit Chawdhry6f2fad62023-12-29 16:16:28 +05306#include "k3-security.h"
7
Neha Malcom Francis45140f02023-07-22 00:14:26 +05308/ {
9 binman: binman {
10 multiple-images;
11 };
12};
13
14&binman {
15 custMpk {
16 filename = "custMpk.pem";
Marcel Ziswiler060d30f2023-08-04 12:08:07 +020017 custmpk_pem: blob-ext {
Nishanth Menon150e41d2023-11-03 21:45:11 -050018 filename = "arch/arm/mach-k3/keys/custMpk.pem";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053019 };
20 };
21
22 ti-degenerate-key {
23 filename = "ti-degenerate-key.pem";
Marcel Ziswiler060d30f2023-08-04 12:08:07 +020024 dkey_pem: blob-ext {
Nishanth Menon6725ec72023-11-03 21:45:10 -050025 filename = "arch/arm/mach-k3/keys/ti-degenerate-key.pem";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053026 };
27 };
28};
29
30#ifndef CONFIG_ARM64
31
32&binman {
33 board-cfg {
34 filename = "board-cfg.bin";
35 bcfg_yaml: ti-board-config {
36 config = "board-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060037 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053038 };
39 };
40 pm-cfg {
41 filename = "pm-cfg.bin";
Marcel Ziswiler060d30f2023-08-04 12:08:07 +020042 pcfg_yaml: ti-board-config {
Neha Malcom Francis45140f02023-07-22 00:14:26 +053043 config = "pm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060044 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053045 };
46 };
47 rm-cfg {
48 filename = "rm-cfg.bin";
Marcel Ziswiler060d30f2023-08-04 12:08:07 +020049 rcfg_yaml: ti-board-config {
Neha Malcom Francis45140f02023-07-22 00:14:26 +053050 config = "rm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060051 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053052 };
53 };
54 sec-cfg {
55 filename = "sec-cfg.bin";
56 scfg_yaml: ti-board-config {
57 config = "sec-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060058 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053059 };
60 };
61 combined-tifs-cfg {
62 filename = "combined-tifs-cfg.bin";
63 ti-board-config {
64 bcfg_yaml_tifs: board-cfg {
65 config = "board-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060066 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053067 };
68 scfg_yaml_tifs: sec-cfg {
69 config = "sec-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060070 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053071 };
72 pcfg_yaml_tifs: pm-cfg {
73 config = "pm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060074 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053075 };
76 rcfg_yaml_tifs: rm-cfg {
77 config = "rm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060078 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053079 };
80 };
81 };
82 combined-dm-cfg {
83 filename = "combined-dm-cfg.bin";
84 ti-board-config {
85 pcfg_yaml_dm: pm-cfg {
86 config = "pm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060087 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053088 };
89 rcfg_yaml_dm: rm-cfg {
90 config = "rm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -060091 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +053092 };
93 };
94 };
95 combined-sysfw-cfg {
96 filename = "combined-sysfw-cfg.bin";
97 ti-board-config {
Marcel Ziswiler060d30f2023-08-04 12:08:07 +020098 bcfg_yaml_sysfw: board-cfg {
Neha Malcom Francis45140f02023-07-22 00:14:26 +053099 config = "board-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -0600100 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530101 };
Marcel Ziswiler060d30f2023-08-04 12:08:07 +0200102 scfg_yaml_sysfw: sec-cfg {
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530103 config = "sec-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -0600104 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530105 };
Marcel Ziswiler060d30f2023-08-04 12:08:07 +0200106 pcfg_yaml_sysfw: pm-cfg {
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530107 config = "pm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -0600108 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530109 };
Marcel Ziswiler060d30f2023-08-04 12:08:07 +0200110 rcfg_yaml_sysfw: rm-cfg {
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530111 config = "rm-cfg.yaml";
Andrew Davis430281d2023-11-22 15:30:05 -0600112 schema = "arch/arm/mach-k3/schema.yaml";
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530113 };
114 };
115 };
116};
117
Neha Malcom Francis86b363d2023-11-15 15:40:23 +0530118&binman {
119 itb_template: template-5 {
120 fit {
121 description = "SYSFW and Config fragments";
122 #address-cells = <1>;
123 images {
124 sysfw.bin {
125 description = "sysfw";
126 type = "firmware";
127 arch = "arm";
128 compression = "none";
129 blob-ext {
130 filename = "sysfw.bin";
131 };
132 };
133 board-cfg.bin {
134 description = "board-cfg";
135 type = "firmware";
136 arch = "arm";
137 compression = "none";
138 ti-secure {
139 content = <&board_cfg>;
140 keyfile = "custMpk.pem";
141 };
142 board_cfg: board-cfg {
143 filename = "board-cfg.bin";
144 type = "blob-ext";
145 };
146
147 };
148 pm-cfg.bin {
149 description = "pm-cfg";
150 type = "firmware";
151 arch = "arm";
152 compression = "none";
153 ti-secure {
154 content = <&pm_cfg>;
155 keyfile = "custMpk.pem";
156 };
157 pm_cfg: pm-cfg {
158 filename = "pm-cfg.bin";
159 type = "blob-ext";
160 };
161 };
162 rm-cfg.bin {
163 description = "rm-cfg";
164 type = "firmware";
165 arch = "arm";
166 compression = "none";
167 ti-secure {
168 content = <&rm_cfg>;
169 keyfile = "custMpk.pem";
170 };
171 rm_cfg: rm-cfg {
172 filename = "rm-cfg.bin";
173 type = "blob-ext";
174 };
175 };
176 sec-cfg.bin {
177 description = "sec-cfg";
178 type = "firmware";
179 arch = "arm";
180 compression = "none";
181 ti-secure {
182 content = <&sec_cfg>;
183 keyfile = "custMpk.pem";
184 };
185 sec_cfg: sec-cfg {
186 filename = "sec-cfg.bin";
187 type = "blob-ext";
188 };
189 };
190 };
191 };
192 };
193
194 itb_unsigned_template: template-6 {
195 fit {
196 description = "SYSFW and Config fragments";
197 #address-cells = <1>;
198 images {
199 sysfw.bin {
200 description = "sysfw";
201 type = "firmware";
202 arch = "arm";
203 compression = "none";
204 blob-ext {
205 filename = "sysfw.bin_fs";
206 };
207 };
208 board-cfg.bin {
209 description = "board-cfg";
210 type = "firmware";
211 arch = "arm";
212 compression = "none";
213 board-cfg {
214 filename = "board-cfg.bin";
215 type = "blob-ext";
216 };
217
218 };
219 pm-cfg.bin {
220 description = "pm-cfg";
221 type = "firmware";
222 arch = "arm";
223 compression = "none";
224 pm-cfg {
225 filename = "pm-cfg.bin";
226 type = "blob-ext";
227 };
228 };
229 rm-cfg.bin {
230 description = "rm-cfg";
231 type = "firmware";
232 arch = "arm";
233 compression = "none";
234 rm-cfg {
235 filename = "rm-cfg.bin";
236 type = "blob-ext";
237 };
238 };
239 sec-cfg.bin {
240 description = "sec-cfg";
241 type = "firmware";
242 arch = "arm";
243 compression = "none";
244 sec-cfg {
245 filename = "sec-cfg.bin";
246 type = "blob-ext";
247 };
248 };
249 };
250 };
251 };
252};
253
254#else
255
256&binman {
257 ti_spl_template: template-1 {
258 filename = "tispl.bin";
259 pad-byte = <0xff>;
260
261 fit {
262 description = "Configuration to load ATF and SPL";
263 #address-cells = <1>;
264
265 images {
266
267 atf {
268 description = "ARM Trusted Firmware";
269 type = "firmware";
270 arch = "arm64";
271 compression = "none";
272 os = "arm-trusted-firmware";
273 load = <CONFIG_K3_ATF_LOAD_ADDR>;
274 entry = <CONFIG_K3_ATF_LOAD_ADDR>;
275 ti-secure {
276 content = <&atf>;
277 keyfile = "custMpk.pem";
278 };
279 atf: atf-bl31 {
280 };
281 };
282
283 tee {
284 description = "OP-TEE";
285 type = "tee";
286 arch = "arm64";
287 compression = "none";
288 os = "tee";
289 load = <0x9e800000>;
290 entry = <0x9e800000>;
291 ti-secure {
292 content = <&tee>;
293 keyfile = "custMpk.pem";
294 };
295 tee: tee-os {
296 };
297 };
298
299 dm {
300 description = "DM binary";
301 type = "firmware";
302 arch = "arm32";
303 compression = "none";
304 os = "DM";
305 load = <0x89000000>;
306 entry = <0x89000000>;
307 };
308
309 spl {
310 description = "SPL (64-bit)";
311 type = "standalone";
312 os = "U-Boot";
313 arch = "arm64";
314 compression = "none";
315 load = <CONFIG_SPL_TEXT_BASE>;
316 entry = <CONFIG_SPL_TEXT_BASE>;
317 ti-secure {
318 content = <&u_boot_spl_nodtb>;
319 keyfile = "custMpk.pem";
320
321 };
322 u_boot_spl_nodtb: blob-ext {
323 filename = "spl/u-boot-spl-nodtb.bin";
324 };
325 };
326
327 };
328 };
329 };
330 ti_spl_unsigned_template: template-2 {
331 filename = "tispl.bin_unsigned";
332 pad-byte = <0xff>;
333
334 fit {
335 description = "Configuration to load ATF and SPL";
336 #address-cells = <1>;
337
338 images {
339
340 atf {
341 description = "ARM Trusted Firmware";
342 type = "firmware";
343 arch = "arm64";
344 compression = "none";
345 os = "arm-trusted-firmware";
346 load = <CONFIG_K3_ATF_LOAD_ADDR>;
347 entry = <CONFIG_K3_ATF_LOAD_ADDR>;
348 atf-bl31 {
349 filename = "bl31.bin";
350 };
351 };
352
353 tee {
354 description = "OP-TEE";
355 type = "tee";
356 arch = "arm64";
357 compression = "none";
358 os = "tee";
359 load = <0x9e800000>;
360 entry = <0x9e800000>;
361 tee-os {
362 filename = "tee-raw.bin";
363 };
364 };
365
366 dm {
367 description = "DM binary";
368 type = "firmware";
369 arch = "arm32";
370 compression = "none";
371 os = "DM";
372 load = <0x89000000>;
373 entry = <0x89000000>;
374 };
375
376 spl {
377 description = "SPL (64-bit)";
378 type = "standalone";
379 os = "U-Boot";
380 arch = "arm64";
381 compression = "none";
382 load = <CONFIG_SPL_TEXT_BASE>;
383 entry = <CONFIG_SPL_TEXT_BASE>;
384 blob-ext {
385 filename = "spl/u-boot-spl-nodtb.bin";
386 };
387 };
388 };
389 };
390 };
391 u_boot_template: template-3 {
392 filename = "u-boot.img";
393 pad-byte = <0xff>;
394
395 fit {
396 description = "FIT image with multiple configurations";
397
398 images {
399 uboot {
400 type = "firmware";
401 os = "u-boot";
402 arch = "arm";
403 compression = "none";
404 load = <CONFIG_TEXT_BASE>;
405 ti-secure {
406 content = <&u_boot_nodtb>;
407 keyfile = "custMpk.pem";
408 };
409 u_boot_nodtb: u-boot-nodtb {
410 };
411 hash {
412 algo = "crc32";
413 };
414 };
415 };
416 };
417 };
418 u_boot_unsigned_template: template-4 {
419 filename = "u-boot.img_unsigned";
420 pad-byte = <0xff>;
421
422 fit {
423 description = "FIT image with multiple configurations";
424
425 images {
426 uboot {
427 type = "firmware";
428 os = "u-boot";
429 arch = "arm";
430 compression = "none";
431 load = <CONFIG_TEXT_BASE>;
432 blob {
433 filename = "u-boot-nodtb.bin";
434 };
435 hash {
436 algo = "crc32";
437 };
438 };
439 };
440 };
441 };
Manorit Chawdhry6f2fad62023-12-29 16:16:28 +0530442 firewall_bg_1: template-5 {
443 control = <(FWCTRL_EN | FWCTRL_LOCK |
444 FWCTRL_BG | FWCTRL_CACHE)>;
445 permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
446 FWPERM_SECURE_PRIV_RWCD |
447 FWPERM_SECURE_USER_RWCD |
448 FWPERM_NON_SECURE_PRIV_RWCD |
449 FWPERM_NON_SECURE_USER_RWCD)>;
450 start_address = <0x0 0x0>;
451 end_address = <0xff 0xffffffff>;
452 };
453 firewall_bg_3: template-6 {
454 insert-template = <&firewall_bg_1>;
455 permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
456 FWPERM_SECURE_PRIV_RWCD |
457 FWPERM_SECURE_USER_RWCD |
458 FWPERM_NON_SECURE_PRIV_RWCD |
459 FWPERM_NON_SECURE_USER_RWCD)>,
460 <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
461 FWPERM_SECURE_PRIV_RWCD |
462 FWPERM_SECURE_USER_RWCD |
463 FWPERM_NON_SECURE_PRIV_RWCD |
464 FWPERM_NON_SECURE_USER_RWCD)>,
465 <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
466 FWPERM_SECURE_PRIV_RWCD |
467 FWPERM_SECURE_USER_RWCD |
468 FWPERM_NON_SECURE_PRIV_RWCD |
469 FWPERM_NON_SECURE_USER_RWCD)>;
470 };
471 firewall_armv8_atf_fg: template-7 {
472 control = <(FWCTRL_EN | FWCTRL_LOCK |
473 FWCTRL_CACHE)>;
474 permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
475 FWPERM_SECURE_PRIV_RWCD |
476 FWPERM_SECURE_USER_RWCD)>;
477 start_address = <0x0 0x70000000>;
478 end_address = <0x0 0x7001ffff>;
479 };
480 firewall_armv8_optee_fg: template-8 {
481 control = <(FWCTRL_EN | FWCTRL_LOCK |
482 FWCTRL_CACHE)>;
483 permissions = <((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
484 FWPERM_SECURE_PRIV_RWCD |
485 FWPERM_SECURE_USER_RWCD)>;
486 start_address = <0x0 0x9e800000>;
487 end_address = <0x0 0x9fffffff>;
488 };
Neha Malcom Francis86b363d2023-11-15 15:40:23 +0530489
490};
491
Neha Malcom Francis45140f02023-07-22 00:14:26 +0530492#endif