xref: /rk3399_rockchip-uboot/drivers/cpu/amp.its (revision 1dc5141f2c2bbbaff1a2e6205aa1200c360f0e05)
131f8f6ebSJoseph Chen/*
231f8f6ebSJoseph Chen * Copyright (C) 2021 Fuzhou Rockchip Electronics Co., Ltd
3b8fb8531SJoseph Chen *
431f8f6ebSJoseph Chen * SPDX-License-Identifier: GPL-2.0
531f8f6ebSJoseph Chen */
631f8f6ebSJoseph Chen
731f8f6ebSJoseph Chen/dts-v1/;
831f8f6ebSJoseph Chen/ {
9b8fb8531SJoseph Chen	description = "Rockchip AMP FIT Image";
1031f8f6ebSJoseph Chen	#address-cells = <1>;
1131f8f6ebSJoseph Chen
1231f8f6ebSJoseph Chen	images {
13b8fb8531SJoseph Chen		/* ARM cortex-A core */
1431f8f6ebSJoseph Chen		amp1 {
1531f8f6ebSJoseph Chen			description  = "bare-mental-core1";
16bb4a1f43SJoseph Chen			data         = /incbin/("./amp1.bin");
17b8fb8531SJoseph Chen			type         = "firmware";	// must be "firmware"
1831f8f6ebSJoseph Chen			compression  = "none";
19b8fb8531SJoseph Chen			arch         = "arm";		// "arm64" or "arm", the same as U-Boot state
20bb4a1f43SJoseph Chen			cpu          = <0x100>;		// mpidr
21bb4a1f43SJoseph Chen			thumb        = <0>;		// 0: arm or thumb2; 1: thumb
22bb4a1f43SJoseph Chen			hyp          = <0>;		// 0: el1/svc; 1: el2/hyp
23bbbdc31fSSteven Liu			load         = <0x01800000>;
24610d16c9SSteven Liu			udelay       = <1000000>;
2531f8f6ebSJoseph Chen			hash {
2631f8f6ebSJoseph Chen				algo = "sha256";
2731f8f6ebSJoseph Chen			};
2831f8f6ebSJoseph Chen		};
2931f8f6ebSJoseph Chen
3031f8f6ebSJoseph Chen		amp2 {
3131f8f6ebSJoseph Chen			description  = "bare-mental-core2";
32bb4a1f43SJoseph Chen			data         = /incbin/("./amp2.bin");
3331f8f6ebSJoseph Chen			type         = "firmware";
3431f8f6ebSJoseph Chen			compression  = "none";
35c51cf040SJoseph Chen			arch         = "arm";
3631f8f6ebSJoseph Chen			cpu          = <0x200>;
3731f8f6ebSJoseph Chen			thumb        = <0>;
3831f8f6ebSJoseph Chen			hyp          = <0>;
39bbbdc31fSSteven Liu			load         = <0x03800000>;
40610d16c9SSteven Liu			udelay       = <1000000>;
4131f8f6ebSJoseph Chen			hash {
4231f8f6ebSJoseph Chen				algo = "sha256";
4331f8f6ebSJoseph Chen			};
4431f8f6ebSJoseph Chen		};
4531f8f6ebSJoseph Chen
4631f8f6ebSJoseph Chen		amp3 {
4731f8f6ebSJoseph Chen			description  = "bare-mental-core3";
48bb4a1f43SJoseph Chen			data         = /incbin/("./amp3.bin");
4931f8f6ebSJoseph Chen			type         = "firmware";
5031f8f6ebSJoseph Chen			compression  = "none";
51c51cf040SJoseph Chen			arch         = "arm";
5231f8f6ebSJoseph Chen			cpu          = <0x300>;
5331f8f6ebSJoseph Chen			thumb        = <0>;
5431f8f6ebSJoseph Chen			hyp          = <0>;
55bbbdc31fSSteven Liu			load         = <0x05800000>;
56610d16c9SSteven Liu			udelay       = <1000000>;
5731f8f6ebSJoseph Chen			hash {
5831f8f6ebSJoseph Chen				algo = "sha256";
5931f8f6ebSJoseph Chen			};
6031f8f6ebSJoseph Chen		};
61b8fb8531SJoseph Chen
62b8fb8531SJoseph Chen		/* Other core */
63b8fb8531SJoseph Chen		amp4 {
64b8fb8531SJoseph Chen			description  = "standalone-mcu1";
65b8fb8531SJoseph Chen			data         = /incbin/("./mcu1.bin");
66b8fb8531SJoseph Chen			type         = "standalone";	// must be "standalone"
67b8fb8531SJoseph Chen			compression  = "none";
68b8fb8531SJoseph Chen			arch         = "arm";		// "arm64" or "arm", the same as U-Boot state
69b8fb8531SJoseph Chen			load         = <0x06800000>;
70b8fb8531SJoseph Chen			udelay       = <1000000>;
71b8fb8531SJoseph Chen			hash {
72b8fb8531SJoseph Chen				algo = "sha256";
73b8fb8531SJoseph Chen			};
74b8fb8531SJoseph Chen		};
7531f8f6ebSJoseph Chen	};
7631f8f6ebSJoseph Chen
7731f8f6ebSJoseph Chen	configurations {
7831f8f6ebSJoseph Chen		default = "conf";
7931f8f6ebSJoseph Chen		conf {
8031f8f6ebSJoseph Chen			description = "Rockchip AMP images";
8131f8f6ebSJoseph Chen			rollback-index = <0x0>;
82b8fb8531SJoseph Chen			loadables = "amp1", "amp2", "amp3", "amp4";
8331f8f6ebSJoseph Chen
8431f8f6ebSJoseph Chen			signature {
8531f8f6ebSJoseph Chen				algo = "sha256,rsa2048";
8631f8f6ebSJoseph Chen				padding = "pss";
8731f8f6ebSJoseph Chen				key-name-hint = "dev";
8831f8f6ebSJoseph Chen				sign-images = "loadables";
8931f8f6ebSJoseph Chen			};
90bb4a1f43SJoseph Chen
91bb4a1f43SJoseph Chen			/* - run linux on cpu0
92bb4a1f43SJoseph Chen			 * - it is brought up by amp(that run on U-Boot)
93bb4a1f43SJoseph Chen			 * - it is boot entry depends on U-Boot
94bb4a1f43SJoseph Chen			 */
95bb4a1f43SJoseph Chen			linux {
96bb4a1f43SJoseph Chen				description  = "linux-os";
97bb4a1f43SJoseph Chen				arch         = "arm64";
98bb4a1f43SJoseph Chen				cpu          = <0x000>;
99bb4a1f43SJoseph Chen				thumb        = <0>;
100bb4a1f43SJoseph Chen				hyp          = <0>;
101bb4a1f43SJoseph Chen				udelay       = <1000000>;
102*1dc5141fSJoseph Chen				load         = <0x2000000>; // optional
103*1dc5141fSJoseph Chen				load_c       = <0x4000000>; // optional
104bb4a1f43SJoseph Chen			};
10531f8f6ebSJoseph Chen		};
10631f8f6ebSJoseph Chen	};
10731f8f6ebSJoseph Chen};
108