blob: f5d73a2db767eb42995da356514b96d2e50f6a84 [file] [log] [blame]
# Copyright 2019 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/bind/bind.gni")
import("//build/components.gni")
import("//build/drivers.gni")
import("//build/test.gni")
import("//build/testing/bootfs_test.gni")
import("//src/devices/bus/drivers/pci/pci.gni")
group("x86") {
deps = [ ":platform-bus-x86" ]
}
config("config") {
visibility = [ ":*" ]
include_dirs = [
"include",
".",
]
if (platform_enable_user_pci) {
defines = [ "ENABLE_USER_PCI" ]
}
cflags = [ "-Wno-null-pointer-arithmetic" ]
cflags_c = [ "-fno-strict-aliasing" ]
}
driver_bind_rules("x64-bind") {
rules = "x64.bind"
bind_output = "platform-bus-x64.bindbc"
tests = "bind-tests.json"
deps = [
"//sdk/fidl/fuchsia.hardware.platform.bus:fuchsia.hardware.platform.bus_bindlib",
"//src/devices/bind/fuchsia.intel.platform",
]
}
fuchsia_driver("platform-bus-x86-driver") {
output_name = "platform-bus-x86"
configs += [
"//build/config:all_source",
"//build/config/fuchsia:enable_zircon_asserts",
]
sources = [
"acpi-dev/dev-ec.cc",
"acpi-nswalk.cc",
"debug.cc",
"goldfish-control.cc",
"init.cc",
"iommu-driver-tests.cc",
"methods.cc",
"power.cc",
"sysmem.cc",
"x86-driver-tests.cc",
"x86.cc",
"x86.h",
]
# Userspace PCI feature flag. The scaffolding for the userspace pci bus
# driver is in pci.cpp. If not enabled then the kernel pci bus driver
# initialization code in ACPI (kpci.cc) will be built instead.
if (!platform_enable_user_pci) {
sources += [ "kpci.cc" ]
}
configs += [ ":config" ]
deps = [
":x64-bind",
":x86-config",
"//sdk/banjo/fuchsia.hardware.hidbus:fuchsia.hardware.hidbus_banjo_cpp",
"//sdk/banjo/fuchsia.hardware.pciroot:fuchsia.hardware.pciroot_banjo_cpp",
"//sdk/fidl/fuchsia.acpi.tables:fuchsia.acpi.tables_cpp",
"//sdk/fidl/fuchsia.hardware.acpi:fuchsia.hardware.acpi_cpp",
"//sdk/fidl/fuchsia.hardware.goldfish:fuchsia.hardware.goldfish_bindlib_cpp",
"//sdk/fidl/fuchsia.hardware.goldfish.pipe:fuchsia.hardware.goldfish.pipe_bindlib_cpp",
"//sdk/fidl/fuchsia.hardware.platform.bus:fuchsia.hardware.platform.bus_cpp",
"//sdk/fidl/fuchsia.hardware.powersource:fuchsia.hardware.powersource_cpp",
"//sdk/fidl/fuchsia.hardware.sysmem:fuchsia.hardware.sysmem_bindlib_cpp",
"//sdk/fidl/fuchsia.hardware.sysmem:fuchsia.hardware.sysmem_cpp",
"//sdk/lib/driver/runtime:driver_runtime_cpp",
"//src/devices/bind/fuchsia:fuchsia_cpp",
"//src/devices/bind/fuchsia.goldfish.platform:fuchsia.goldfish.platform_cpp",
"//src/devices/bind/fuchsia.google.platform:fuchsia.google.platform_cpp",
"//src/devices/board/lib/acpi",
"//src/devices/board/lib/smbios",
"//src/devices/lib/driver",
"//src/devices/lib/driver:driver_runtime",
"//src/devices/lib/iommu:iommu-x86",
"//src/devices/pci/lib/pci",
"//src/lib/ddk",
# TODO(https://fxbug.dev/42113849): Migrate to the new bind rules and delete the below
"//sdk/lib/fit",
"//src/lib/ddk:ddk-deprecated-binding-headers",
"//src/lib/ddktl",
"//src/ui/input/lib/hid",
"//third_party/acpica",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/driver-unit-test",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/inspect",
"//zircon/system/ulib/lazy_init",
"//zircon/system/ulib/region-alloc",
"//zircon/system/ulib/zircon-internal",
"//zircon/system/ulib/zx",
"//zircon/system/ulib/zxtest",
"//zircon/third_party/ulib/chromiumos-platform-ec",
]
# TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
}
fuchsia_component_manifest("manifest") {
component_name = "platform-bus-x86"
manifest = "meta/platform-bus-x86.cml"
}
fuchsia_structured_config_cpp_elf_lib("x86-config") {
cm_label = ":manifest"
}
fuchsia_driver_component("platform-bus-x86") {
cm_label = ":manifest"
deps = [ ":platform-bus-x86-driver" ]
info = "platform-bus-x86-info.json"
}
fuchsia_driver_package("package") {
package_name = "platform-bus-x86"
driver_components = [ ":platform-bus-x86" ]
}
test("x86-ec-test-bin") {
output_name = "x86-ec-test"
sources = [
"acpi-dev/dev-ec-test.cc",
"acpi-dev/dev-ec.cc",
]
deps = [
"//src/devices/board/lib/acpi/test:mock-acpi",
"//src/devices/testing/mock-ddk",
"//src/lib/ddk",
"//src/lib/ddktl",
"//third_party/acpica",
"//zircon/system/ulib/inspect",
"//zircon/system/ulib/zxtest",
]
}
fuchsia_unittest_package("x86-ec-test") {
deps = [ ":x86-ec-test-bin" ]
}
group("tests") {
testonly = true
deps = [
":x64-bind_test",
":x86-ec-test",
]
}