1# Copyright 2023 The Hafnium Authors.
2#
3# Use of this source code is governed by a BSD-style
4# license that can be found in the LICENSE file or at
5# https://opensource.org/licenses/BSD-3-Clause.
6
7import("//build/image/image.gni")
8import("//test/hftest/args.gni")
9
10config("config") {
11  include_dirs = [
12    "inc",
13    "//test/vmapi/common/arch/aarch64/secure/inc/",
14  ]
15}
16
17source_set("message_loop") {
18  testonly = true
19  public_configs = [
20    ":config",
21    "//test/hftest:hftest_config",
22    "//src/arch/aarch64:arch_config",
23  ]
24  sources = [ "message_loop.c" ]
25  deps = [ "//test/vmapi/common:ffa" ]
26}
27
28source_set("secure_interrupts") {
29  testonly = true
30  public_configs = [
31    ":config",
32    "//test/hftest:hftest_config",
33    "//src/arch/aarch64:arch_config",
34    "//src/arch/aarch64:config",
35  ]
36  sources = [ "secure_interrupts.c" ]
37  deps = [
38    "//src/arch/aarch64:smc",
39    "//test/vmapi/common:ffa",
40    "//test/vmapi/common/arch/aarch64/secure:sp805",
41  ]
42}
43
44vm_kernel("secure_service") {
45  testonly = true
46  deps = [
47    ":message_loop",
48    ":secure_interrupts",
49    "//src/arch/aarch64/hftest:interrupts",
50    "//src/arch/aarch64/hftest:mm",
51    "//test/hftest:hftest_secure_service",
52    "//test/vmapi/common/arch/aarch64:exception_handler",
53    "//test/vmapi/primary_with_secondaries:primary_with_secondaries",
54    "//test/vmapi/primary_with_secondaries/services:boot",
55    "//test/vmapi/primary_with_secondaries/services:echo",
56    "//test/vmapi/primary_with_secondaries/services:ffa_check",
57    "//test/vmapi/primary_with_secondaries/services:memory",
58    "//test/vmapi/primary_with_secondaries/services:relay",
59    "//test/vmapi/primary_with_secondaries/services:smccc",
60    "//vmlib/${plat_arch}:call",
61  ]
62}
63
64manifest("partition_manifest_service_sp1") {
65  source = "partition_manifest_service_sp1.dts"
66  output = "partition_manifest_service_sp1.dtb"
67}
68
69manifest("partition_manifest_service_sp2") {
70  source = "partition_manifest_service_sp2.dts"
71  output = "partition_manifest_service_sp2.dtb"
72}
73
74manifest("partition_manifest_service_sp3") {
75  source = "partition_manifest_service_sp3.dts"
76  output = "partition_manifest_service_sp3.dtb"
77}
78
79# Partition using FF-A v1.1 for use in backwards compatibility tests.
80manifest("partition_manifest_service_sp4") {
81  source = "partition_manifest_service_sp4.dts"
82  output = "partition_manifest_service_sp4.dtb"
83}
84
85partition_package("service_sp1_partition_package") {
86  testonly = true
87  pm_offset = "0x1000"
88  img_offset = "0x2000"
89  files = [ [
90        "partition_manifest_service_sp1.dtb",
91        "secure_service.bin",
92        ":partition_manifest_service_sp1",
93        ":secure_service",
94      ] ]
95  output = "service_sp1_partition_package.img"
96}
97
98partition_package("service_sp2_partition_package") {
99  testonly = true
100  pm_offset = "0x1000"
101  img_offset = "0x2000"
102  files = [ [
103        "partition_manifest_service_sp2.dtb",
104        "secure_service.bin",
105        ":partition_manifest_service_sp2",
106        ":secure_service",
107      ] ]
108  output = "service_sp2_partition_package.img"
109}
110
111partition_package("service_sp3_partition_package") {
112  testonly = true
113  pm_offset = "0x1000"
114  img_offset = "0x2000"
115  files = [ [
116        "partition_manifest_service_sp3.dtb",
117        "secure_service.bin",
118        ":partition_manifest_service_sp3",
119        ":secure_service",
120      ] ]
121  output = "service_sp3_partition_package.img"
122}
123
124partition_package("service_sp4_partition_package") {
125  testonly = true
126  pm_offset = "0x1000"
127  img_offset = "0x2000"
128  files = [ [
129        "partition_manifest_service_sp4.dtb",
130        "secure_service.bin",
131        ":partition_manifest_service_sp4",
132        ":secure_service",
133      ] ]
134  output = "service_sp4_partition_package.img"
135}
136