# dma

Direct Memory Access (DMA) is a data-transfer technology that lets a dedicated controller or driver transfer data directly between memory and a device, bypassing the CPU.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Debugging xHCI scratchpad allocation and port-status handling

DevFeed: [Debugging xHCI scratchpad allocation and port-status handling](<https://devfeed.tech/articles/xhci-a-life-lesson-learnt-33060.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/xhci-life-lesson-learnt/>)

Published: 2017-08-07T00:00:00Z

Content type: opinion

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [Hardware](<https://devfeed.tech/topics/hardware.md>), [Code](<https://devfeed.tech/topics/code.md>), [dma](<https://devfeed.tech/topics/dma.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dma](<https://devfeed.tech/tags/dma.md>), [driver](<https://devfeed.tech/tags/driver.md>), [free](<https://devfeed.tech/tags/free.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A developer describes implementing xHCI scratchpad buffer allocation while debugging incorrect port-status results. The article explains scratchpad buffers, DMA physical-address handling in Windows drivers, and a VMware xHCI implementation that required zero scratchpad buffers; the underlying port-status issue remained unresolved in the supplied text.

### Source excerpt

Recently I've worked on Scratchpad allocation. Scratchpad buffers are PAGESIZE blocks of system memory which the xHCI uses to store its internal state. xHCI can request 0 to 1024 buffers. Number of buffers required is given in the HCSPARAMS1 register. Each buffer is a PAGESIZE block aligned to PAGESIZE boundary. Scratchpad buffer array is an array which contains addresses of the scratchpad buffers. Its size is equal to the number of maximum scratchpad buffers required by the hardware.

## SATA AHCI Driver GSoC - Week 5 Update

DevFeed: [SATA AHCI Driver GSoC - Week 5 Update](<https://devfeed.tech/articles/sata-ahci-driver-gsoc-week-5-update-33017.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/sata-ahci-driver-gsoc-week-5-update/>)

Published: 2016-06-29T00:00:00Z

Content type: article

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [dma](<https://devfeed.tech/topics/dma.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [debug](<https://devfeed.tech/tags/debug.md>), [dma](<https://devfeed.tech/tags/dma.md>), [driver](<https://devfeed.tech/tags/driver.md>), [free](<https://devfeed.tech/tags/free.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [programming](<https://devfeed.tech/tags/programming.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [update](<https://devfeed.tech/tags/update.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

A GSoC Week 5 update on a SATA AHCI driver describes progress on AHCI port programming and the Interrupt Handler, with port programming still untested. The author has added ATA/ATAPI DMA data transfer support, is focusing on normally queued I/O while NCQ is disabled, and plans to implement Srb functions and add NCQ in later revisions.

### Source excerpt

From beginning of week I started reading more stuffs (core) about AHCI and trying to plan a road map which I will follow after making first version of AHCI driver. Throughout the week I made some progress with Interrupt Handler and AHCI port programming. Though I have finished port programming routine and next I will complete Interrupt Handler followed by Srb functions. Port programming is still untested (fingers crossed), because I can't test it without Interrupt Handler routine (I can, but It will not give 100% surety) looking forward to get these two routines tested in this week.