// 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.

composite e1000;

using fuchsia.acpi;
using fuchsia.hardware.pci;
using fuchsia.pci;
using fuchsia.intel.e1000;
using fuchsia.hardware.sysmem;

primary node "pci" {
  fuchsia.hardware.pci.Service == fuchsia.hardware.pci.Service.ZirconTransport;
  fuchsia.BIND_PCI_VID == fuchsia.pci.BIND_PCI_VID.INTEL;
  accept fuchsia.BIND_PCI_DID {
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82542,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82543GC_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82543GC_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82544EI_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82544EI_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82544GC_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82544GC_LOM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82540EM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82540EM_LOM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82540EP_LOM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82540EP,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82540EP_LP,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82545EM_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82545EM_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82545GM_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82545GM_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82545GM_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546EB_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546EB_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546EB_QUAD_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546GB_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546GB_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546GB_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546GB_PCIE,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546GB_QUAD_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82546GB_QUAD_COPPER_KSP3,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82541EI,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82541EI_MOBILE,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82541ER_LOM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82541ER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82541GI,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82541GI_LF,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82541GI_MOBILE,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82547EI,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82547EI_MOBILE,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82547GI,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_SERDES_DUAL,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_SERDES_QUAD,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_QUAD_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571PT_QUAD_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_QUAD_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82571EB_QUAD_COPPER_LP,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82572EI_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82572EI_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82572EI_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82572EI,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82573E,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82573E_IAMT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82573L,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82574L,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82574LA,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82583V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_80003ES2LAN_COPPER_DPT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_80003ES2LAN_SERDES_DPT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_80003ES2LAN_COPPER_SPT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_80003ES2LAN_SERDES_SPT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_82567V_3,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_IGP_M_AMT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_IGP_AMT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_IGP_C,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_IFE,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_IFE_GT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_IFE_G,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH8_IGP_M,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IGP_M,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IGP_M_AMT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IGP_M_V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IGP_AMT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_BM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IGP_C,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IFE,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IFE_GT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH9_IFE_G,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH10_R_BM_LM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH10_R_BM_LF,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH10_R_BM_V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH10_D_BM_LM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH10_D_BM_LF,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_ICH10_D_BM_V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_M_HV_LM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_M_HV_LC,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_D_HV_DM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_D_HV_DC,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH2_LV_LM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH2_LV_V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_LPT_I217_LM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_LPT_I217_V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_LPTLP_I218_LM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_LPTLP_I218_V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_I218_LM2,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_I218_V2,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_I218_LM3,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_I218_V3,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_LM,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_V,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_LM2,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_V2,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_LBG_I219_LM3,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_LM4,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_V4,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_LM5,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_SPT_I219_V5,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_CNP_I219_LM6,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_CNP_I219_V6,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_CNP_I219_LM7,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_CNP_I219_V7,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_ICP_I219_LM8,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_ICP_I219_V8,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_ICP_I219_LM9,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_ICP_I219_V9,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_TGP_I219_V13,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_TGP_I219_LM13,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_TGP_I219_LM14,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_TGP_I219_V14,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_PCH_TGP_I219_LM15,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_QUAD_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_QUAD_COPPER_ET2,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_NS,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_NS_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_SERDES_QUAD,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_VF,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82576_VF_HV,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I350_VF,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I350_VF_HV,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82575EB_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82575EB_FIBER_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82575GB_QUAD_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82580_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82580_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82580_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82580_SGMII,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82580_COPPER_DUAL,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_82580_QUAD_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I350_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I350_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I350_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I350_SGMII,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I350_DA4,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_COPPER_OEM1,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_COPPER_IT,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_FIBER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_SGMII,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_COPPER_FLASHLESS,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I210_SERDES_FLASHLESS,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I211_COPPER,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I354_BACKPLANE_1GBPS,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I354_SGMII,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_I354_BACKPLANE_2_5GBPS,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_DH89XXCC_SGMII,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_DH89XXCC_SERDES,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_DH89XXCC_BACKPLANE,
    fuchsia.intel.e1000.BIND_PCI_DID.E1000_DH89XXCC_SFP,
  }
}

optional node "sysmem" {
  fuchsia.hardware.sysmem.Service == fuchsia.hardware.sysmem.Service.ZirconTransport;
}

optional node "acpi" {
  fuchsia.BIND_PROTOCOL == fuchsia.acpi.BIND_PROTOCOL.DEVICE;
}
