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

# This file defines base configs used on multiple x64-based targets.

import("//build/board.gni")

target_cpu = "x64"

# Drivers and tools to include on bootfs.
_bootfs_deps = [
  # For DFv2. TODO(fxbug.dev/93333): Move this to //products/bringup.gni
  # once we have enough space on ARM for this binary.
  "//src/devices/bin/driver_host2",

  # Drivers
  "//src/devices/block/drivers/ahci",
  "//src/devices/block/drivers/mbr",
  "//src/devices/block/drivers/nvme",
  "//src/devices/block/drivers/pci-sdhci",
  "//src/devices/block/drivers/sdhci",
  "//src/devices/board/drivers/x86:platform-bus-x86",
  "//src/devices/bus/drivers/pci:bus-pci",
  "//src/devices/i2c/drivers/intel-i2c",
  "//src/devices/rtc/drivers/intel-rtc",
  "//src/devices/spi/drivers/intel-gspi",
  "//src/devices/tpm/drivers/tpm",
  "//src/devices/usb/drivers/xhci",
  "//src/graphics/display/drivers/intel-i915",
  "//src/media/audio/drivers/codecs/alc5514",
  "//src/media/audio/drivers/codecs/alc5663",
  "//src/media/audio/drivers/codecs/max98373",
  "//src/media/audio/drivers/codecs/max98927",
  "//src/media/audio/drivers/intel-hda/codecs/hdmi:hdmi-audio-codec",
  "//src/media/audio/drivers/intel-hda/codecs/realtek:realtek-audio-codec",
  "//src/media/audio/drivers/intel-hda/controller:intel-hda",
  "//src/ui/input/drivers/i2c-hid",
  "//src/ui/input/drivers/pc-ps2",

  # Tools
  "//src/devices/bin/acpidump",
  "//src/devices/pci/bin:bootfs",
  "//src/media/audio/bin/ihda",

  # Configs
  "//src/power/power-manager:base_config",
  "//src/security/policy/zxcrypt:null",
]
board_bootfs_labels += _bootfs_deps
board_recovery_bootfs_labels += _bootfs_deps
board_zedboot_bootfs_labels += _bootfs_deps

board_driver_package_labels += [
  "//garnet/packages/prod:drivers-system",
  "//src/devices/acpi:drivers",
  "//src/graphics/drivers/msd-intel-gen",
  "//src/media/audio/bundles:virtual_audio_driver",
]

board_package_labels += [
  "//src/devices/sysmem/bin/sysmem_connector",
  "//src/graphics/bin/vulkan_loader",
  "//src/power/thermd",
  "//src/hwinfo:default_board_config",
  "//src/graphics/drivers/intel-gen/icd:libvulkan_intel_gen",
  "//src/graphics/lib/goldfish-vulkan/gnbuild:goldfish-vulkan",
  "//src/graphics/lib/goldfish-vulkan/gnbuild:goldfish-vulkan-config",
]

board_core_realm_shards += [ "//src/power/thermd:thermd-core-shard" ]

# userspace PCI migration flags
# fxbug.dev/32978
platform_enable_user_pci = true
userspace_pci_enable_msi_x = true
