Registers

Summary

NameOffsetLengthDescription
dma.INTR_STATE0x04Interrupt State Register
dma.INTR_ENABLE0x44Interrupt Enable Register
dma.INTR_TEST0x84Interrupt Test Register
dma.ALERT_TEST0xc4Alert Test Register
dma.SRC_ADDR_LO0x104Lower 32 bits of the physical or virtual address of memory location within SoC memory address map or physical address within OT non-secure memory space.
dma.SRC_ADDR_HI0x144Upper 32 bits of the source address.
dma.DST_ADDR_LO0x184Lower 32 bits of the physical or virtual address of memory location within SoC memory address map or physical address within OT non-secure memory space.
dma.DST_ADDR_HI0x1c4Upper 32 bits of the destination address.
dma.ADDR_SPACE_ID0x204Address space that source and destination pointers refer to.
dma.ENABLED_MEMORY_RANGE_BASE0x244Base Address to mark the start of the DMA enabled memory range within the OT internal memory space.
dma.ENABLED_MEMORY_RANGE_LIMIT0x284Limit Address to mark the end of the DMA enabled memory range within the OT internal memory space.
dma.RANGE_VALID0x2c4Indicates that the ENABLED_MEMORY_RANGE_BASE and _LIMIT registers have been programmed to restrict DMA accesses within the OT internal address space.
dma.RANGE_REGWEN0x304Used to lock the DMA enabled memory range configuration registers.
dma.CFG_REGWEN0x344Indicates whether the configuration registers are locked because the DMA controller is operating.
dma.TOTAL_DATA_SIZE0x384Total size of the data blob involved in DMA movement.
dma.CHUNK_DATA_SIZE0x3c4Number of bytes to be transferred in response to each interrupt/firmware request.
dma.TRANSFER_WIDTH0x404Denotes the width of each transaction that the DMA shall issue.
dma.CONTROL0x444Control register for DMA data movement.
dma.SRC_CONFIG0x484Defines the addressing behavior of the DMA for the source address.
dma.DST_CONFIG0x4c4Defines the addressing behavior of the DMA for the destination address.
dma.STATUS0x504Status indication for DMA data movement.
dma.ERROR_CODE0x544Denotes the source of the operational error.
dma.SHA2_DIGEST_00x584Digest register for the inline hashing operation.
dma.SHA2_DIGEST_10x5c4Digest register for the inline hashing operation.
dma.SHA2_DIGEST_20x604Digest register for the inline hashing operation.
dma.SHA2_DIGEST_30x644Digest register for the inline hashing operation.
dma.SHA2_DIGEST_40x684Digest register for the inline hashing operation.
dma.SHA2_DIGEST_50x6c4Digest register for the inline hashing operation.
dma.SHA2_DIGEST_60x704Digest register for the inline hashing operation.
dma.SHA2_DIGEST_70x744Digest register for the inline hashing operation.
dma.SHA2_DIGEST_80x784Digest register for the inline hashing operation.
dma.SHA2_DIGEST_90x7c4Digest register for the inline hashing operation.
dma.SHA2_DIGEST_100x804Digest register for the inline hashing operation.
dma.SHA2_DIGEST_110x844Digest register for the inline hashing operation.
dma.SHA2_DIGEST_120x884Digest register for the inline hashing operation.
dma.SHA2_DIGEST_130x8c4Digest register for the inline hashing operation.
dma.SHA2_DIGEST_140x904Digest register for the inline hashing operation.
dma.SHA2_DIGEST_150x944Digest register for the inline hashing operation.
dma.HANDSHAKE_INTR_ENABLE0x984Enable bits for incoming handshake interrupt wires.
dma.CLEAR_INTR_SRC0x9c4Valid bits for which interrupt sources need clearing.
dma.CLEAR_INTR_BUS0xa04Bus selection bit where the clearing command should be performed.“
dma.INTR_SRC_ADDR_00xa44Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_10xa84Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_20xac4Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_30xb04Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_40xb44Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_50xb84Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_60xbc4Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_70xc04Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_80xc44Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_90xc84Destination address for interrupt source clearing write.
dma.INTR_SRC_ADDR_100xcc4Destination address for interrupt source clearing write.
dma.INTR_SRC_WR_VAL_00x1244Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_10x1284Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_20x12c4Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_30x1304Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_40x1344Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_50x1384Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_60x13c4Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_70x1404Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_80x1444Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_90x1484Write value for interrupt clearing write.
dma.INTR_SRC_WR_VAL_100x14c4Write value for interrupt clearing write.

INTR_STATE

Interrupt State Register

  • Offset: 0x0
  • Reset default: 0x0
  • Reset mask: 0x7

Fields

{"reg": [{"name": "dma_done", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "dma_chunk_done", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "dma_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 29}], "config": {"lanes": 1, "fontsize": 10, "vspace": 160}}
BitsTypeResetNameDescription
31:3Reserved
2ro0x0dma_errorDMA error has occurred. DMA_STATUS.error_code register shows the details.
1ro0x0dma_chunk_doneIndicates the transfer of a single chunk has been completed.
0ro0x0dma_doneDMA operation has been completed.

INTR_ENABLE

Interrupt Enable Register

  • Offset: 0x4
  • Reset default: 0x0
  • Reset mask: 0x7

Fields

{"reg": [{"name": "dma_done", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "dma_chunk_done", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "dma_error", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 29}], "config": {"lanes": 1, "fontsize": 10, "vspace": 160}}
BitsTypeResetNameDescription
31:3Reserved
2rw0x0dma_errorEnable interrupt when INTR_STATE.dma_error is set.
1rw0x0dma_chunk_doneEnable interrupt when INTR_STATE.dma_chunk_done is set.
0rw0x0dma_doneEnable interrupt when INTR_STATE.dma_done is set.

INTR_TEST

Interrupt Test Register

  • Offset: 0x8
  • Reset default: 0x0
  • Reset mask: 0x7

Fields

{"reg": [{"name": "dma_done", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "dma_chunk_done", "bits": 1, "attr": ["wo"], "rotate": -90}, {"name": "dma_error", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 29}], "config": {"lanes": 1, "fontsize": 10, "vspace": 160}}
BitsTypeResetNameDescription
31:3Reserved
2wo0x0dma_errorWrite 1 to force INTR_STATE.dma_error to 1.
1wo0x0dma_chunk_doneWrite 1 to force INTR_STATE.dma_chunk_done to 1.
0wo0x0dma_doneWrite 1 to force INTR_STATE.dma_done to 1.

ALERT_TEST

Alert Test Register

  • Offset: 0xc
  • Reset default: 0x0
  • Reset mask: 0x1

Fields

{"reg": [{"name": "fatal_fault", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
BitsTypeResetNameDescription
31:1Reserved
0wo0x0fatal_faultWrite 1 to trigger one alert event of this kind.

SRC_ADDR_LO

Lower 32 bits of the physical or virtual address of memory location within SoC memory address map or physical address within OT non-secure memory space. Data is read from this location in a copy operation. The address may be an IO virtual address. Must be aligned to the transfer width.

  • Offset: 0x10
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "src_addr_lo", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0src_addr_loLower 32 bits of the source address. Must be aligned to the transfer width.

SRC_ADDR_HI

Upper 32 bits of the source address. Must be aligned to the transfer width. Source and destination address must have the same alignment.

  • Offset: 0x14
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "src_addr_hi", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:0rw0x0src_addr_hi

SRC_ADDR_HI . src_addr_hi

Upper 32 bits of the physical or virtual address of memory location within SoC memory address map or physical address within OT non-secure memory space. Must be aligned to the transfer width. Source and destination address must have the same alignment.

DST_ADDR_LO

Lower 32 bits of the physical or virtual address of memory location within SoC memory address map or physical address within OT non-secure memory space. Data is written to this location in a copy operation. The address may be an IO virtual address. Must be aligned to the transfer width. Source and destination address must have the same alignment.

  • Offset: 0x18
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "dst_addr_lo", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0dst_addr_loLower 32 bits of the destination address. Must be aligned to the transfer width. Source and destination address must have the same alignment.

DST_ADDR_HI

Upper 32 bits of the destination address. Must be aligned to the transfer width. Source and destination address must have the same alignment.

  • Offset: 0x1c
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "dst_addr_hi", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:0rw0x0dst_addr_hi

DST_ADDR_HI . dst_addr_hi

Upper 32 bits of the physical or virtual address of memory location within SoC memory address map or physical address within OT non-secure memory space. Must be aligned to the transfer width. Source and destination address must have the same alignment.

ADDR_SPACE_ID

Address space that source and destination pointers refer to.

  • Offset: 0x20
  • Reset default: 0x77
  • Reset mask: 0xff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "src_asid", "bits": 4, "attr": ["rw"], "rotate": -90}, {"name": "dst_asid", "bits": 4, "attr": ["rw"], "rotate": -90}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 100}}
BitsTypeResetName
31:8Reserved
7:4rw0x7dst_asid
3:0rw0x7src_asid

ADDR_SPACE_ID . dst_asid

Target address space that the destination address pointer refers to.

ValueNameDescription
0x7OT_ADDROpenTitan 32-bit internal bus.
0xaSOC_ADDRSoC control register bus using 32-bit (or 64 bits if configured by an SoC) control port.
0x9SYS_ADDR“SoC system address bus using 64 bit SYS port.

Other values are reserved.

ADDR_SPACE_ID . src_asid

Target address space that the source address pointer refers to.

ValueNameDescription
0x7OT_ADDROpenTitan 32-bit internal bus.
0xaSOC_ADDRSoC control register bus using 32-bit (or 64 bits if configured by an SoC) control port.
0x9SYS_ADDR“SoC system address bus using 64 bit SYS port.

Other values are reserved.

ENABLED_MEMORY_RANGE_BASE

Base Address to mark the start of the DMA enabled memory range within the OT internal memory space.

  • Offset: 0x24
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: RANGE_REGWEN

Fields

{"reg": [{"name": "base", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0baseBase Address to mark the start of the DMA enabled memory range within the OT internal memory space.

ENABLED_MEMORY_RANGE_LIMIT

Limit Address to mark the end of the DMA enabled memory range within the OT internal memory space.

  • Offset: 0x28
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: RANGE_REGWEN

Fields

{"reg": [{"name": "limit", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0limitLimit Address to mark the end of the DMA enabled memory range within the OT internal memory space.

RANGE_VALID

Indicates that the ENABLED_MEMORY_RANGE_BASE and _LIMIT registers have been programmed to restrict DMA accesses within the OT internal address space.

  • Offset: 0x2c
  • Reset default: 0x0
  • Reset mask: 0x1
  • Register enable: RANGE_REGWEN

Fields

{"reg": [{"name": "range_valid", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 31}], "config": {"lanes": 1, "fontsize": 10, "vspace": 130}}
BitsTypeResetNameDescription
31:1Reserved
0rw0x0range_validOnce set the enabled memory base and limit registers are valid.

RANGE_REGWEN

Used to lock the DMA enabled memory range configuration registers.

  • Offset: 0x30
  • Reset default: 0x6
  • Reset mask: 0xf

Fields

{"reg": [{"name": "regwen", "bits": 4, "attr": ["rw0c"], "rotate": 0}, {"bits": 28}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:4Reserved
3:0rw0c0x6regwen

RANGE_REGWEN . regwen

Used by firmware to lock the DMA enabled memory range configuration registers from further modification. Once this register is set to kMultiBitBool4False, it can only be set to kMultiBitBool4True through a reset event.

Default Value = kMultiBitBool4True -> Unlocked at reset.

CFG_REGWEN

Indicates whether the configuration registers are locked because the DMA controller is operating. In the idle state, this register is set to kMultiBitBool4True. When the DMA is performing an operation, i.e., the DMA is busy, this register is set to kMultiBitBool4False. During the DMA operation, the CONTROL and STATUS registers remain usable. The comportable registers (the interrupt and alert configuration) are NOT locked during the DMA operation and can still be updated. When the DMA reaches an interrupt or alert condition, it will perform the action according to the current register configuration.

  • Offset: 0x34
  • Reset default: 0x6
  • Reset mask: 0xf

Fields

{"reg": [{"name": "regwen", "bits": 4, "attr": ["ro"], "rotate": 0}, {"bits": 28}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:4Reserved
3:0ro0x6regwenUsed by hardware to lock the DMA configuration registers. This register is purely managed by hardware and only software readable.

TOTAL_DATA_SIZE

Total size of the data blob involved in DMA movement.

  • Offset: 0x38
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "data_size", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:0rw0x0data_size

TOTAL_DATA_SIZE . data_size

Total size (in bytes) of the data blob involved in DMA movement for multiple transfers.

Minimum: 1 byte. Maximum: May be restricted to a maximum pre-defined size based on OT DMA enabled memory space allocation. Works in conjunction with Transfer width register.

CHUNK_DATA_SIZE

Number of bytes to be transferred in response to each interrupt/firmware request.

  • Offset: 0x3c
  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "data_size", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetName
31:0rw0x0data_size

CHUNK_DATA_SIZE . data_size

Size (in bytes) for a single DMA transfer. In hardware handshake mode, the DMA reads in chunks of CHUNK_DATA_SIZE from the peripheral. For a single memory transfer CHUNK_DATA_SIZE and TOTAL_DATA_SIZE are set to the same value.

Minimum: 1 byte. Maximum: May be restricted to a maximum pre-defined size based on OT DMA enabled memory space allocation. Works in conjunction with Transfer width register.

TRANSFER_WIDTH

Denotes the width of each transaction that the DMA shall issue.

  • Offset: 0x40
  • Reset default: 0x2
  • Reset mask: 0x3
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "transaction_width", "bits": 2, "attr": ["rw"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 190}}
BitsTypeResetName
31:2Reserved
1:0rw0x2transaction_width

TRANSFER_WIDTH . transaction_width

Denotes the width of each transaction that the DMA shall issue during the data movement.

Multiple transactions of this width will be issued until total size number of bytes are reached. Note that firmware may need to set a different value if a receiving IP supports a read / write transaction width that is less than 1 DWORD. This does not affect the wrap-around mechanism. Note that the value 3 for this register represents an invalid configuration that leads to an error.

ValueNameDescription
0x0ONE_BYTEOne byte per transaction.
0x1TWO_BYTETwo bytes per transaction.
0x2FOUR_BYTEFour bytes per transaction. Default value after reset.

Other values are reserved.

CONTROL

Control register for DMA data movement.

  • Offset: 0x44
  • Reset default: 0x0
  • Reset mask: 0x8800011f

Fields

{"reg": [{"name": "opcode", "bits": 4, "attr": ["rw"], "rotate": 0}, {"name": "hardware_handshake_enable", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 3}, {"name": "initial_transfer", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 18}, {"name": "abort", "bits": 1, "attr": ["wo"], "rotate": -90}, {"bits": 3}, {"name": "go", "bits": 1, "attr": ["rw"], "rotate": -90}], "config": {"lanes": 1, "fontsize": 10, "vspace": 270}}
BitsTypeResetName
31rw0x0go
30:28Reserved
27wo0x0abort
26:9Reserved
8rw0x0initial_transfer
7:5Reserved
4rw0x0hardware_handshake_enable
3:0rw0x0opcode

CONTROL . go

Trigger the DMA operation when the Go bit is set. For normal operation, DMA engine clears the GO bit automatically after the configured operation is complete. For Hardware handshake operation, DMA engine does not auto clear the Go bit. Firmware shall clear the Go bit when it intends to stop the hardware handshake operation.

CONTROL . abort

Aborts the DMA operation if this bit is set. Sets the corresponding bit in the status register once abort operation is complete. Any OpenTitan-internal transactions are guaranteed to complete, but there are no guarantees on the SoC interface.

CONTROL . initial_transfer

Marks the initial transfer to initialize the DMA and SHA engine for one transfer that can span over multiple single DMA transfers. Used for hardware handshake and ordinary transfers, in which multiple transfers contribute to a final digest. Note, for non-handshake transfers with inline hashing mode enabled, this bit must be set to also mark the first transfer.

CONTROL . hardware_handshake_enable

Enable hardware handshake mode. Used to clear FIFOs from low speed IO peripherals receiving data, e.g., I3C receive buffer. Listen to an input trigger signal. Read data from source address location. Copy to destination address. Number of bytes specified in size register. Note assumption is the peripheral lowers input once FIFO is cleared. No explicit clearing necessary.

CONTROL . opcode

Defines the type of DMA operations.

ValueNameDescription
0x0COPYCopy Operation, Simple copy from source to destination.
0x1SHA256Perform inline hashing using SHA256.
0x2SHA384Perform inline hashing using SHA384.
0x3SHA512Perform inline hashing using SHA512.

Other values are reserved.

SRC_CONFIG

Defines the addressing behavior of the DMA for the source address.

  • Offset: 0x48
  • Reset default: 0x0
  • Reset mask: 0x3
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "increment", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "wrap", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 110}}
BitsTypeResetNameDescription
31:2Reserved
1rw0x0wrapWhen 1: Source address wrapped back to the starting address when finishing a chunk.
0rw0x0incrementDefines the increment behavior after every DMA read. When 0: Source address is not changed. All reads are done from the same address. When 1: Source address is incremented by transfer_width after each read.

DST_CONFIG

Defines the addressing behavior of the DMA for the destination address.

  • Offset: 0x4c
  • Reset default: 0x0
  • Reset mask: 0x3
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "increment", "bits": 1, "attr": ["rw"], "rotate": -90}, {"name": "wrap", "bits": 1, "attr": ["rw"], "rotate": -90}, {"bits": 30}], "config": {"lanes": 1, "fontsize": 10, "vspace": 110}}
BitsTypeResetNameDescription
31:2Reserved
1rw0x0wrapWhen 1: Destination address wrapped back to the starting address when finishing a chunk.
0rw0x0incrementDefines the increment behavior after every DMA write. When 0: Destination address is not changed. All writes are done to the same address. When 1: Destination address is incremented by transfer_width after each write.

STATUS

Status indication for DMA data movement.

  • Offset: 0x50
  • Reset default: 0x0
  • Reset mask: 0x3f

Fields

{"reg": [{"name": "busy", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "done", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "aborted", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "error", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"name": "sha2_digest_valid", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "chunk_done", "bits": 1, "attr": ["rw1c"], "rotate": -90}, {"bits": 26}], "config": {"lanes": 1, "fontsize": 10, "vspace": 190}}
BitsTypeResetNameDescription
31:6Reserved
5rw1c0x0chunk_doneTransfer of a single chunk is complete. Only raised for multi-chunk memory-to-memory transfers. Cleared automatically by the hardware when starting the transfer of a new chunk.
4ro0x0sha2_digest_validIndicates whether the SHA2_DIGEST register contains a valid digest. This value is cleared on the initial transfer and set when the digest is written.
3rw1c0x0errorError occurred during the operation. ERROR_CODE register denotes the source of the error.
2rw1c0x0abortedSet once aborted operation drains.
1rw1c0x0doneConfigured DMA operation is complete. Cleared automatically by the hardware when starting a new transfer.
0ro0x0busyDMA operation is active if this bit is set. DMA engine clears this bit when operation is complete. This bit may be set as long as hardware handshake mode is active and triggered.

ERROR_CODE

Denotes the source of the operational error. The error is cleared by writing the RW1C STATUS.error register.

  • Offset: 0x54
  • Reset default: 0x0
  • Reset mask: 0xff

Fields

{"reg": [{"name": "src_addr_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "dst_addr_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "opcode_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "size_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "bus_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "base_limit_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "range_valid_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "asid_error", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 24}], "config": {"lanes": 1, "fontsize": 10, "vspace": 190}}
BitsTypeResetNameDescription
31:8Reserved
7ro0x0asid_errorThe source or destination ASID contains an invalid value.
6ro0x0range_valid_errorThe DMA enabled memory range is not configured.
5ro0x0base_limit_errorThe base and limit addresses contain an invalid value.
4ro0x0bus_errorThe bus transfer returned an error.
3ro0x0size_errorTRANSFER_WIDTH encodes an invalid value, TOTAL_DATA_SIZE or CHUNK_SIZE are zero, or inline hashing is not using 32-bit transfer width
2ro0x0opcode_errorOpcode is invalid.
1ro0x0dst_addr_errorDestination address is invalid.
0ro0x0src_addr_errorSource address is invalid.

SHA2_DIGEST

Digest register for the inline hashing operation. Depending on the used hashing mode, not all registers are used. SHA256: Digest is stored in registers 0 to 7 SHA384: Digest is stored in registers 0 to 11 SHA512: Digest is stored in registers 0 to 15

  • Reset default: 0x0
  • Reset mask: 0xffffffff

Instances

NameOffset
SHA2_DIGEST_00x58
SHA2_DIGEST_10x5c
SHA2_DIGEST_20x60
SHA2_DIGEST_30x64
SHA2_DIGEST_40x68
SHA2_DIGEST_50x6c
SHA2_DIGEST_60x70
SHA2_DIGEST_70x74
SHA2_DIGEST_80x78
SHA2_DIGEST_90x7c
SHA2_DIGEST_100x80
SHA2_DIGEST_110x84
SHA2_DIGEST_120x88
SHA2_DIGEST_130x8c
SHA2_DIGEST_140x90
SHA2_DIGEST_150x94

Fields

{"reg": [{"name": "data", "bits": 32, "attr": ["ro"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0ro0x0dataSHA2 digest data

HANDSHAKE_INTR_ENABLE

Enable bits for incoming handshake interrupt wires.

  • Offset: 0x98
  • Reset default: 0x7ff
  • Reset mask: 0x7ff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "mask", "bits": 11, "attr": ["rw"], "rotate": 0}, {"bits": 21}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:11Reserved
10:0rw0x7ffmaskEnable bits for incoming handshake interrupt wires.

CLEAR_INTR_SRC

Valid bits for which interrupt sources need clearing. When HANDSHAKE_INTR_ENABLE is non-zero and corresponding lsio_trigger becomes set, DMA issues writes with address from INTR_SRC_ADDR and write value from INTR_SRC_WR_VAL corresponding to each bit set in this register.

  • Offset: 0x9c
  • Reset default: 0x0
  • Reset mask: 0x7ff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "source", "bits": 11, "attr": ["rw"], "rotate": 0}, {"bits": 21}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:11Reserved
10:0rw0x0sourceSource N needs interrupt cleared

CLEAR_INTR_BUS

Bus selection bit where the clearing command should be performed.“ 0: CTN/System fabric 1: OT-internal crossbar

  • Offset: 0xa0
  • Reset default: 0x0
  • Reset mask: 0x7ff
  • Register enable: CFG_REGWEN

Fields

{"reg": [{"name": "bus", "bits": 11, "attr": ["rw"], "rotate": 0}, {"bits": 21}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:11Reserved
10:0rw0x0busBus selection bit for source N.

INTR_SRC_ADDR

Destination address for interrupt source clearing write.

  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Instances

NameOffset
INTR_SRC_ADDR_00xa4
INTR_SRC_ADDR_10xa8
INTR_SRC_ADDR_20xac
INTR_SRC_ADDR_30xb0
INTR_SRC_ADDR_40xb4
INTR_SRC_ADDR_50xb8
INTR_SRC_ADDR_60xbc
INTR_SRC_ADDR_70xc0
INTR_SRC_ADDR_80xc4
INTR_SRC_ADDR_90xc8
INTR_SRC_ADDR_100xcc

Fields

{"reg": [{"name": "addr", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0addrDestination address for interrupt source clearing write.

INTR_SRC_WR_VAL

Write value for interrupt clearing write.

  • Reset default: 0x0
  • Reset mask: 0xffffffff
  • Register enable: CFG_REGWEN

Instances

NameOffset
INTR_SRC_WR_VAL_00x124
INTR_SRC_WR_VAL_10x128
INTR_SRC_WR_VAL_20x12c
INTR_SRC_WR_VAL_30x130
INTR_SRC_WR_VAL_40x134
INTR_SRC_WR_VAL_50x138
INTR_SRC_WR_VAL_60x13c
INTR_SRC_WR_VAL_70x140
INTR_SRC_WR_VAL_80x144
INTR_SRC_WR_VAL_90x148
INTR_SRC_WR_VAL_100x14c

Fields

{"reg": [{"name": "wr_val", "bits": 32, "attr": ["rw"], "rotate": 0}], "config": {"lanes": 1, "fontsize": 10, "vspace": 80}}
BitsTypeResetNameDescription
31:0rw0x0wr_valWrite value for interrupt clearing write.