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

import("//boards/arm64.gni")

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

board_configs += [ "//build/config/arm64:cortex-a53" ]

_common_bootfs_deps = [
  "//boards/kernel_cmdline:vim3",
  "//src/connectivity/ethernet/drivers/aml-ethernet-s912",
  "//src/connectivity/ethernet/drivers/dwmac",
  "//src/connectivity/ethernet/drivers/ethernet",
  "//src/connectivity/ethernet/drivers/realtek-8211f",
  "//src/devices/block/drivers/aml-sdmmc",
  "//src/devices/block/drivers/bootpart",
  "//src/devices/board/drivers/vim3",
  "//src/devices/clock/drivers/amlogic-clk",
  "//src/devices/cpu/drivers/aml-cpu",
  "//src/devices/gpio/drivers/aml-axg-gpio",
  "//src/devices/gpio/drivers/ti-tca6408a",
  "//src/devices/i2c/drivers/aml-i2c",
  "//src/devices/mcu/drivers/vim3-mcu",
  "//src/devices/ml/drivers/aml-nna",
  "//src/devices/power/drivers/aml-meson-power",
  "//src/devices/power/drivers/aml-pwm-regulator",
  "//src/devices/power/drivers/fusb302",
  "//src/devices/pwm/drivers/aml-pwm",
  "//src/devices/registers/drivers/registers",
  "//src/devices/rtc/drivers/nxp",
  "//src/devices/thermal/drivers/aml-thermal-s905d2g",
  "//src/devices/usb/drivers/dwc2",
  "//src/devices/usb/drivers/vim3-usb-phy",
  "//src/graphics/display/drivers/aml-canvas",
  "//src/graphics/display/drivers/aml-hdmi",
  "//src/graphics/display/drivers/amlogic-display",
  "//src/graphics/drivers/aml-gpu",
]

board_bootfs_labels += _common_bootfs_deps

board_zedboot_bootfs_labels += _common_bootfs_deps

board_recovery_bootfs_labels += _common_bootfs_deps

board_driver_package_labels += [
  "//src/graphics/drivers/msd-arm-mali:msd-system",
  "//src/graphics/drivers/msd-vsi-vip",
  "//src/media/drivers/amlogic_decoder",
]

board_package_labels += [
  "//src/graphics/drivers/msd-arm-mali:msd-config",
  "//src/devices/sysmem/bin/sysmem_connector",
  "//src/graphics/bin/vulkan_loader",
  "//src/graphics/drivers/arm-mali/icd:libvulkan_arm_g52_r0p0",
]

# Board file adds vulkan VCD that lets vulkan tests work on systems with Mali GPUs.
board_has_libvulkan_arm_mali = true

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"

# 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"
active_partition = "a"
fastboot_product = "galilei"

# For VIM3, FVM partition uses all of the remaining eMMC. However, the total size of the eMMC
# storage maybe 16G or 32G depending on whether it is a basic or pro version. In addition,
# the actual size of the user block allocated by Fuchsia can be further different. (i.e. 'lsblk'
# shows a 29G size user block for the 32Gb version). To avoid the risk of overflowing
# available size, here we set it to be the same as sherlock (3280mb), which is clearly safe
# and sufficient for now.
fvm_emmc_partition_size = 3439329280

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