mirror of
https://github.com/stnolting/neorv32.git
synced 2025-04-23 13:47:33 -04:00
[docs] add new DMA fence control register bit
This commit is contained in:
parent
4132e0e6a1
commit
bf777fa08a
1 changed files with 17 additions and 9 deletions
|
@ -113,6 +113,13 @@ sources are logically OR-ed).
|
|||
The DMA transfer will start if a **rising edge** is detected on _any_ of the enabled FIRQ source channels.
|
||||
|
||||
|
||||
**Memory Barrier / Fence Operation**
|
||||
|
||||
Optionally, the DMA can issue a FENCE request to the downstream memory system when a transfer has been completed
|
||||
without errors. This can be used to re-sync caches (flush and reload) and buffers to maintain data coherency.
|
||||
This automatic fencing is enabled by the setting the control register's `DMA_CTRL_FENCE` bit.
|
||||
|
||||
|
||||
**DMA Interrupt**
|
||||
|
||||
The DMA features a single CPU interrupt that is triggered when the programmed transfer has completed. This
|
||||
|
@ -127,15 +134,16 @@ explicitly cleared again by writing zero to the according <<_mip>> CSR bit.
|
|||
[options="header",grid="all"]
|
||||
|=======================
|
||||
| Address | Name [C] | Bit(s), Name [C] | R/W | Function
|
||||
.9+<| `0xffffed00` .9+<| `CTRL` <|`0` `DMA_CTRL_EN` ^| r/w <| DMA module enable
|
||||
<|`1` `DMA_CTRL_AUTO` ^| r/w <| Enable automatic mode (FIRQ-triggered)
|
||||
<|`7:2` _reserved_ ^| r/- <| reserved, read as zero
|
||||
<|`8` `DMA_CTRL_ERROR_RD` ^| r/- <| Error during read access, clears when starting a new transfer
|
||||
<|`9` `DMA_CTRL_ERROR_WR` ^| r/- <| Error during write access, clears when starting a new transfer
|
||||
<|`10` `DMA_CTRL_BUSY` ^| r/- <| DMA transfer in progress
|
||||
<|`11` `DMA_CTRL_DONE` ^| r/c <| Set if a transfer was executed; auto-clears on write-access
|
||||
<|`15:12` _reserved_ ^| r/- <| reserved, read as zero
|
||||
<|`31:16` `DMA_CTRL_FIRQ_MASK_MSB : DMA_CTRL_FIRQ_MASK_LSB` ^| r/w <| FIRQ trigger mask (same bits as in <<_mip>>)
|
||||
.10+<| `0xffffed00` .10+<| `CTRL` <|`0` `DMA_CTRL_EN` ^| r/w <| DMA module enable
|
||||
<|`1` `DMA_CTRL_AUTO` ^| r/w <| Enable automatic mode (FIRQ-triggered)
|
||||
<|`2` `DMA_CTRL_FENCE` ^| r/w <| Issue a downstream FENCE operation when DMA transfer completes (without errors)
|
||||
<|`7:3` _reserved_ ^| r/- <| reserved, read as zero
|
||||
<|`8` `DMA_CTRL_ERROR_RD` ^| r/- <| Error during read access, clears when starting a new transfer
|
||||
<|`9` `DMA_CTRL_ERROR_WR` ^| r/- <| Error during write access, clears when starting a new transfer
|
||||
<|`10` `DMA_CTRL_BUSY` ^| r/- <| DMA transfer in progress
|
||||
<|`11` `DMA_CTRL_DONE` ^| r/c <| Set if a transfer was executed; auto-clears on write-access
|
||||
<|`15:12` _reserved_ ^| r/- <| reserved, read as zero
|
||||
<|`31:16` `DMA_CTRL_FIRQ_MASK_MSB : DMA_CTRL_FIRQ_MASK_LSB` ^| r/w <| FIRQ trigger mask (same bits as in <<_mip>>)
|
||||
| `0xffffed04` | `SRC_BASE` |`31:0` | r/w | Source base address (shows the last-accessed source address when read)
|
||||
| `0xffffed08` | `DST_BASE` |`31:0` | r/w | Destination base address (shows the last-accessed destination address when read)
|
||||
.6+<| `0xffffed0c` .6+<| `TTYPE` <|`23:0` `DMA_TTYPE_NUM_MSB : DMA_TTYPE_NUM_LSB` ^| r/w <| Number of elements to transfer (shows the last-transferred element index when read)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue