S2MM_VDMACR (S2MM VDMA Control Register – Offset 30h) - 6.3 English

AXI Video Direct Memory Access v6.3 Product Guide (PG020)

Document ID
PG020
Release Date
2022-06-08
Version
6.3 English

This register provides control for the Stream to Memory Map VDMA Channel.

Figure 2-9:      S2MM VDMACR Register

X-Ref Target - Figure 2-9

pg020_s2mm_dmacr_register_x13742.jpg
Table 2-11:      S2MM_VDMACR Register Details

Bits

Field Name

Default
Value

Access
Type

Description

31–24

IRQDelayCount

00h

R/W

This value is used for setting the interrupt delay count value. The delay count interrupt is a mechanism for causing the S2MM channel to generate an interrupt after the delay period has expired. The timer begins counting either upon receipt of frame sync (external fsync mode) or completion of vsize lines (free run mode). It resets with the subsequent start-of-packet (s_axis_s2mm_tvalid) assertion. When a value different than the current IRQDelayCount is written to this field, the internal delay counter is reset to the new value.

Setting this value to zero disables the delay counter interrupt.

23-16

IRQFrameCount

01h

R/W

This value is used for setting the interrupt threshold. When a frame transfer starts, an internal counter counts down from the Interrupt Frame Count setting.

When the count reaches zero, an interrupt out is generated by the S2MM channel. When a value different than the current IRQFrameCount is written to this field, the internal frame counter is reset to the new value.

The minimum setting for the count is 0x01. A write of 0x00 to this register sets the count to 0x01.

When DMACR.FrameCntEn = 1, this value determines the number of frame buffers to process.

15

Repeat_En

0h

R/W

Enables repeat or advance frame when AXI VDMA encounters a frame error. This is applicable when AXI VDMA is configured in Genlock Master or Dynamic Genlock Master.

0 – Advance to next frame on frame errors

1 – Repeat previous frame on frame errors

14

Err_IrqEn

0h

R/W

Interrupt on Error Interrupt Enable. When set to 1, allows VDMASR.Err_Irq to generate an interrupt out.

0 = Error Interrupt disabled

1 = Error Interrupt enabled

13

DlyCnt_IrqEn

0h

R/W

Delay Count Interrupt Enable. When set to 1, allows DMASR.DlyCnt_Irq to generate an interrupt out.

0 = Delay Count Interrupt disabled

1 = Delay Count Interrupt enabled

12

FrmCnt_IrqEn

0h

R/W

Frame Count Complete Interrupt Enable. When set to 1, allows DMASR.FrmCnt_Irq to generate an interrupt out when the IRQFrameCount value reaches zero.

0 = Frame Count Interrupt disabled

1 = Frame Count Interrupt enabled   

11–8

WrPntrNum

0h

R/W

Indicates the master in control when the S2MM channel is configured for Genlock slave/Dynamic Genlock Master/Dynamic Genlock Slave.

0000b = Controlling entity is Entity 1

0001b = Controller entity is Entity 2

0010b = Controller entity is Entity 3

and so on

7

GenlockSrc

1h

R/W

Sets the Genlock source for Genlock slaves. This bit is set by default when both channels are enabled and are configured as a valid Genlock pair.

0 = External Genlock

1 = Internal Genlock

6–5

Reserved

0h

R/W

Write has no effect on AXI VDMA.

4

FrameCntEn

0h

R/W

Configures the S2MM channel to allow only IRQFrameCount number of transfers to occur. After the IRQFrameCount frames are completely transferred, the S2MM channel halts, DMACR.RS bit is deasserted, and the DMASR.Halted asserts when the channel has completely halted.

3

GenlockEn

0h

R/W

Enables Genlock or Dynamic Genlock Synchronization.

0 = Genlock or Dynamic Genlock Synchronization disabled. Genlock input is ignored by S2MM.

1 = Genlock or Dynamic Genlock Synchronization enabled. S2MM synchronized to Genlock frame input.

Note:   This value is only valid when the channel is configured as Genlock Slave or Dynamic Genlock Master or Dynamic Genlock Slave. If configured for Genlock Master mode, this bit is reserved and always reads as zero.

See Genlock Synchronization for more details on different Genlock modes.

2

Reset

0h

R/W

Soft reset for AXI VDMA S2MM channel. Setting this bit to a 1 causes the AXI VDMA S2MM channel to be reset. Reset is accomplished gracefully. Pending commands/transfers are flushed or completed. AXI4-Stream reset output is asserted. Setting VDMACR.Reset = 1 only resets the S2MM channel. After completion of a soft reset, all S2MM registers and bits are in the default state. This bit will be 0 at the end of reset cycle.

0 = Normal operation

1 = Reset in progress

1

Circular_Park

1h

R/W

Indicates frame buffer Circular mode or frame buffer Park mode.

0 = Park Mode – Engine will park on the frame buffer referenced by PARK_PTR_REG.WrFrmPntrRef.

1 = Circular Mode – Engine continuously circles through frame buffers.

0

RS

0h

R/W

Run / Stop. Controls running and stopping of the VDMA channel. For any VDMA operations to commence the AXI VDMA engine must be running (VDMACR.RS=1).

0 = Stop – VDMA stops when current (if any) VDMA operations are complete. The halted bit in the VDMA Status Register asserts to 1 when the VDMA engine is halted. This bit gets cleared by the AXI VDMA hardware when an error occurs. The CPU can also choose to clear this bit to stop VDMA operations.

1 = Run – Start VDMA operations. The halted bit in the VDMA Status Register deasserts to 0 when the VDMA engine begins operations.

Note:   If Run/Stop is cleared, in-progress stream transfers might terminate early.