blob: 4cf11b69f8684093b8e11703a61f7646a1727878 [file] [log] [blame]
Andrew Walbrandc8ad202019-03-07 15:49:28 +00001# Copyright 2018 The Hafnium Authors.
Andrew Scull2d527c22018-11-27 14:21:08 +00002#
Andrew Walbran23417d82020-06-17 14:44:22 +01003# 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.
Andrew Scull2d527c22018-11-27 14:21:08 +00006
7import("//build/toolchain/embedded.gni")
8import("//build/toolchain/host.gni")
9
Andrew Scull2d527c22018-11-27 14:21:08 +000010group("root") {
11 deps = [
12 "//src:hafnium(:aem_v8a_fvp_clang)",
David Brazdilc702a032020-01-31 15:44:11 +000013 "//src:hafnium(:android_aarch64_clang)",
Andrew Scull2d527c22018-11-27 14:21:08 +000014 "//src:hafnium(:qemu_aarch64_clang)",
David Brazdil3d7b88b2019-07-22 17:19:35 +010015 "//src:hafnium(:rpi4_clang)",
Jose Marinho69cd27d2019-10-17 15:51:31 +010016 "//src:hafnium(:secure_aem_v8a_fvp_clang)",
Andrew Walbran92627a82020-01-17 10:52:44 +000017 "//src/arch/aarch64/qemuloader:bl(:qemu_aarch64_clang)",
Andrew Scull2d527c22018-11-27 14:21:08 +000018 ]
19}
20
21group("test_root") {
22 testonly = true
23
24 deps = [
25 "//src:unit_tests(:host_fake_clang)",
Andrew Walbranfd379392019-03-14 17:45:04 +000026 "//test/arch(:aem_v8a_fvp_clang)",
Andrew Scull75da2d12018-12-09 21:25:45 +000027 "//test/arch(:qemu_aarch64_clang)",
David Brazdil3d7b88b2019-07-22 17:19:35 +010028 "//test/arch(:rpi4_clang)",
Jose Marinho69cd27d2019-10-17 15:51:31 +010029 "//test/arch(:secure_aem_v8a_fvp_clang)",
Andrew Walbranb1457602019-05-13 16:43:57 +010030 "//test/linux(:aem_v8a_fvp_vm_clang)",
31 "//test/linux(:qemu_aarch64_vm_clang)",
Andrew Walbran3eeaa402019-11-01 14:48:29 +000032 "//test/linux(:rpi4_vm_clang)",
Jose Marinho69cd27d2019-10-17 15:51:31 +010033 "//test/linux(:secure_aem_v8a_fvp_vm_clang)",
Andrew Walbranb1457602019-05-13 16:43:57 +010034 "//test/vmapi(:aem_v8a_fvp_vm_clang)",
35 "//test/vmapi(:qemu_aarch64_vm_clang)",
Andrew Walbran3eeaa402019-11-01 14:48:29 +000036 "//test/vmapi(:rpi4_vm_clang)",
Jose Marinho69cd27d2019-10-17 15:51:31 +010037 "//test/vmapi(:secure_aem_v8a_fvp_vm_clang)",
Andrew Scull3fe24082019-09-30 15:27:23 +010038 "//test/vmapi/arch/aarch64/gicv3:gicv3_test(:aem_v8a_fvp_vm_clang)",
39 "//test/vmapi/arch/aarch64/gicv3:gicv3_test(:qemu_aarch64_vm_clang)",
Jose Marinho69cd27d2019-10-17 15:51:31 +010040 "//test/vmapi/arch/aarch64/gicv3:gicv3_test(:secure_aem_v8a_fvp_vm_clang)",
Andrew Scull2d527c22018-11-27 14:21:08 +000041 ]
42}
43
44# Describe each of the platforms used in this project.
45
46host_toolchain("host_fake") {
47 use_platform = true
Andrew Walbranbc737c42018-12-07 14:24:16 +000048 heap_pages = 60
Andrew Scull2d527c22018-11-27 14:21:08 +000049 max_cpus = 4
50 max_vms = 6
51}
52
Jose Marinho69cd27d2019-10-17 15:51:31 +010053aarch64_toolchains("secure_aem_v8a_fvp") {
54 cpu = "cortex-a57"
55 origin_address = "0x06000000"
56 boot_flow = "//src/boot_flow:linux"
57 console = "//src/arch/aarch64/pl011"
58 iommu = "//src/iommu:absent"
59 gic_version = 3
60 gicd_base_address = "0x2f000000"
61 gicr_base_address = "0x2f100000"
62 heap_pages = 60
63 max_cpus = 8
64 max_vms = 16
65 toolchain_args = {
66 secure_world = "1"
67 pl011_base_address = "0x1c090000"
68 }
69}
70
Andrew Walbranb1457602019-05-13 16:43:57 +010071aarch64_toolchains("aem_v8a_fvp") {
72 cpu = "cortex-a57"
Andrew Walbran65821982019-04-16 14:34:03 +010073 origin_address = "0x80000000"
David Brazdil653261a2019-09-09 18:04:33 +010074 boot_flow = "//src/boot_flow:linux"
Andrew Walbran808531e2019-05-20 14:52:45 +010075 console = "//src/arch/aarch64/pl011"
Andrew Sculle2a525d2019-12-02 12:56:06 +000076 iommu = "//src/iommu:absent"
Andrew Walbranf1aa19e2018-12-10 13:42:40 +000077 gic_version = 3
78 gicd_base_address = "0x2f000000"
79 gicr_base_address = "0x2f100000"
Andrew Walbranbc737c42018-12-07 14:24:16 +000080 heap_pages = 60
Andrew Scull2d527c22018-11-27 14:21:08 +000081 max_cpus = 8
82 max_vms = 16
Andrew Walbran808531e2019-05-20 14:52:45 +010083 toolchain_args = {
84 pl011_base_address = "0x1c090000"
85 }
Andrew Scull2d527c22018-11-27 14:21:08 +000086}
87
Andrew Walbranb1457602019-05-13 16:43:57 +010088aarch64_toolchains("qemu_aarch64") {
89 cpu = "cortex-a57"
Andrew Scull2d527c22018-11-27 14:21:08 +000090 origin_address = "0x40001000"
David Brazdil653261a2019-09-09 18:04:33 +010091 boot_flow = "//src/boot_flow:linux"
Andrew Walbran808531e2019-05-20 14:52:45 +010092 console = "//src/arch/aarch64/pl011"
Andrew Sculle2a525d2019-12-02 12:56:06 +000093 iommu = "//src/iommu:absent"
Andrew Walbranf1aa19e2018-12-10 13:42:40 +000094 gic_version = 3
95 gicd_base_address = "0x08000000"
96 gicr_base_address = "0x080A0000"
Andrew Walbranbc737c42018-12-07 14:24:16 +000097 heap_pages = 60
Andrew Scull2d527c22018-11-27 14:21:08 +000098 max_cpus = 8
99 max_vms = 16
Andrew Walbran808531e2019-05-20 14:52:45 +0100100 toolchain_args = {
101 pl011_base_address = "0x09000000"
102 }
Andrew Scull2d527c22018-11-27 14:21:08 +0000103}
104
David Brazdil3d7b88b2019-07-22 17:19:35 +0100105aarch64_toolchains("rpi4") {
106 cpu = "cortex-a72"
107 origin_address = "0x80000"
108 boot_flow = "//src/boot_flow:linux"
109 console = "//project/reference/rpi:mini_uart"
Andrew Sculle2a525d2019-12-02 12:56:06 +0000110 iommu = "//src/iommu:absent"
David Brazdil3d7b88b2019-07-22 17:19:35 +0100111 gic_version = 2
112 heap_pages = 60
113 max_cpus = 4
114 max_vms = 16
115 toolchain_args = {
116 gpio_base_address = "0xfe200000"
117 aux_base_address = "0xfe215000"
118 core_freq_mhz = 500
David Brazdilb38816f2020-01-31 16:31:10 +0000119 hftest_ctrl = "//test/hftest:ctrl_uart"
David Brazdil3d7b88b2019-07-22 17:19:35 +0100120 }
121}
David Brazdilc702a032020-01-31 15:44:11 +0000122
123# Generic target which uses the Android boot flow. It is not intended to run on
124# any Android platform. It exists only to test building Android-specific code.
125aarch64_toolchains("android_aarch64") {
126 cpu = "cortex-a57"
127 origin_address = "0x0"
128 boot_flow = "//src/boot_flow:android"
129 console = "//src/arch/aarch64/pl011"
130 iommu = "//src/iommu:absent"
131 gic_version = 2
132 heap_pages = 60
133 max_cpus = 8
134 max_vms = 16
135 toolchain_args = {
136 pl011_base_address = "0x09000000"
137 }
138}