blob: 5208796fd2d94c269b80d2c5c642e30e8416a2b2 [file] [log] [blame]
Andrew Walbrandc8ad202019-03-07 15:49:28 +00001# Copyright 2018 The Hafnium Authors.
Andrew Scull2d527c22018-11-27 14:21:08 +00002#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("//build/toolchain/embedded.gni")
16import("//build/toolchain/host.gni")
17
18# TODO: add a gcc-4.9 or above prebuilt to check the gcc build too?
19
20group("root") {
21 deps = [
22 "//src:hafnium(:aem_v8a_fvp_clang)",
23 "//src:hafnium(:hikey_clang)",
24 "//src:hafnium(:qemu_aarch64_clang)",
25 ]
26}
27
28group("test_root") {
29 testonly = true
30
31 deps = [
32 "//src:unit_tests(:host_fake_clang)",
Andrew Walbranfd379392019-03-14 17:45:04 +000033 "//test/arch(:aem_v8a_fvp_clang)",
Andrew Scull75da2d12018-12-09 21:25:45 +000034 "//test/arch(:qemu_aarch64_clang)",
Andrew Walbranfd379392019-03-14 17:45:04 +000035 "//test/linux(:aem_v8a_fvp_clang)",
Andrew Walbranbf3991c2019-02-15 14:55:36 +000036 "//test/linux(:qemu_aarch64_clang)",
Andrew Walbranfd379392019-03-14 17:45:04 +000037 "//test/vmapi(:aem_v8a_fvp_clang)",
Andrew Scull75da2d12018-12-09 21:25:45 +000038 "//test/vmapi(:qemu_aarch64_clang)",
Andrew Walbranfd379392019-03-14 17:45:04 +000039 "//test/vmapi/gicv3:gicv3_test(:aem_v8a_fvp_clang)",
Andrew Scullad277692018-12-19 11:15:11 +000040 "//test/vmapi/gicv3:gicv3_test(:qemu_aarch64_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
Conrad Grobler9264cb72019-03-26 16:43:00 +000053# TODO: Change cpu back to +nofp with more granular control.
54
Andrew Scull2d527c22018-11-27 14:21:08 +000055aarch64_toolchain("aem_v8a_fvp") {
Conrad Grobler9264cb72019-03-26 16:43:00 +000056 cpu = "cortex-a57+fp"
Andrew Walbran65821982019-04-16 14:34:03 +010057 origin_address = "0x80000000"
Andrew Scull2d527c22018-11-27 14:21:08 +000058 use_pl011 = true
59 pl011_base_address = "0x1c090000"
Andrew Walbranf1aa19e2018-12-10 13:42:40 +000060 gic_version = 3
61 gicd_base_address = "0x2f000000"
62 gicr_base_address = "0x2f100000"
Andrew Walbranbc737c42018-12-07 14:24:16 +000063 heap_pages = 60
Andrew Scull2d527c22018-11-27 14:21:08 +000064 max_cpus = 8
65 max_vms = 16
66}
67
Conrad Grobler9264cb72019-03-26 16:43:00 +000068# TODO: Change cpu back to +nofp with more granular control.
69
Andrew Scull2d527c22018-11-27 14:21:08 +000070aarch64_toolchain("qemu_aarch64") {
Conrad Grobler9264cb72019-03-26 16:43:00 +000071 cpu = "cortex-a57+fp"
Andrew Scull2d527c22018-11-27 14:21:08 +000072 origin_address = "0x40001000"
73 use_pl011 = true
74 pl011_base_address = "0x09000000"
Andrew Walbranf1aa19e2018-12-10 13:42:40 +000075 gic_version = 3
76 gicd_base_address = "0x08000000"
77 gicr_base_address = "0x080A0000"
Andrew Walbranbc737c42018-12-07 14:24:16 +000078 heap_pages = 60
Andrew Scull2d527c22018-11-27 14:21:08 +000079 max_cpus = 8
80 max_vms = 16
81}
82
83aarch64_toolchain("hikey") {
84 cpu = "cortex-a53+nofp"
85 origin_address = "0x35000000"
86 use_pl011 = true
87 pl011_base_address = "0xf7113000" # UART3
Andrew Walbranf1aa19e2018-12-10 13:42:40 +000088 gic_version = 2
Andrew Walbranbc737c42018-12-07 14:24:16 +000089 heap_pages = 60
Andrew Scull2d527c22018-11-27 14:21:08 +000090 max_cpus = 8
91 max_vms = 16
92}