# 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("//build/board.gni")

_imports = {  # Import into hidden scope, to avoid importing into args.gn.
  import("virtio_drivers.gni")
}

# Drivers required for emulated ARM.
_bootfs_deps = _imports.virtio_drivers + [
                 "//src/devices/block/drivers/ahci",
                 "//src/devices/board/drivers/qemu-arm64",
                 "//src/devices/board/drivers/acpi-arm64",
                 "//src/devices/rtc/drivers/pl031-rtc",
                 "//src/graphics/display/drivers/fake:fake-display",
               ]

board_bootfs_labels += _bootfs_deps
board_zedboot_bootfs_labels += _bootfs_deps
board_recovery_bootfs_labels += _bootfs_deps
