Category Archives: Uncategorized
How to send patches with git-send-email
The prerequisites for this tutorial is that you have already made some changes to your local kernel tree and that these changes have been committed. In this tutorial, are described the steps to follow in order to create and send … Continue reading
How to enable and tune Dynamic Debugging for xHCI
Dynamic debugging is a kernel debug mechanism that aims to allow linux users and developers to dynamically enable or suppress kernel debugging statements. The debugging statements which can be managed via the dynamic debug interface are those that have been … Continue reading
Use libusb to issue a clear halt to an endpoint
Currently, I work on fixing the xhci_endpoint_reset() function so that an endpoint will get reset properly when the usb device driver calls usb_reset_endpoint() through a call to usb_clear_halt(). In order to trigger the bug, I have to issue a clear … Continue reading
xHCI Interrupts
This post starts with a brief reference to how iterrupts are implemented on PCI platforms. There are three methods to implement interrupts on PCI platforms: 1) legacy interrupts The devices attached to PCI bus are equipped with an external interrupt … Continue reading
Issueing commands to xHC
To issue commands to the USB device or the xHC, the xhci driver uses two basic structures, the Command TRBs and the Command Ring. In effect, the Command Ring is a circular buffer in host memory where the Command TRBs … Continue reading
DMA mask setup for xHCI
The xHCI interface defines data structures that are used by the xhci-hcd driver and the xHC host controller to manage the usb devices. The buffers referenced by these data structures are allocated in host memory and the transfer operations between … Continue reading
Trace-cmd
Trace-cmd is a tool implemented by Steven Rostedt. Its purpose is to facilitate the users’ control over the kernel tracing mechanism and to add support for more elaborate parsing and display of the trace output through plugins. The trace-cmd tool … Continue reading
Linux Kernel Tracing
Ftrace is a tracing mechanism built into the kernel which gives the ability to developers to trace specific events by inserting appropriate tracepoints into the appropriate code sites. Except from the trace event feature, the kernel can be configured to … Continue reading
Diving into the linux kernel
In 7 days from now, my internship in the Linux USB3.0 controller driver will start and I still don’t know what to say. That just leaves me speechless. Not fingerless. Circumstances vortex, that used to send me to keep company … Continue reading