DMA DREQ delay

Ask anything your want about the 32X Mushroom programming.

Moderator: BigEvilCorporation

Post Reply
ob1
Very interested
Posts: 463
Joined: Wed Dec 06, 2006 9:01 am
Location: Aix-en-Provence, France

DMA DREQ delay

Post by ob1 » Sat Feb 06, 2021 11:00 am

Once upon a time, Chilly Willy said :
Chilly Willy wrote:
Wed Oct 31, 2012 1:21 am
When doing 68K to 32X DMA via the FIFO in the 32X, it has a tendency to lose data randomly. Specifically, the DREQ fails to trigger the DMA under unknown circumstances, which means the SH2 DMA stops. If you are checking the FIFO full flags, it will "stick" at full because the DMA is no longer emptying the FIFO.
(...)
I'll try to find why it loses the DREQ, but it might be that this is something that will have to be worked around... a hardware bug not fixed before the production model chips were made.
On the project I'm currently working on, I've noted that I had to wait some time between setting CPU WRITE ($A15107b.2) and the first transfer from 68k to DREQ FIFO.
11 NOPs seems to be the bare minimal, but I'm more at ease with ~100 cycles.
This delay might be needed for the DREQ circuitry to warm-up, or the SH2 to get all the needed infos.

Tested on Fusion 3.64 and GensKMod 073.

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: DMA DREQ delay

Post by Chilly Willy » Tue May 04, 2021 4:06 pm

Thanks for that info. I'll have to try that out.

Post Reply