1// Copyright 2018 The Fuchsia Authors 2// Copyright (c) 2012-2015 Travis Geiselbrecht 3// 4// Use of this source code is governed by a MIT-style 5// license that can be found in the LICENSE file or at 6// https://opensource.org/licenses/MIT 7 8#if WITH_KERNEL_PCIE 9#include <dev/pcie_bus_driver.h> 10#include <dev/pcie_platform.h> 11#include <dev/pcie_root.h> 12#include <inttypes.h> 13#include <lk/init.h> 14#include <pdev/driver.h> 15#include <pdev/interrupt.h> 16#include <trace.h> 17#include <zircon/boot/driver-config.h> 18#include <zircon/types.h> 19 20static void arm_gicv3_pcie_init(const void* driver_data, uint32_t length) { 21 ASSERT(length >= sizeof(dcfg_arm_gicv3_driver_t)); 22 __UNUSED const dcfg_arm_gicv3_driver_t* driver = 23 reinterpret_cast<const dcfg_arm_gicv3_driver_t*>(driver_data); 24 25 // When GICv3 MSI support is added, initialize here 26 27 // Initialize the PCI platform, claiming no MSI support 28 static NoMsiPciePlatformInterface platform_pcie_support; 29 30 zx_status_t res = PcieBusDriver::InitializeDriver(platform_pcie_support); 31 if (res != ZX_OK) { 32 TRACEF("Failed to initialize PCI bus driver (res %d). " 33 "PCI will be non-functional.\n", 34 res); 35 } 36} 37 38LK_PDEV_INIT(arm_gicv3_pcie_init, KDRV_ARM_GIC_V3, arm_gicv3_pcie_init, LK_INIT_LEVEL_PLATFORM); 39 40#endif // if WITH_KERNEL_PCIE 41