openenoc_endpoint address map
Absolute Address: 0x0
Base Offset: 0x0
Size: 0x800
Control and status register map for an openENOC Endpoint Interface instance.
Offset |
Identifier |
Name |
|---|---|---|
0x000 |
info |
openenoc_endpoint.info |
0x008 |
config |
openenoc_endpoint.config |
0x020 |
axis_if |
openenoc_endpoint.axis_if |
0x040 |
peers |
openenoc_endpoint.peers |
0x400 |
rmem |
rmem |
info register
Absolute Address: 0x0
Base Offset: 0x0
Size: 0x8
Read-only information register for this openENOC Endpoint Interface instance.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
rmem_total_depth |
r |
0x100 |
openenoc_endpoint.info.rmem_total_depth[15:0] |
63:32 |
num_of_peers |
r |
0x1 |
openenoc_endpoint.info.num_of_peers[31:16] |
rmem_total_depth field
Total depth of the shared memory region for all remote peers. This field reflects the RMEM_TOTAL_DEPTH parameter value.
num_of_peers field
Number of remote peers supported by this openENOC Endpoint Interface instance. This field reflects the NUM_OF_PEERS parameter value.
config register file
Absolute Address: 0x8
Base Offset: 0x8
Size: 0x8
Configuration register file for this openENOC Endpoint Interface instance.
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
mac_address |
openenoc_endpoint.config.mac_address |
mac_address register
Absolute Address: 0x8
Base Offset: 0x0
Size: 0x8
Local site 48-bit destination MAC address.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
lo_word |
rw |
0x0 |
openenoc_endpoint.config.mac_address.lo_word[31:0] |
47:32 |
hi_word |
rw |
0x0 |
openenoc_endpoint.config.mac_address.hi_word[47:32] |
lo_word field
Lower 32 bits [31:0] of the 48-bit MAC address.
hi_word field
Upper 16 bits [47:32] of the 48-bit MAC address.
axis_if register file
Absolute Address: 0x20
Base Offset: 0x20
Size: 0x1C
Register file for the AXI4-Stream source and sink interfaces.
Offset |
Identifier |
Name |
|---|---|---|
0x00 |
source |
openenoc_endpoint.axis_if.source |
0x10 |
sink |
openenoc_endpoint.axis_if.sink |
source register file
Absolute Address: 0x20
Base Offset: 0x0
Size: 0xC
Register file for the AXI4-Stream source interface.
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
data |
openenoc_endpoint.axis_if.source.data |
0x4 |
control |
openenoc_endpoint.axis_if.source.control |
0x8 |
status |
openenoc_endpoint.axis_if.source.status |
data register
Absolute Address: 0x20
Base Offset: 0x0
Size: 0x4
Data register for the AXI4-Stream source interface.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
tdata |
rw |
0x0 |
openenoc_endpoint.axis_if.source.data.tdata[31:0] |
tdata field
32-bit data value for the AXI4-Stream source interface.
control register
Absolute Address: 0x24
Base Offset: 0x4
Size: 0x4
Control register for the AXI4-Stream source interface.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
tvalid |
rw |
0x0 |
openenoc_endpoint.axis_if.source.control.tvalid |
8 |
tlast |
rw |
0x0 |
openenoc_endpoint.axis_if.source.control.tlast |
tvalid field
Indicates that the AXI4-Stream source interface has valid data to send. This field is a single-pulse register that is automatically cleared back to zero after being written.
tlast field
Indicates the last data word of a frame on the AXI4-Stream source interface.
status register
Absolute Address: 0x28
Base Offset: 0x8
Size: 0x4
Status register for the AXI4-Stream source interface.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
tready |
r |
0x0 |
openenoc_endpoint.axis_if.source.status.tready |
tready field
Indicates that the destination AXI4-Stream interface is ready to receive data.
sink register file
Absolute Address: 0x30
Base Offset: 0x10
Size: 0xC
Register file for the AXI4-Stream sink interface.
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
data |
openenoc_endpoint.axis_if.sink.data |
0x4 |
control |
openenoc_endpoint.axis_if.sink.control |
0x8 |
status |
openenoc_endpoint.axis_if.sink.status |
data register
Absolute Address: 0x30
Base Offset: 0x0
Size: 0x4
Data register for the AXI4-Stream sink interface.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
tdata |
r |
— |
openenoc_endpoint.axis_if.sink.data.tdata[31:0] |
tdata field
32-bit data value for the AXI4-Stream sink interface.
control register
Absolute Address: 0x34
Base Offset: 0x4
Size: 0x4
Control register for the AXI4-Stream sink interface.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
tready |
w |
0x0 |
openenoc_endpoint.axis_if.sink.control.tready |
tready field
Indicates that the AXI4-Stream sink interface is ready to receive next data transfer.
status register
Absolute Address: 0x38
Base Offset: 0x8
Size: 0x4
Status register for the AXI4-Stream sink interface.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
tvalid |
r |
— |
openenoc_endpoint.axis_if.sink.status.tvalid |
8 |
tlast |
r |
— |
openenoc_endpoint.axis_if.sink.status.tlast |
tvalid field
Indicates that the AXI4-Stream sink interface has valid data to receive.
tlast field
Indicates the last data word of a frame on the AXI4-Stream sink interface.
peers register file
Absolute Address: 0x40
Base Offset: 0x40
Size: 0x1C
Register file for remote peer configuration and memory region information.
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
entry[0] |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1] |
entry register file
Absolute Address: 0x40
Base Offset: 0x0
Size: 0x1C
Array Dimensions: [1]
Array Stride: 0x1C
Total Size: 0x1C
Register file for a single remote peer configuration and memory region information.
Offset |
Identifier |
Name |
|---|---|---|
0x00 |
mac_address |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].mac_address |
0x08 |
rmem_address |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].rmem_address |
0x0C |
local_address |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].local_address |
0x10 |
remote_address |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].remote_address |
0x14 |
size |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].size |
0x18 |
dma |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].dma |
mac_address register
Absolute Address: 0x40
Base Offset: 0x0
Size: 0x8
Remote peer 48-bit destination MAC address.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
lo_word |
rw |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].mac_address.lo_word[31:0] |
47:32 |
hi_word |
rw |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].mac_address.hi_word[47:32] |
lo_word field
Lower 32 bits [31:0] of the 48-bit MAC address.
hi_word field
Upper 16 bits [47:32] of the 48-bit MAC address.
rmem_address register
Absolute Address: 0x48
Base Offset: 0x8
Size: 0x4
Address offset of the virtual memory region corresponding to the remote peer's memory.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
offset |
rw |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].rmem_address.offset[31:0] |
offset field
Word-aligned 32-bit address offset of the virtual memory region corresponding to the remote peer's memory.
local_address register
Absolute Address: 0x4C
Base Offset: 0xC
Size: 0x4
Start address of the local memory region for DMA transfers.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
base |
rw |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].local_address.base[31:0] |
base field
Word-aligned 32-bit start address of the local memory region for DMA transfers.
remote_address register
Absolute Address: 0x50
Base Offset: 0x10
Size: 0x4
Start address of the remote peer's memory region.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
base |
rw |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].remote_address.base[31:0] |
base field
Word-aligned 32-bit start address of the remote peer's memory region.
size register
Absolute Address: 0x54
Base Offset: 0x14
Size: 0x4
Size of the remote peer's memory region.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
bytes |
rw |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].size.bytes[31:0] |
bytes field
32-bit size of the remote peer's memory region in bytes.
dma register
Absolute Address: 0x58
Base Offset: 0x18
Size: 0x4
DMA configuration and control for the remote peer.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
1:0 |
mode |
rw |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].dma.mode[1:0] |
8 |
request |
rw |
0x0 |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].dma.request[8:8] |
16 |
idle |
r |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].dma.idle[16:16] |
24 |
done |
r |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].dma.done[24:24] |
25 |
error |
r |
— |
openenoc_endpoint.peers.entry[0..NUM_OF_PEERS-1].dma.error[25:25] |
mode field
DMA mode for transfers to/from the remote peer:
- 0: DMA transfers to/from the remote peer are disabled.
- 1: DMA transfers to/from the remote peer are enabled in transparent mode, where accesses to the virtual memory region are directly translated to corresponding accesses to the remote peer's memory region (transactions are word-by-word, i.e., per virtual memory access).
- 2: DMA transfers to/from the remote peer are enabled in mirror-to-local mode, where the local memory region is used instead of the virtual memory region. The state of the remote peer's memory region (remote_address, size) is fetched from the remote peer on demand or periodically.
- 3: DMA transfers to/from the remote peer are enabled in mirror-to-remote mode, where the remote memory region is used instead of the virtual memory region. The state of the local peer's memory region (local_address, size) is sent to the remote peer on demand or periodically.
request field
Writing a 1 to this field initiates a DMA transfer to/from the remote peer. This field is a single-pulse register that is automatically cleared back to zero after being written.
idle field
Indicates whether the DMA transfer to/from the remote peer is idle. A value of 1 indicates that the DMA transfer is idle, while a value of 0 indicates that the DMA transfer is in progress.
done field
Indicates whether the DMA transfer to/from the remote peer has been successful. A value of 1 indicates that the DMA transfer has completed successfully, while a value of 0 indicates that the DMA transfer is still in progress or has encountered an error.
error field
Indicates whether the DMA transfer to/from the remote peer has encountered an error. A value of 1 indicates an error, while a value of 0 indicates no error.
rmem memory
Absolute Address: 0x400
Base Offset: 0x400
Size: 0x400
Virtual memory region for all remote peers, with offsets and sizes defined in the peers regfile.
No supported members.