# Configure the PCIe and USB interfaces Configure the PCIe and USB interfaces by locating the PCIe firmware sources and by setting the Linux USB software stack and device tree. Use the following references and procedures to enable a USB controller and confirm the required kernel configurations and drivers. The PCIe subsystem is driven by UEFI firmware, and the USB subsystem is driven by the Linux kernel USB stack and UEFI. Use the source paths and reference tables to confirm the drivers, clocks, and interrupts, and then enable the target USB controller in the device tree. ## Prerequisites - Access to the UEFI (EDK2) source tree for the PCIe firmware and drivers. - Access to the Linux kernel source tree for the USB device tree and drivers. - The USB controller instance and mode (host or peripheral) that you want to enable. - [Locate the PCIe firmware sources](https://docs.qualcomm.com/doc/80-A0399-8/topic/locate-pcie-firmware-sources.html) The PCIe subsystem is configured through UEFI. - [Linux USB features](https://docs.qualcomm.com/doc/80-A0399-8/topic/linux-usb-features.html) The Linux USB stack supports USB3 and USB2, and the USB device tree configuration is in `/arch/arm64/boot/dts/qcom/glymur.dtsi`. - [USB kernel configurations](https://docs.qualcomm.com/doc/80-A0399-8/topic/usb-kernel-configurations.html) The USB kernel configurations are set in `glymur_perf.bzl`. - [USB controller software drivers](https://docs.qualcomm.com/doc/80-A0399-8/topic/usb-controller-software-drivers.html) The USB controller relies on the DWC3 MSM, DWC3 core, gadget, and xHCI platform drivers. - [USB controller clocks](https://docs.qualcomm.com/doc/80-A0399-8/topic/usb-controller-clocks.html) Each USB controller uses a set of core, interface, mock UTMI, sleep, and AHB clocks. - [USB controller interrupts](https://docs.qualcomm.com/doc/80-A0399-8/topic/usb-controller-interrupts.html) Each USB controller uses PHY, power event, and main controller interrupts. - [USB controller reset control](https://docs.qualcomm.com/doc/80-A0399-8/topic/usb-controller-reset-control.html) The USB controller is reset through both clock controller reset mechanisms and a controller register bit. - [Enable a USB controller in Device mode](https://docs.qualcomm.com/doc/80-A0399-8/topic/enable-usb-controller-device-mode.html) Enable the USB controller in Device mode by enabling the PHY and controller device nodes. - [Configure UEFI USB](https://docs.qualcomm.com/doc/80-A0399-8/topic/configure-uefi-usb.html) UEFI USB code is open source and integrates with EDK2 with minimal QTI customizations. Last Published: Sep 17, 2026 [Previous Topic Enable a peripheral interface in the OOB subsystem](https://docs.qualcomm.com/bundle/publicresource/80-A0399-8/topics/enable-peripheral-interface-oob.md) [Next Topic Locate the PCIe firmware sources](https://docs.qualcomm.com/bundle/publicresource/80-A0399-8/topics/locate-pcie-firmware-sources.md)