NDMA: Difference between revisions
mNo edit summary |
No edit summary |
||
| (6 intermediate revisions by 2 users not shown) | |||
| Line 117: | Line 117: | ||
|- | |- | ||
| 11-10 | | 11-10 | ||
| Destination address update method. | | Destination address update method. 0=Increment, 1=Decrement, 2=Fixed. | ||
|- | |- | ||
| 12 | | 12 | ||
| Line 123: | Line 123: | ||
|- | |- | ||
| 14-13 | | 14-13 | ||
| Source address update method. | | Source address update method. 0=Increment, 1=Decrement, 2=Fixed, 3=No address (for filling) | ||
|- | |- | ||
| 15 | | 15 | ||
| Line 129: | Line 129: | ||
|- | |- | ||
| 19-16 | | 19-16 | ||
| Block transfer word count. | | Block transfer word count = (1<<x) words. | ||
|- | |- | ||
| 27-24 | | 27-24 | ||
| Line 146: | Line 146: | ||
| Enable/busy flag. | | Enable/busy flag. | ||
|} | |} | ||
== Startup modes (27-24) for ARM9 == | |||
{| class="wikitable" border="1" | |||
! VALUE | |||
! DESCRIPTION | |||
|- | |||
| 0 | |||
| Timer 0 | |||
|- | |||
| 1 | |||
| Timer 1 | |||
|- | |||
| 2 | |||
| Timer 2 | |||
|- | |||
| 3 | |||
| Timer 3 | |||
|- | |||
| 4 | |||
| Game Card | |||
|- | |||
| 6 | |||
| V-Blank | |||
|- | |||
| 7 | |||
| H-Blank | |||
|- | |||
| 8 | |||
| Display | |||
|- | |||
| 9 | |||
| Work RAM | |||
|- | |||
| 10 | |||
| Geometry FIFO | |||
|- | |||
| 11 | |||
| Camera | |||
|} | |||
== Startup modes (27-24) for ARM7 == | |||
{| class="wikitable" border="1" | |||
! VALUE | |||
! DESCRIPTION | |||
|- | |||
| 0 | |||
| Timer 0 | |||
|- | |||
| 1 | |||
| Timer 1 | |||
|- | |||
| 2 | |||
| Timer 2 | |||
|- | |||
| 3 | |||
| Timer 3 | |||
|- | |||
| 4 | |||
| Game Card | |||
|- | |||
| 6 | |||
| V-Blank | |||
|- | |||
| 7 | |||
| Wireless | |||
|- | |||
| 8 | |||
| SD I/F 1 | |||
|- | |||
| 9 | |||
| SD I/F 2 | |||
|- | |||
| 10 | |||
| AES in | |||
|- | |||
| 11 | |||
| AES out / MIC(?) | |||
|- | |||
| 12 | |||
| MIC(?) | |||
|} | |||
== Block transfers == | |||
First, a word is always 32 bits. Second, the block transfer specified in REG_NDMACNT is the smallest atom of data that will be transferred in a burst. The bus is monopolized until this block is transferred, without splitting up. | |||
The next block transfer will happen after the specified time in the REG_NDMABCNT interval timer, until done. | |||
== Immediate mode == | |||
Transfers the words specified in REG_NDMAWCNT immediately following block transfer rules. REG_NDMATCNT and repeating mode are ignored. | |||
== Repeating mode == | |||
Transfers the words specified in REG_NDMAWCNT following the startup mode event. REG_DMATCNT is ignored. | |||
== No immediate and no repeating mode == | |||
Transfers the words specified in REG_NDMAWCNT for each startup event, and gets disabled when the total number of words in REG_NDMATCNT are transferred. | |||