blob: beb47b86b34e1e6e0b4ec955becfca2cdfd3f32e [file] [log] [blame]
# Copyright 2020 The Hafnium Authors.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/BSD-3-Clause.
import("//build/toolchain/embedded.gni")
import("//build/toolchain/host.gni")
group("root") {
deps = [
"//src:hafnium(:aem_v8a_fvp_clang)",
"//src:hafnium(:android_aarch64_clang)",
"//src:hafnium(:qemu_aarch64_clang)",
"//src:hafnium(:rpi4_clang)",
"//src/arch/aarch64/qemuloader:bl(:qemu_aarch64_clang)",
"//src:hafnium(:secure_aem_v8a_fvp_clang)",
]
}
group("test_root") {
testonly = true
deps = [
"//src:unit_tests(:host_fake_clang)",
"//test/arch(:aem_v8a_fvp_clang)",
"//test/arch(:qemu_aarch64_clang)",
"//test/arch(:rpi4_clang)",
"//test/arch(:secure_aem_v8a_fvp_clang)",
"//test/linux(:aem_v8a_fvp_vm_clang)",
"//test/linux(:qemu_aarch64_vm_clang)",
"//test/linux(:rpi4_vm_clang)",
"//test/linux(:secure_aem_v8a_fvp_vm_clang)",
"//test/vmapi(:aem_v8a_fvp_vm_clang)",
"//test/vmapi(:qemu_aarch64_vm_clang)",
"//test/vmapi(:rpi4_vm_clang)",
"//test/vmapi(:secure_aem_v8a_fvp_vm_clang)",
"//test/vmapi/arch/aarch64/gicv3:gicv3_test(:aem_v8a_fvp_vm_clang)",
"//test/vmapi/arch/aarch64/gicv3:gicv3_test(:qemu_aarch64_vm_clang)",
"//test/vmapi/arch/aarch64/gicv3:gicv3_test(:secure_aem_v8a_fvp_vm_clang)",
"//test/secure_world_baremetal(:secure_aem_v8a_fvp_vm_clang)",
]
}
# Describe each of the platforms used in this project.
host_toolchain("host_fake") {
use_platform = true
heap_pages = 60
max_cpus = 4
max_vms = 6
}
aarch64_toolchains("secure_aem_v8a_fvp") {
cpu = "cortex-a57"
origin_address = "0x06000000"
boot_flow = "//src/boot_flow:linux"
console = "//src/arch/aarch64/pl011"
iommu = "//src/iommu:absent"
gic_version = 3
gicd_base_address = "0x2f000000"
gicr_base_address = "0x2f100000"
heap_pages = 60
max_cpus = 8
max_vms = 16
toolchain_args = {
secure_world = "1"
pl011_base_address = "0x1c090000"
}
}
aarch64_toolchains("aem_v8a_fvp") {
cpu = "cortex-a57"
origin_address = "0x88000000"
boot_flow = "//src/boot_flow:linux"
console = "//src/arch/aarch64/pl011"
iommu = "//src/iommu:absent"
gic_version = 3
gicd_base_address = "0x2f000000"
gicr_base_address = "0x2f100000"
heap_pages = 60
max_cpus = 8
max_vms = 16
toolchain_args = {
pl011_base_address = "0x1c090000"
}
}
aarch64_toolchains("qemu_aarch64") {
cpu = "cortex-a57"
origin_address = "0x40001000"
boot_flow = "//src/boot_flow:linux"
console = "//src/arch/aarch64/pl011"
iommu = "//src/iommu:absent"
gic_version = 3
gicd_base_address = "0x08000000"
gicr_base_address = "0x080A0000"
heap_pages = 60
max_cpus = 8
max_vms = 16
toolchain_args = {
secure_world = "0"
pl011_base_address = "0x09000000"
}
}
aarch64_toolchains("rpi4") {
cpu = "cortex-a72"
origin_address = "0x80000"
boot_flow = "//src/boot_flow:linux"
console = "//project/reference/rpi:mini_uart"
iommu = "//src/iommu:absent"
gic_version = 2
heap_pages = 60
max_cpus = 4
max_vms = 16
toolchain_args = {
secure_world = "0"
gpio_base_address = "0xfe200000"
aux_base_address = "0xfe215000"
core_freq_mhz = 500
hftest_ctrl = "//test/hftest:ctrl_uart"
}
}
# Generic target which uses the Android boot flow. It is not intended to run on
# any Android platform. It exists only to test building Android-specific code.
aarch64_toolchains("android_aarch64") {
cpu = "cortex-a57"
origin_address = "0x0"
boot_flow = "//src/boot_flow:android"
console = "//src/arch/aarch64/pl011"
iommu = "//src/iommu:absent"
gic_version = 2
heap_pages = 60
max_cpus = 8
max_vms = 16
toolchain_args = {
secure_world = "0"
pl011_base_address = "0x09000000"
}
}