# Copyright 2018 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.

# Configuration of the build for the platform.
declare_args() {
  # The name of the platform.
  plat_name = ""

  # The architecture of the platform.
  plat_arch = ""

  # Boot flow driver to be used by the platform, specified as build target.
  plat_boot_flow = ""

  # Console driver to be used for the platform, specified as build target.
  plat_console = ""

  # IOMMU driver to be used for the platform, specified as build target.
  plat_iommu = ""

  # Interrupts driver to be used for the platform, specified as build target.
  plat_interrupts = "//src/arch/aarch64/plat/interrupts:absent"

  # Abstract the calls to platform memory protection functions.
  # E.g. FVP leverages RME if present to change PAS (S or NS) of given address.
  plat_memory_protect = ""

  # The number of pages to allocate for the hypervisor heap.
  plat_heap_pages = 0

  # The level of debug logs to include. This should match one of the levels
  # defined in dlog.h.
  plat_log_level = "LOG_LEVEL_INFO"

  # The maximum number of CPUs available on the platform.
  plat_max_cpus = 1

  # The maximum allowed size of Hafnium's image in memory. Zero if don't care.
  plat_max_image_size = 0

  # The maximum number of VMs required for the platform.
  plat_max_vms = 0

  # The maximum number of UUIDs allowed per partition, in the partition manifest
  plat_partition_max_uuids = 4

  # The maximum number of memory regions allowed per partition, in the partition manifest
  plat_partition_max_memory_regions = 8

  # The maximum number of device regions allowed per partition, in the partition manifest
  plat_partition_max_device_regions = 8

  # The maximum number of dma devices allowed per partition, in the partition manifest
  plat_partition_max_dma_devices = 2

  # The maximum number of interrupts allowed per device, per partition, in the partition manifest
  plat_partition_max_intr_per_device = 4

  # the maximum number of streams allowed per device, per partition, in the partition manifest
  plat_partition_max_streams_per_device = 4

  # The number of virtual interrupt IDs which are supported
  plat_num_virtual_interrupts_ids = 64

  # The version of the FF-A specification to implement. Leave empty to use the latest version.
  ffa_version = ""
}
