| # 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("$zx/kernel/params.gni") |
| |
| group("pci") { |
| deps = [ |
| ":bus-pci", |
| ] |
| if (!enable_user_pci) { |
| deps += [ ":bus-pci.proxy" ] |
| } |
| } |
| |
| # The userspace PCI bus driver uses this set, as well as the |
| # automated tests. |
| source_set("user_pci") { |
| visibility = [ ":*" ] |
| sources = [ |
| "allocation.cpp", |
| "bridge.cpp", |
| "bus.cpp", |
| "capabilities.cpp", |
| "config.cpp", |
| "device.cpp", |
| "protocol.cpp", |
| "upstream_node.cpp", |
| ] |
| public_deps = [ |
| "$zx/system/banjo/ddk.protocol.pci", |
| "$zx/system/banjo/ddk.protocol.pciroot", |
| "$zx/system/ulib/ddk", |
| "$zx/system/ulib/ddktl", |
| "$zx/system/ulib/fbl", |
| "$zx/system/ulib/pretty", |
| "$zx/system/ulib/region-alloc", |
| "$zx/system/ulib/zircon", |
| |
| # TODO(ZX-4062): This shouldn't be here if the mmio code is actually |
| # used in the test too. Anything using that needs to be separately |
| # compiled for the test using the mock version. |
| "$zx/system/dev/lib/mmio", |
| ] |
| } |
| |
| driver("bus-pci") { |
| if (enable_user_pci) { |
| sources = [ |
| # The driver needs bind glue |
| "bind.cpp", |
| ] |
| deps = [ |
| ":user_pci", |
| ] |
| } else { |
| sources = [ |
| "kpci/kpci.c", |
| ] |
| deps = [ |
| "$zx/system/banjo/ddk.protocol.pci", |
| "$zx/system/banjo/ddk.protocol.pciroot", |
| "$zx/system/banjo/ddk.protocol.platform.device", |
| "$zx/system/banjo/ddk.protocol.sysmem", |
| "$zx/system/ulib/ddk", |
| "$zx/system/ulib/zircon", |
| ] |
| } |
| } |
| |
| driver("bus-pci.proxy") { |
| sources = [ |
| "kpci/proxy.c", |
| ] |
| deps = [ |
| "$zx/system/banjo/ddk.protocol.pci", |
| "$zx/system/banjo/ddk.protocol.pciroot", |
| "$zx/system/banjo/ddk.protocol.platform.device", |
| "$zx/system/banjo/ddk.protocol.sysmem", |
| "$zx/system/ulib/ddk", |
| "$zx/system/ulib/zircon", |
| ] |
| } |
| |
| test("pci_tests") { |
| sources = [ |
| "test/allocation_tests.cpp", |
| "test/config_tests.cpp", |
| "test/device_tests.cpp", |
| "test/main.cpp", |
| ] |
| deps = [ |
| ":user_pci", |
| "$zx/system/dev/lib/fake_ddk", |
| "$zx/system/ulib/hwreg", |
| "$zx/system/ulib/zxtest", |
| ] |
| } |