# Copyright 2023 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("//build/assembly/board_configuration.gni")
import("//build/assembly/board_input_bundle.gni")

assert(current_toolchain == default_toolchain,
       "The vim3 board can only be defined in the default toolchain.")
assert(current_cpu == "arm64",
       "The vim3 board can only be defined in an arm64 toolchain.")

_base = {
  provided_features = [
    "fuchsia::driver_framework_v2_support",
    "fuchsia::fan",
    "fuchsia::mali_gpu",
    "fuchsia::pmm_checker",
    "fuchsia::usb_peripheral_support",
    "fuchsia::wlan_fullmac",
  ]

  input_bundles = [
    ":main_bundle",
    ":vulkan_arm_mali",
    ":rtc_driver",
  ]

  filesystems = {
    vbmeta = {
      key = "//src/firmware/avb_keys/vim3/vim3-dev-key/vim3_devkey_atx_psk.pem"
      key_metadata =
          "//src/firmware/avb_keys/vim3/vim3-dev-key/vim3_dev_atx_metadata.bin"
    }
    zbi = {
      compression = "zstd.max"
    }
    fvm = {
      blobfs = {
        size_checker_maximum_bytes = 5216665600
      }
      sparse_output = {
      }
      fastboot_output = {
        # 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.
        truncate_to_length = 3439329280
      }
    }
    fxfs = {
      size_checker_maximum_bytes = 5216665600
    }
  }

  kernel = {
    contiguous_physical_pages = true
  }
}

board_configuration("vim3") {
  forward_variables_from(_base, "*")
  platform = {
    connectivity = {
      network = {
        # Prefer using the built-in NIC to the CDC-ether interface.
        # TODO(https://fxbug.dev/42068759): Update topopath when dwmac is off
        # netdevice migration.
        netsvc_interface =
            "/dwmac/dwmac/Designware-MAC/netdevice-migration/network-device"
      }
    }
    development_support = {
      # Enable the Debug Access Port (DAP) for improved lockup/crash diagnostics.
      enable_debug_access_port_for_soc = "amlogic-a311d"
    }
  }
  input_bundles += [ ":board_driver" ]
}

board_configuration("vim3-devicetree") {
  forward_variables_from(_base, "*")
  platform = {
    connectivity = {
      network = {
        # Prefer using the built-in NIC to the CDC-ether interface.
        # TODO(https://fxbug.dev/42068759): Update topopath when dwmac is off
        # netdevice migration.
        netsvc_interface = "/dwmac-ff3f0000_group/dwmac/Designware-MAC/netdevice-migration/network-device"
      }
    }
    development_support = {
      # Enable the Debug Access Port (DAP) for improved lockup/crash diagnostics.
      enable_debug_access_port_for_soc = "amlogic-a311d"
    }
  }
  input_bundles += [ ":devicetree_board_driver" ]
  devicetree = "//src/devices/board/drivers/vim3-devicetree:vim3"
}

board_input_bundle("main_bundle") {
  base_packages = [ "//src/graphics/bin/vulkan_loader" ]
  drivers = [
    {
      package_target =
          "//src/connectivity/ethernet/drivers/aml-ethernet:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-ethernet.cm" ]
    },
    {
      package_target = "//src/devices/hrtimer/drivers/aml-hrtimer:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-hrtimer.cm" ]
    },
    {
      package_target = "//src/connectivity/ethernet/drivers/dwmac:package"
      package_set = "bootfs"
      driver_components = [ "meta/dwmac.cm" ]
    },
    {
      package_target =
          "//src/connectivity/ethernet/drivers/realtek-8211f:package"
      package_set = "bootfs"
      driver_components = [ "meta/realtek-8211f.cm" ]
    },
    {
      package_target = "//src/devices/adc/drivers/aml-saradc:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-saradc.cm" ]
    },
    {
      package_target = "//src/devices/block/drivers/aml-sdmmc:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-sdmmc.cm" ]
    },
    {
      package_target = "//src/devices/block/drivers/bootpart:package"
      package_set = "bootfs"
      driver_components = [ "meta/bootpart.cm" ]
    },
    {
      package_target = "//src/devices/clock/drivers/vim3-clk:bazel_package"
      package_set = "bootfs"
      driver_components = [ "meta/vim3-clk.cm" ]
    },
    {
      package_target = "//src/devices/cpu/drivers/aml-cpu:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-cpu.cm" ]
    },
    {
      package_target = "//src/devices/gpio/drivers/aml-gpio:bazel_package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-gpio.cm" ]
    },
    {
      package_target = "//src/devices/gpio/drivers/ti-tca6408a:package"
      package_set = "bootfs"
      driver_components = [ "meta/ti-tca6408a.cm" ]
    },
    {
      package_target = "//src/devices/i2c/drivers/aml-i2c:bazel_package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-i2c.cm" ]
    },
    {
      package_target = "//src/devices/mcu/drivers/vim3-mcu:package"
      package_set = "bootfs"
      driver_components = [ "meta/vim3-mcu.cm" ]
    },
    {
      package_target = "//src/devices/ml/drivers/aml-nna:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-nna.cm" ]
    },
    {
      package_target = "//src/devices/power/drivers/aml-meson-power:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-meson-power.cm" ]
    },
    {
      package_target = "//src/devices/power/drivers/aml-pwm-regulator:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-pwm-regulator.cm" ]
    },
    {
      package_target = "//src/devices/power/drivers/fusb302:package"
      package_set = "bootfs"
      driver_components = [ "meta/fusb302.cm" ]
    },
    {
      package_target = "//src/devices/pwm/drivers/aml-pwm:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-pwm.cm" ]
    },
    {
      package_target = "//src/devices/pwm/drivers/aml-pwm-init:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-pwm-init.cm" ]
    },
    {
      package_target = "//src/devices/serial/drivers/aml-uart:package-dfv2"
      package_set = "bootfs"
      driver_components = [ "meta/aml-uart-dfv2.cm" ]
    },
    {
      package_target = "//src/devices/thermal/drivers/aml-thermal:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-thermal.cm" ]
    },
    {
      package_target = "//src/devices/temperature/drivers/aml-trip:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-trip.cm" ]
    },
    {
      package_target = "//src/devices/suspend/drivers/aml-suspend:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-suspend.cm" ]
    },
    {
      package_target = "//src/devices/usb/drivers/dwc2:package"
      package_set = "bootfs"
      driver_components = [ "meta/dwc2.cm" ]
    },
    {
      package_target = "//src/devices/usb/drivers/aml-usb-phy:bazel_package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-usb-phy.cm" ]
    },
    {
      package_target = "//src/graphics/display/drivers/aml-canvas:package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-canvas.cm" ]
    },
    {
      package_target = "//src/graphics/display/drivers/amlogic-display:package"
      package_set = "bootfs"
      driver_components = [ "meta/amlogic-display.cm" ]
    },
    {
      package_target =
          "//src/graphics/display/drivers/vim3-display-detect:package"
      package_set = "bootfs"
      driver_components = [ "meta/vim3-display-detect.cm" ]
    },
    {
      package_target = "//src/graphics/drivers/aml-gpu:aml-gpu-package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-gpu.cm" ]
    },
    {
      package_target = "//src/media/audio/drivers/aml-g12-tdm:aml-g12-composite-bazel-package"
      package_set = "bootfs"
      driver_components = [ "meta/aml-g12-composite.cm" ]
    },
    {
      package_target = "//src/ui/backlight/drivers/vim3-pwm-backlight:package"
      package_set = "bootfs"
      driver_components = [ "meta/vim3-pwm-backlight.cm" ]
    },
    {
      package_target = "//src/ui/input/drivers/adc-buttons:bazel_package"
      package_set = "bootfs"
      driver_components = [ "meta/adc-buttons.cm" ]
    },
    {
      package_target = "//src/ui/input/drivers/focaltech:package"
      package_set = "bootfs"
      driver_components = [ "meta/focaltech.cm" ]
    },

    # arm64 common drivers
    {
      package_target = "//src/devices/bus/drivers/pci:package"
      package_set = "bootfs"
      driver_components = [ "meta/bus-pci.cm" ]
    },
    {
      package_target = "//src/devices/usb/drivers/xhci:package"
      package_set = "bootfs"
      driver_components = [ "meta/xhci.cm" ]
    },

    # Base drivers
    {
      package_target = "//src/connectivity/wlan/drivers/third_party/broadcom/brcmfmac:brcmfmac-vim3"
      package_set = "base"
      driver_components = [ "meta/brcmfmac.cm" ]
    },
    {
      package_target = "//src/connectivity/bluetooth/hci/vendor/broadcom"
      package_set = "base"
      driver_components = [ "meta/bt-hci-broadcom.cm" ]
    },
    {
      package_target = "//src/graphics/drivers/msd-arm-mali:msd-arm-mali"
      package_set = "base"
      driver_components = [ "meta/msd_arm.cm" ]
    },
    {
      package_target = "//src/graphics/drivers/msd-vsi-vip"
      package_set = "base"
      driver_components = [ "meta/libmsd_vsi.cm" ]
    },
    {
      package_target = "//src/connectivity/bluetooth/hci/transport/uart"
      package_set = "base"
      driver_components = [ "meta/bt-transport-uart.cm" ]
    },
    {
      package_target = "//src/power/fake-powersource:fake-battery"
      package_set = "base"
      driver_components = [ "meta/fake_battery.cm" ]
    },
  ]
}

board_input_bundle("board_driver") {
  configuration = {
    power_manager =
        "//src/power/power-manager/node_config/vim3_node_config.json5"
    thermal = "//src/power/power-manager/thermal_config/vim3.json5"
  }
  drivers = [
    {
      package_target = "//src/devices/board/drivers/vim3:package"
      package_set = "bootfs"
      driver_components = [ "meta/vim3.cm" ]
    },
  ]
}

board_input_bundle("devicetree_board_driver") {
  configuration = {
    power_manager = "//src/power/power-manager/node_config/vim3_devicetree_node_config.json5"
    thermal = "//src/power/power-manager/thermal_config/vim3_devicetree.json5"
  }
  drivers = [
    {
      package_target =
          "//src/devices/board/drivers/vim3-devicetree:bazel_package"
      package_set = "bootfs"
      driver_components = [ "meta/vim3-devicetree.cm" ]
    },
  ]
}

board_input_bundle("vulkan_arm_mali") {
  base_packages =
      [ "//src/graphics/drivers/arm-mali/icd:libvulkan_arm_g52_r0p0" ]
}

board_input_bundle("rtc_driver") {
  drivers = [
    {
      package_target = "//src/devices/rtc/drivers/nxp:pcf8563"
      package_set = "base"
      driver_components = [ "meta/pcf8563.cm" ]
    },
  ]
}
