Skip to content

ata: Implement DMA transfers#192

Merged
dingusdev merged 2 commits into
dingusdev:masterfrom
mihaip:upstream-ata-dma-take2
Jul 12, 2026
Merged

ata: Implement DMA transfers#192
dingusdev merged 2 commits into
dingusdev:masterfrom
mihaip:upstream-ata-dma-take2

Conversation

@mihaip

@mihaip mihaip commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Add read/write DMA support to ATA devices (mostly reusing existing PIO read and write paths).

We also need to advance data_ptr across DMA pulls so transfers can span multiple DBDMA descriptors.

Fixes #154

@dingusdev dingusdev left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implementation of push_data should be its own commit.
Other than that, this looks good.

mihaip added 2 commits July 11, 2026 17:44
Implement push_data in AtaBaseDevice using the device transfer buffer and
post-transfer callback.

Advance the read data pointer across DMA pulls so a transfer can span
multiple DBDMA descriptors, and clear the DMA state when transfers finish.
Add read/write DMA command support to ATA hard disks (can mostly reuse the PIO paths).
@mihaip
mihaip force-pushed the upstream-ata-dma-take2 branch from 7776eb2 to 017a4a4 Compare July 12, 2026 00:46
@mihaip
mihaip requested a review from dingusdev July 12, 2026 00:46
@dingusdev
dingusdev merged commit 42e617f into dingusdev:master Jul 12, 2026
7 checks passed
mihaip added a commit to mihaip/infinite-mac that referenced this pull request Jul 12, 2026
Also includes the fix from dingusdev/dingusppc#192 which allows the Mac OS X
public beta to boot.

For #219
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Mac OS X Public Beta does not boot

2 participants