| # Copyright 2018 The Hafnium Authors. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| 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)", |
| ] |
| } |
| |
| 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/linux(:aem_v8a_fvp_vm_clang)", |
| "//test/linux(:qemu_aarch64_vm_clang)", |
| "//test/linux(:rpi4_vm_clang)", |
| "//test/vmapi(:aem_v8a_fvp_vm_clang)", |
| "//test/vmapi(:qemu_aarch64_vm_clang)", |
| "//test/vmapi(:rpi4_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)", |
| ] |
| } |
| |
| # 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("aem_v8a_fvp") { |
| cpu = "cortex-a57" |
| origin_address = "0x80000000" |
| 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 = { |
| 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 = { |
| 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 = { |
| pl011_base_address = "0x09000000" |
| } |
| } |