# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

#  ________  _________  ________  ________
# |\   ____\|\___   ___\\   __  \|\   __  \
# \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
#  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
#   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
#     ____\_\  \   \ \__\ \ \_______\ \__\
#    |\_________\   \|__|  \|_______|\|__|
#    \|_________|
#
# Every new addition to this gni file is an instance of tech-debt that must be
# cleaned up to have a proper platform+product interface. Instead add new items
# to the the board definition in:
#
#   //boards/vim3/BUILD.gn

# NOTE: if you touch this file, please add this line to your commit
# description so that the vim3 tests are run as we do not run vim3 tests in CQ
# by default.
# Cq-Include-Trybots: luci.turquoise.global.try:bringup.vim3-debug,core.vim3-debug,core.vim3-vg-debug

import("//build/devicetree/args.gni")

has_board = true
target_cpu = "arm64"

# Board configuration for Product Assembly
board_configuration_label = "//boards/vim3"
devicetree_board_driver = true

board_name = "vim3"
board_description = "A generic vim3 device"

partitions_config_label = "//boards/partitions/vim3:vim3"
partitions_config_contents =
    [ "//prebuilt/third_party/firmware/vim3/u-boot.bin.unsigned" ]

bazel_product_bundle_board = "vim3"

#####
#
# Items below here are duplicating information assembly, and are used by targets
# that need to switch using assembly outputs as their source of truth.

firmware_prebuilts_path_suffix = ""
firmware_prebuilts = [
  {
    type = ""
    path = "//prebuilt/third_party/firmware/vim3/u-boot.bin.unsigned"
    partition = "bootloader"
  },
]

use_gigaboot = false
use_vbmeta = true
avb_key = "//src/firmware/avb_keys/vim3/vim3-dev-key/vim3_devkey_atx_psk.pem"
avb_algorithm = "SHA512_RSA4096"
avb_atx_metadata =
    "//src/firmware/avb_keys/vim3/vim3-dev-key/vim3_dev_atx_metadata.bin"

blobfs_capacity = 10485760000  # 10000 MiB
max_blob_contents_size =
    5216665600  # 4975 MiB. Leaves 50 MiB for the update package.

# partitions for fx flash to flash
zircon_a_partition = "zircon_a"
zircon_b_partition = "zircon_b"
zircon_r_partition = "zircon_r"
vbmeta_a_partition = "vbmeta_a"
vbmeta_b_partition = "vbmeta_b"
vbmeta_r_partition = "vbmeta_r"
fvm_partition = "fvm"
fxfs_partition = "fvm"
active_partition = "a"
fastboot_product = "galilei"

assembly_generate_fvm_fastboot = true

# Supports only physical devices.
board_is_emu = false
board_is_phys = true

# This will skip building per API-level artifacts in SDK, thus saves about 30%
# of build time.
override_build_time_supported_api_levels = []
