Register descriptions¶
This chapter provides auto-generated register descriptions for the core.
I3CCSR address map¶
Absolute Address: 0x0
Base Offset: 0x0
Size: 0x1000
Offset |
Identifier |
Name |
|---|---|---|
0x000 |
I3CBase |
I3C Capability and Operational Registers |
0x080 |
PIOControl |
Programmable I/O |
0x100 |
I3C_EC |
Extended Capabilities |
0x400 |
DAT |
Device Address Table |
0x800 |
DCT |
Device Characteristic Table |
I3CBase register file¶
Absolute Address: 0x0
Base Offset: 0x0
Size: 0x6C
Offset |
Identifier |
Name |
|---|---|---|
0x00 |
HCI_VERSION |
HCI Version |
0x04 |
HC_CONTROL |
Control |
0x08 |
CONTROLLER_DEVICE_ADDR |
Dynamic address |
0x0C |
HC_CAPABILITIES |
Capabilities |
0x10 |
RESET_CONTROL |
Reset controls |
0x14 |
PRESENT_STATE |
Active controller |
0x20 |
INTR_STATUS |
Status |
0x24 |
INTR_STATUS_ENABLE |
Enable status reporting |
0x28 |
INTR_SIGNAL_ENABLE |
Enable status interrupts |
0x2C |
INTR_FORCE |
Force status and interrupt |
0x30 |
DAT_SECTION_OFFSET |
DAT section offset |
0x34 |
DCT_SECTION_OFFSET |
DCT section offset |
0x38 |
RING_HEADERS_SECTION_OFFSET |
Ring section offset |
0x3C |
PIO_SECTION_OFFSET |
PIO section offset |
0x40 |
EXT_CAPS_SECTION_OFFSET |
Extended capabilities section offset |
0x4C |
INT_CTRL_CMDS_EN |
MIPI commands |
0x58 |
IBI_NOTIFY_CTRL |
I3C interrupts notification |
0x5C |
IBI_DATA_ABORT_CTRL |
IBI data control |
0x60 |
DEV_CTX_BASE_LO |
Device context memory address lower 32 bits |
0x64 |
DEV_CTX_BASE_HI |
Device context memory address higher 32 bits |
0x68 |
DEV_CTX_SG |
SG control |
HCI_VERSION register¶
Absolute Address: 0x0
Base Offset: 0x0
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
VERSION |
r |
0x120 |
— |
HC_CONTROL register¶
Absolute Address: 0x4
Base Offset: 0x4
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
IBA_INCLUDE |
rw |
0x0 |
IBA_INCLUDE |
3 |
AUTOCMD_DATA_RPT |
r |
0x0 |
AUTOCMD_DATA_RPT |
4 |
DATA_BYTE_ORDER_MODE |
r |
0x0 |
DATA_BYTE_ORDER_MODE |
6 |
MODE_SELECTOR |
r |
0x1 |
MODE_SELECTOR |
7 |
I2C_DEV_PRESENT |
rw |
0x0 |
I2C_DEV_PRESENT |
8 |
HOT_JOIN_CTRL |
rw |
0x0 |
HOT_JOIN_CTRL |
12 |
HALT_ON_CMD_SEQ_TIMEOUT |
rw |
0x0 |
HALT_ON_CMD_SEQ_TIMEOUT |
29 |
ABORT |
rw |
0x0 |
ABORT |
30 |
RESUME |
rw, woclr |
0x0 |
RESUME |
31 |
BUS_ENABLE |
rw |
0x0 |
BUS_ENABLE |
IBA_INCLUDE field¶
Include I3C Broadcast Address:
0 - skips I3C Broadcast Address for private transfers
1 - includes I3C Broadcast Address for private transfers
AUTOCMD_DATA_RPT field¶
Auto-Command Data Report:
0 - coalesced reporting
1 - separated reporting
DATA_BYTE_ORDER_MODE field¶
Data Byte Ordering Mode:
0 - Little Endian
1 - Big Endian
MODE_SELECTOR field¶
DMA/PIO Mode Selector:
0 - DMA
1 - PIO
I2C_DEV_PRESENT field¶
I2C Device Present on Bus:
0 - pure I3C bus
1 - legacy I2C devices on the bus
HOT_JOIN_CTRL field¶
Hot-Join ACK/NACK Control:
0 - ACK Hot-Join request
1 - NACK Hot-Join request and send Broadcast CCC to disable Hot-Join
HALT_ON_CMD_SEQ_TIMEOUT field¶
Halt on Command Sequence Timeout when set to 1
ABORT field¶
Host Controller Abort when set to 1
RESUME field¶
Host Controller Resume:
0 - Controller is running
1 - Controller is suspended
Write 1 to resume Controller operations.
BUS_ENABLE field¶
Host Controller Bus Enable
CONTROLLER_DEVICE_ADDR register¶
Absolute Address: 0x8
Base Offset: 0x8
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
22:16 |
DYNAMIC_ADDR |
rw |
0x0 |
DYNAMIC_ADDR |
31 |
DYNAMIC_ADDR_VALID |
rw |
0x0 |
DYNAMIC_ADDR_VALID |
DYNAMIC_ADDR field¶
Device Dynamic Address
DYNAMIC_ADDR_VALID field¶
Dynamic Address is Valid:
0 - dynamic address is invalid
1 - dynamic address is valid
HC_CAPABILITIES register¶
Absolute Address: 0xC
Base Offset: 0xC
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
2 |
COMBO_COMMAND |
r |
0x0 |
COMBO_COMMAND |
3 |
AUTO_COMMAND |
r |
0x0 |
AUTO_COMMAND |
5 |
STANDBY_CR_CAP |
r |
0x0 |
STANDBY_CR_CAP |
6 |
HDR_DDR_EN |
r |
0x0 |
HDR_DDR_EN |
7 |
HDR_TS_EN |
r |
0x0 |
HDR_TS_EN |
10 |
CMD_CCC_DEFBYTE |
r |
0x1 |
CMD_CCC_DEFBYTE |
11 |
IBI_DATA_ABORT_EN |
r |
0x0 |
IBI_DATA_ABORT_EN |
12 |
IBI_CREDIT_COUNT_EN |
r |
0x0 |
IBI_CREDIT_COUNT_EN |
13 |
SCHEDULED_COMMANDS_EN |
r |
0x0 |
SCHEDULED_COMMANDS_EN |
21:20 |
CMD_SIZE |
r |
0x0 |
CMD_SIZE |
28 |
SG_CAPABILITY_CR_EN |
r |
0x0 |
SG_CAPABILITY_CR_EN |
29 |
SG_CAPABILITY_IBI_EN |
r |
0x0 |
SG_CAPABILITY_IBI_EN |
30 |
SG_CAPABILITY_DC_EN |
r |
0x0 |
SG_CAPABILITY_DC_EN |
COMBO_COMMAND field¶
Controller combined command:
0 - not supported
1 - supported
AUTO_COMMAND field¶
Automatic read command on IBI:
0 - not supported
1 - supported
STANDBY_CR_CAP field¶
Switching from active to standby mode:
0 - not supported, this controller is always active on I3C
1- supported, this controller can hand off I3C to secondary controller
HDR_DDR_EN field¶
HDR-DDR transfers:
0 - not supported
1 - supported
HDR_TS_EN field¶
HDR-Ternary transfers:
0 - not supported
1 - supported
CMD_CCC_DEFBYTE field¶
CCC with defining byte:
0 - not supported
1 - supported
IBI_DATA_ABORT_EN field¶
Controller IBI data abort:
0 - not supported
1 - supported
IBI_CREDIT_COUNT_EN field¶
Controller IBI credit count:
0 - not supported
1 - supported
SCHEDULED_COMMANDS_EN field¶
Controller command scheduling:
0 - not supported
1 - supported
CMD_SIZE field¶
Size and structure of the Command Descriptor:
2'b0: 2 DWORDs,
all other reserved.
SG_CAPABILITY_CR_EN field¶
DMA only: Command and Response rings memory:
0 - must be physically continuous
1 - controller supports scatter-gather
SG_CAPABILITY_IBI_EN field¶
DMA only: IBI status and IBI Data rings memory:
0 - must be physically continuous
1 - controller supports scatter-gather
SG_CAPABILITY_DC_EN field¶
Device context memory:
0 - must be physically continuous
1 - controller supports scatter-gather
RESET_CONTROL register¶
Absolute Address: 0x10
Base Offset: 0x10
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
SOFT_RST |
rw |
0x0 |
SOFT_RST |
1 |
CMD_QUEUE_RST |
rw |
0x0 |
CMD_QUEUE_RST |
2 |
RESP_QUEUE_RST |
rw |
0x0 |
RESP_QUEUE_RST |
3 |
TX_FIFO_RST |
rw |
0x0 |
TX_FIFO_RST |
4 |
RX_FIFO_RST |
rw |
0x0 |
RX_FIFO_RST |
5 |
IBI_QUEUE_RST |
rw |
0x0 |
IBI_QUEUE_RST |
SOFT_RST field¶
Reset controller from software.
CMD_QUEUE_RST field¶
Clear command queue from software. Valid only in PIO mode.
RESP_QUEUE_RST field¶
Clear response queue from software. Valid only in PIO mode.
TX_FIFO_RST field¶
Clear TX FIFO from software. Valid only in PIO mode.
RX_FIFO_RST field¶
Clear RX FIFO from software. Valid only in PIO mode.
IBI_QUEUE_RST field¶
Clear IBI queue from software. Valid only in PIO mode.
PRESENT_STATE register¶
Absolute Address: 0x14
Base Offset: 0x14
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
2 |
AC_CURRENT_OWN |
r |
0x0 |
AC_CURRENT_OWN |
AC_CURRENT_OWN field¶
Controller I3C state:
0 - not bus owner
1 - bus owner
INTR_STATUS register¶
Absolute Address: 0x20
Base Offset: 0x20
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
10 |
HC_INTERNAL_ERR_STAT |
rw, woclr |
0x0 |
HC_INTERNAL_ERR_STAT |
11 |
HC_SEQ_CANCEL_STAT |
rw, woclr |
0x0 |
HC_SEQ_CANCEL_STAT |
12 |
HC_WARN_CMD_SEQ_STALL_STAT |
rw, woclr |
0x0 |
HC_WARN_CMD_SEQ_STALL_STAT |
13 |
HC_ERR_CMD_SEQ_TIMEOUT_STAT |
rw, woclr |
0x0 |
HC_ERR_CMD_SEQ_TIMEOUT_STAT |
14 |
SCHED_CMD_MISSED_TICK_STAT |
rw, woclr |
0x0 |
SCHED_CMD_MISSED_TICK_STAT |
HC_INTERNAL_ERR_STAT field¶
Controller internal unrecoverable error.
HC_SEQ_CANCEL_STAT field¶
Controller had to cancel command sequence.
HC_WARN_CMD_SEQ_STALL_STAT field¶
Clock stalled due to lack of commands.
HC_ERR_CMD_SEQ_TIMEOUT_STAT field¶
Command timeout after prolonged stall.
SCHED_CMD_MISSED_TICK_STAT field¶
Scheduled commands could be executed due to controller being busy.
INTR_STATUS_ENABLE register¶
Absolute Address: 0x24
Base Offset: 0x24
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
10 |
HC_INTERNAL_ERR_STAT_EN |
rw |
0x0 |
HC_INTERNAL_ERR_STAT_EN |
11 |
HC_SEQ_CANCEL_STAT_EN |
rw |
0x0 |
HC_SEQ_CANCEL_STAT_EN |
12 |
HC_WARN_CMD_SEQ_STALL_STAT_EN |
rw |
0x0 |
HC_WARN_CMD_SEQ_STALL_STAT_EN |
13 |
HC_ERR_CMD_SEQ_TIMEOUT_STAT_EN |
rw |
0x0 |
HC_ERR_CMD_SEQ_TIMEOUT_STAT_EN |
14 |
SCHED_CMD_MISSED_TICK_STAT_EN |
rw |
0x0 |
SCHED_CMD_MISSED_TICK_STAT_EN |
HC_INTERNAL_ERR_STAT_EN field¶
Enable HC_INTERNAL_ERR_STAT monitoring.
HC_SEQ_CANCEL_STAT_EN field¶
Enable HC_SEQ_CANCEL_STAT monitoring.
HC_WARN_CMD_SEQ_STALL_STAT_EN field¶
Enable HC_WARN_CMD_SEQ_STALL_STAT monitoring.
HC_ERR_CMD_SEQ_TIMEOUT_STAT_EN field¶
Enable HC_ERR_CMD_SEQ_TIMEOUT_STAT monitoring.
SCHED_CMD_MISSED_TICK_STAT_EN field¶
Enable SCHED_CMD_MISSED_TICK_STAT monitoring.
INTR_SIGNAL_ENABLE register¶
Absolute Address: 0x28
Base Offset: 0x28
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
10 |
HC_INTERNAL_ERR_SIGNAL_EN |
rw |
0x0 |
HC_INTERNAL_ERR_SIGNAL_EN |
11 |
HC_SEQ_CANCEL_SIGNAL_EN |
rw |
0x0 |
HC_SEQ_CANCEL_SIGNAL_EN |
12 |
HC_WARN_CMD_SEQ_STALL_SIGNAL_EN |
rw |
0x0 |
HC_WARN_CMD_SEQ_STALL_SIGNAL_EN |
13 |
HC_ERR_CMD_SEQ_TIMEOUT_SIGNAL_EN |
rw |
0x0 |
HC_ERR_CMD_SEQ_TIMEOUT_SIGNAL_EN |
14 |
SCHED_CMD_MISSED_TICK_SIGNAL_EN |
rw |
0x0 |
SCHED_CMD_MISSED_TICK_SIGNAL_EN |
HC_INTERNAL_ERR_SIGNAL_EN field¶
Enable HC_INTERNAL_ERR_STAT interrupt.
HC_SEQ_CANCEL_SIGNAL_EN field¶
Enable HC_SEQ_CANCEL_STAT interrupt.
HC_WARN_CMD_SEQ_STALL_SIGNAL_EN field¶
Enable HC_WARN_CMD_SEQ_STALL_STAT interrupt.
HC_ERR_CMD_SEQ_TIMEOUT_SIGNAL_EN field¶
Enable HC_ERR_CMD_SEQ_TIMEOUT_STAT interrupt.
SCHED_CMD_MISSED_TICK_SIGNAL_EN field¶
Enable SCHED_CMD_MISSED_TICK_STAT interrupt.
INTR_FORCE register¶
Absolute Address: 0x2C
Base Offset: 0x2C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
10 |
HC_INTERNAL_ERR_FORCE |
w |
0x0 |
HC_INTERNAL_ERR_FORCE |
11 |
HC_SEQ_CANCEL_FORCE |
w |
0x0 |
HC_SEQ_CANCEL_FORCE |
12 |
HC_WARN_CMD_SEQ_STALL_FORCE |
w |
0x0 |
HC_WARN_CMD_SEQ_STALL_FORCE |
13 |
HC_ERR_CMD_SEQ_TIMEOUT_FORCE |
w |
0x0 |
HC_ERR_CMD_SEQ_TIMEOUT_FORCE |
14 |
SCHED_CMD_MISSED_TICK_FORCE |
w |
0x0 |
SCHED_CMD_MISSED_TICK_FORCE |
HC_INTERNAL_ERR_FORCE field¶
Force HC_INTERNAL_ERR_STAT interrupt.
HC_SEQ_CANCEL_FORCE field¶
Force HC_SEQ_CANCEL_STAT interrupt.
HC_WARN_CMD_SEQ_STALL_FORCE field¶
Force HC_WARN_CMD_SEQ_STALL_STAT interrupt.
HC_ERR_CMD_SEQ_TIMEOUT_FORCE field¶
Force HC_ERR_CMD_SEQ_TIMEOUT_STAT interrupt.
SCHED_CMD_MISSED_TICK_FORCE field¶
Force SCHED_CMD_MISSED_TICK_STAT interrupt.
DAT_SECTION_OFFSET register¶
Absolute Address: 0x30
Base Offset: 0x30
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
11:0 |
TABLE_OFFSET |
r |
0x400 |
TABLE_OFFSET |
18:12 |
TABLE_SIZE |
r |
0x7F |
TABLE_SIZE |
31:28 |
ENTRY_SIZE |
r |
0x0 |
ENTRY_SIZE |
TABLE_OFFSET field¶
DAT entry offset in respect to BASE address.
TABLE_SIZE field¶
Max number of DAT entries.
ENTRY_SIZE field¶
Individual DAT entry size. 0 - 2 DWRODs, 1:15 - reserved.
DCT_SECTION_OFFSET register¶
Absolute Address: 0x34
Base Offset: 0x34
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
11:0 |
TABLE_OFFSET |
r |
0x800 |
TABLE_OFFSET |
18:12 |
TABLE_SIZE |
r |
0x7F |
TABLE_SIZE |
23:19 |
TABLE_INDEX |
rw |
0x0 |
TABLE_INDEX |
31:28 |
ENTRY_SIZE |
r |
0x0 |
ENTRY_SIZE |
TABLE_OFFSET field¶
DCT entry offset in respect to BASE address.
TABLE_SIZE field¶
Max number of DCT entries.
TABLE_INDEX field¶
Index to DCT used during ENTDAA.
ENTRY_SIZE field¶
Individual DCT entry size.
0 - 4 DWORDs,
1:15 - Reserved.
RING_HEADERS_SECTION_OFFSET register¶
Absolute Address: 0x38
Base Offset: 0x38
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:0 |
SECTION_OFFSET |
r |
0x0 |
SECTION_OFFSET |
SECTION_OFFSET field¶
DMA ring headers section offset. Invalid if 0.
PIO_SECTION_OFFSET register¶
Absolute Address: 0x3C
Base Offset: 0x3C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:0 |
SECTION_OFFSET |
r |
0x80 |
SECTION_OFFSET |
SECTION_OFFSET field¶
PIO section offset. Invalid if 0.
EXT_CAPS_SECTION_OFFSET register¶
Absolute Address: 0x40
Base Offset: 0x40
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:0 |
SECTION_OFFSET |
r |
0x100 |
SECTION_OFFSET |
SECTION_OFFSET field¶
Extended Capabilities section offset. Invalid if 0.
INT_CTRL_CMDS_EN register¶
Absolute Address: 0x4C
Base Offset: 0x4C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
ICC_SUPPORT |
r |
0x1 |
ICC_SUPPORT |
15:1 |
MIPI_CMDS_SUPPORTED |
r |
0x35 |
MIPI_CMDS_SUPPORTED |
ICC_SUPPORT field¶
Internal Control Commands:
1 - some or all internals commands sub-commands are supported,
0 - illegal.
MIPI_CMDS_SUPPORTED field¶
Bitmask of supported MIPI commands.
IBI_NOTIFY_CTRL register¶
Absolute Address: 0x58
Base Offset: 0x58
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
NOTIFY_HJ_REJECTED |
rw |
0x0 |
NOTIFY_HJ_REJECTED |
1 |
NOTIFY_CRR_REJECTED |
rw |
0x0 |
NOTIFY_CRR_REJECTED |
3 |
NOTIFY_IBI_REJECTED |
rw |
0x0 |
NOTIFY_IBI_REJECTED |
NOTIFY_HJ_REJECTED field¶
Notify about rejected hot-join:
0 - do not enqueue rejected HJ,
1 = enqueue rejected HJ on IBI queue/ring.
NOTIFY_CRR_REJECTED field¶
Notify about rejected controller role request:
0 - do not enqueue rejected CRR,
1 = enqueue rejected CRR on IBI queue/ring.
NOTIFY_IBI_REJECTED field¶
Notify about rejected IBI:
0 - do not enqueue rejected IBI,
1 = enqueue rejected IBI on IBI queue/ring.
IBI_DATA_ABORT_CTRL register¶
Absolute Address: 0x5C
Base Offset: 0x5C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:8 |
MATCH_IBI_ID |
rw |
0x0 |
MATCH_IBI_ID |
17:16 |
AFTER_N_CHUNKS |
rw |
0x0 |
AFTER_N_CHUNKS |
20:18 |
MATCH_STATUS_TYPE |
rw |
0x0 |
MATCH_STATUS_TYPE |
31 |
IBI_DATA_ABORT_MON |
rw |
0x0 |
IBI_DATA_ABORT_MON |
MATCH_IBI_ID field¶
IBI target address:
[15:9] - device address,
[8] - must always be set to 1'b1
AFTER_N_CHUNKS field¶
Number of data chunks to be allowed before forced termination:
0 - immediate,
1:3 - delay by 1-3 data chunks.
MATCH_STATUS_TYPE field¶
Define which IBI should be aborted:
3'b000 - Regular IBI,
3'b100 - Autocmd IBI,
other values - not supported.
IBI_DATA_ABORT_MON field¶
Enable/disable IBI monitoring logic.
DEV_CTX_BASE_LO register¶
Absolute Address: 0x60
Base Offset: 0x60
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
BASE_LO |
rw |
0x0 |
— |
DEV_CTX_BASE_HI register¶
Absolute Address: 0x64
Base Offset: 0x64
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
BASE_HI |
rw |
0x0 |
— |
DEV_CTX_SG register¶
Absolute Address: 0x68
Base Offset: 0x68
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:0 |
LIST_SIZE |
r |
0x0 |
LIST_SIZE |
31 |
BLP |
r |
0x0 |
BLP |
LIST_SIZE field¶
Number of SG entries.
BLP field¶
Buffer vs list pointer in device context:
0 - continuous physical memory region,
1 - pointer to SG descriptor list.
PIOControl register file¶
Absolute Address: 0x80
Base Offset: 0x80
Size: 0x34
Offset |
Identifier |
Name |
|---|---|---|
0x00 |
COMMAND_PORT |
Command issue port |
0x04 |
RESPONSE_PORT |
Command response port |
0x08 |
TX_DATA_PORT |
Transferred data access port |
0x08 |
RX_DATA_PORT |
Received data access port |
0x0C |
IBI_PORT |
IBI descriptor access port |
0x10 |
QUEUE_THLD_CTRL |
The Queue Threshold Control register for the Command Queue, the Response Queue, and the IBI Queue |
0x14 |
DATA_BUFFER_THLD_CTRL |
RX/TX queue threshold control |
0x18 |
QUEUE_SIZE |
Queue sizes |
0x1C |
ALT_QUEUE_SIZE |
Alternate queue sizes |
0x20 |
PIO_INTR_STATUS |
PIO interrupt status |
0x24 |
PIO_INTR_STATUS_ENABLE |
— |
0x28 |
PIO_INTR_SIGNAL_ENABLE |
Interrupt Signal Enable |
0x2C |
PIO_INTR_FORCE |
PIO force interrupt status |
0x30 |
PIO_CONTROL |
PIO control |
COMMAND_PORT register¶
Absolute Address: 0x80
Base Offset: 0x0
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
COMMAND_DATA |
w |
— |
COMMAND_QUEUE_PORT |
RESPONSE_PORT register¶
Absolute Address: 0x84
Base Offset: 0x4
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
RESPONSE_DATA |
r |
— |
RESPONSE_QUEUE_PORT |
TX_DATA_PORT register¶
Absolute Address: 0x88
Base Offset: 0x8
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
TX_DATA |
w |
— |
TX_DATA |
RX_DATA_PORT register¶
Absolute Address: 0x88
Base Offset: 0x8
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
RX_DATA |
r |
— |
RX_DATA |
IBI_PORT register¶
Absolute Address: 0x8C
Base Offset: 0xC
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
IBI_DATA |
r |
— |
IBI_DATA |
IBI_DATA field¶
Data Read from IBI Data Buffer.
The IBI Port is mapped to the IBI Data Queue. IBI Data is always aligned to a 4-byte boundary and then put into the IBI Queue. If the incoming data is not aligned to a 4-byte boundary, then there will be extra (unused) bytes at the end of the transferred IBI data. This can be determined from the value of field DATA_LENGTH in the IBI Status Descriptor.
QUEUE_THLD_CTRL register¶
Absolute Address: 0x90
Base Offset: 0x10
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
CMD_EMPTY_BUF_THLD |
rw |
0x1 |
CMD_EMPTY_BUF_THLD |
15:8 |
RESP_BUF_THLD |
rw |
0x1 |
RESP_BUF_THLD |
23:16 |
IBI_DATA_SEGMENT_SIZE |
rw |
0x1 |
IBI_DATA_SEGMENT_SIZE |
31:24 |
IBI_STATUS_THLD |
rw |
0x1 |
IBI_STATUS_THLD |
CMD_EMPTY_BUF_THLD field¶
Triggers CMD_QUEUE_READY_STAT interrupt when CMD queue has N or more free entries. Accepted values are 1:255
RESP_BUF_THLD field¶
Triggers RESP_READY_STAT interrupt when RESP queue has N or more entries. Accepted values are 1:255
IBI_DATA_SEGMENT_SIZE field¶
IBI Queue data segment size. Valida values are 1:63
IBI_STATUS_THLD field¶
Triggers IBI_STATUS_THLD_STAT interrupt when IBI queue has N or more entries. Accepted values are 1:255
DATA_BUFFER_THLD_CTRL register¶
Absolute Address: 0x94
Base Offset: 0x14
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
2:0 |
TX_BUF_THLD |
rw |
0x1 |
TX_BUF_THLD |
10:8 |
RX_BUF_THLD |
rw |
0x1 |
RX_BUF_THLD |
18:16 |
TX_START_THLD |
rw |
0x1 |
TX_START_THLD |
26:24 |
RX_START_THLD |
rw |
0x1 |
RX_START_THLD |
TX_BUF_THLD field¶
Trigger TX_THLD_STAT interrupt when TX queue has 2^(N+1) or more free entries
RX_BUF_THLD field¶
Trigger RX_THLD_STAT interrupt when RX queue has 2^(N+1) or more entries
TX_START_THLD field¶
Postpone write command until TX queue has 2^(N+1) entries
RX_START_THLD field¶
Postpone read command until RX queue has 2^(N+1) free entries
QUEUE_SIZE register¶
Absolute Address: 0x98
Base Offset: 0x18
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
CR_QUEUE_SIZE |
r |
0x40 |
CR_QUEUE_SIZE |
15:8 |
IBI_STATUS_SIZE |
r |
0x40 |
IBI_STATUS_SIZE |
23:16 |
RX_DATA_BUFFER_SIZE |
r |
0x5 |
RX_DATA_BUFFER_SIZE |
31:24 |
TX_DATA_BUFFER_SIZE |
r |
0x5 |
TX_DATA_BUFFER_SIZE |
CR_QUEUE_SIZE field¶
Command/Response queue size is equal to N
IBI_STATUS_SIZE field¶
IBI Queue size is equal to N
RX_DATA_BUFFER_SIZE field¶
RX queue size is equal to 2^(N+1), where N is this field value
TX_DATA_BUFFER_SIZE field¶
TX queue size is equal to 2^(N+1), where N is this field value
ALT_QUEUE_SIZE register¶
Absolute Address: 0x9C
Base Offset: 0x1C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
ALT_RESP_QUEUE_SIZE |
r |
0x40 |
ALT_RESP_QUEUE_SIZE |
24 |
ALT_RESP_QUEUE_EN |
r |
0x0 |
ALT_RESP_QUEUE_EN |
28 |
EXT_IBI_QUEUE_EN |
r |
0x0 |
EXT_IBI_QUEUE_EN |
ALT_RESP_QUEUE_SIZE field¶
Valid only if ALT_RESP_QUEUE_EN is set. Contains response queue size
ALT_RESP_QUEUE_EN field¶
If set, response and command queues are not equal lengths, then ALT_RESP_QUEUE_SIZE contains response queue size
EXT_IBI_QUEUE_EN field¶
1 indicates that IBI queue size is equal to 8*IBI_STATUS_SIZE
PIO_INTR_STATUS register¶
Absolute Address: 0xA0
Base Offset: 0x20
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
TX_THLD_STAT |
r |
0x0 |
TX_THLD_STAT |
1 |
RX_THLD_STAT |
r |
0x0 |
RX_THLD_STAT |
2 |
IBI_STATUS_THLD_STAT |
r |
0x0 |
IBI_STATUS_THLD_STAT |
3 |
CMD_QUEUE_READY_STAT |
r |
0x0 |
CMD_QUEUE_READY_STAT |
4 |
RESP_READY_STAT |
r |
0x0 |
RESP_READY_STAT |
5 |
TRANSFER_ABORT_STAT |
rw, woclr |
0x0 |
TRANSFER_ABORT_STAT |
9 |
TRANSFER_ERR_STAT |
rw, woclr |
0x0 |
TRANSFER_ERR_STAT |
TX_THLD_STAT field¶
TX queue fulfils TX_BUF_THLD
RX_THLD_STAT field¶
RX queue fulfils RX_BUF_THLD
IBI_STATUS_THLD_STAT field¶
IBI queue fulfils IBI_STATUS_THLD
CMD_QUEUE_READY_STAT field¶
Command queue fulfils CMD_EMPTY_BUF_THLD
RESP_READY_STAT field¶
Response queue fulfils RESP_BUF_THLD
TRANSFER_ABORT_STAT field¶
Transfer aborted
TRANSFER_ERR_STAT field¶
Transfer error
PIO_INTR_STATUS_ENABLE register¶
Absolute Address: 0xA4
Base Offset: 0x24
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
TX_THLD_STAT_EN |
rw |
0x0 |
TX_THLD_STAT_EN |
1 |
RX_THLD_STAT_EN |
rw |
0x0 |
RX_THLD_STAT_EN |
2 |
IBI_STATUS_THLD_STAT_EN |
rw |
0x0 |
IBI_STATUS_THLD_STAT_EN |
3 |
CMD_QUEUE_READY_STAT_EN |
rw |
0x0 |
CMD_QUEUE_READY_STAT_EN |
4 |
RESP_READY_STAT_EN |
rw |
0x0 |
RESP_READY_STAT_EN |
5 |
TRANSFER_ABORT_STAT_EN |
rw |
0x0 |
TRANSFER_ABORT_STAT_EN |
9 |
TRANSFER_ERR_STAT_EN |
rw |
0x0 |
TRANSFER_ERR_STAT_EN |
TX_THLD_STAT_EN field¶
Enable TX queue monitoring
RX_THLD_STAT_EN field¶
Enable RX queue monitoring
IBI_STATUS_THLD_STAT_EN field¶
Enable IBI queue monitoring
CMD_QUEUE_READY_STAT_EN field¶
Enable command queue monitoring
RESP_READY_STAT_EN field¶
Enable response queue monitoring
TRANSFER_ABORT_STAT_EN field¶
Enable transfer abort monitoring
TRANSFER_ERR_STAT_EN field¶
Enable transfer error monitoring
PIO_INTR_SIGNAL_ENABLE register¶
Absolute Address: 0xA8
Base Offset: 0x28
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
TX_THLD_SIGNAL_EN |
rw |
0x0 |
TX_THLD_SIGNAL_EN |
1 |
RX_THLD_SIGNAL_EN |
rw |
0x0 |
RX_THLD_SIGNAL_EN |
2 |
IBI_STATUS_THLD_SIGNAL_EN |
rw |
0x0 |
IBI_STATUS_THLD_SIGNAL_EN |
3 |
CMD_QUEUE_READY_SIGNAL_EN |
rw |
0x0 |
CMD_QUEUE_READY_SIGNAL_EN |
4 |
RESP_READY_SIGNAL_EN |
rw |
0x0 |
RESP_READY_SIGNAL_EN |
5 |
TRANSFER_ABORT_SIGNAL_EN |
rw |
0x0 |
TRANSFER_ABORT_SIGNAL_EN |
9 |
TRANSFER_ERR_SIGNAL_EN |
rw |
0x0 |
TRANSFER_ERR_SIGNAL_EN |
TX_THLD_SIGNAL_EN field¶
Enable TX queue interrupt
RX_THLD_SIGNAL_EN field¶
Enable RX queue interrupt
IBI_STATUS_THLD_SIGNAL_EN field¶
Enable IBI queue interrupt
CMD_QUEUE_READY_SIGNAL_EN field¶
Enable command queue interrupt
RESP_READY_SIGNAL_EN field¶
Enable response ready interrupt
TRANSFER_ABORT_SIGNAL_EN field¶
Enable transfer abort interrupt
TRANSFER_ERR_SIGNAL_EN field¶
Enable transfer error interrupt
PIO_INTR_FORCE register¶
Absolute Address: 0xAC
Base Offset: 0x2C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
TX_THLD_FORCE |
w |
0x0 |
TX_THLD_FORCE |
1 |
RX_THLD_FORCE |
w |
0x0 |
RX_THLD_FORCE |
2 |
IBI_THLD_FORCE |
w |
0x0 |
IBI_THLD_FORCE |
3 |
CMD_QUEUE_READY_FORCE |
w |
0x0 |
CMD_QUEUE_READY_FORCE |
4 |
RESP_READY_FORCE |
w |
0x0 |
RESP_READY_FORCE |
5 |
TRANSFER_ABORT_FORCE |
w |
0x0 |
TRANSFER_ABORT_FORCE |
9 |
TRANSFER_ERR_FORCE |
w |
0x0 |
TRANSFER_ERR_FORCE |
TX_THLD_FORCE field¶
Force TX queue interrupt
RX_THLD_FORCE field¶
Force RX queue interrupt
IBI_THLD_FORCE field¶
Force IBI queue interrupt
CMD_QUEUE_READY_FORCE field¶
Force command queue interrupt
RESP_READY_FORCE field¶
Force response queue interrupt
TRANSFER_ABORT_FORCE field¶
Force transfer aborted
TRANSFER_ERR_FORCE field¶
Force transfer error
PIO_CONTROL register¶
Absolute Address: 0xB0
Base Offset: 0x30
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
ENABLE |
rw |
0x1 |
ENABLE |
1 |
RS |
rw |
0x0 |
RS |
2 |
ABORT |
rw |
0x0 |
ABORT |
ENABLE field¶
Enables PIO queues. When disabled, SW may not read from/write to PIO queues. 1 - PIO queue enable request, 0 - PIO queue disable request
RS field¶
Run/Stop execution of enqueued commands. When set to 0, it holds execution of enqueued commands and runs current command to completion. 1 - PIO Queue start request, 0 - PIO Queue stop request.
ABORT field¶
Stop current command descriptor execution forcefully and hold remaining commands. 1 - Request PIO Abort, 0 - Resume PIO execution
I3C_EC register file¶
Absolute Address: 0x100
Base Offset: 0x100
Size: 0x1A4
Offset |
Identifier |
Name |
|---|---|---|
0x000 |
StdbyCtrlMode |
Standby Controller Mode |
0x100 |
SoCMgmtIf |
SoC Management Interface |
0x198 |
CtrlCfg |
Controller Config |
0x1A0 |
TERMINATION_EXTCAP_HEADER |
— |
StdbyCtrlMode register file¶
Absolute Address: 0x100
Base Offset: 0x0
Size: 0x44
Offset |
Identifier |
Name |
|---|---|---|
0x00 |
EXTCAP_HEADER |
— |
0x04 |
STBY_CR_CONTROL |
Standby Controller Control |
0x08 |
STBY_CR_DEVICE_ADDR |
Standby Controller Device Address |
0x0C |
STBY_CR_CAPABILITIES |
Standby Controller Capabilities |
0x10 |
STBY_CR_VIRTUAL_DEVICE_CHAR |
Standby Controller Virtual Device Characteristics |
0x14 |
STBY_CR_STATUS |
Standby Controller Status |
0x18 |
STBY_CR_DEVICE_CHAR |
Standby Controller Device Characteristics |
0x1C |
STBY_CR_DEVICE_PID_LO |
Standby Controller Device PID Low |
0x20 |
STBY_CR_INTR_STATUS |
Standby Controller Interrupt Status |
0x24 |
STBY_CR_VIRTUAL_DEVICE_PID_LO |
Standby Controller Virtual Device PID Low |
0x28 |
STBY_CR_INTR_SIGNAL_ENABLE |
Standby Controller Interrupt Signal Enable |
0x2C |
STBY_CR_INTR_FORCE |
Standby Controller Interrupt Force |
0x30 |
STBY_CR_CCC_CONFIG_GETCAPS |
Standby Controller CCC Configuration GETCAPS |
0x34 |
STBY_CR_CCC_CONFIG_RSTACT_PARAMS |
Standby Controller CCC Configuration RSTACT |
0x38 |
STBY_CR_VIRT_DEVICE_ADDR |
Standby Virtual Controller Device Address |
0x3C |
STBY_CR_MWL |
Standby Controller Maximum Write Length (read-only) |
0x40 |
STBY_CR_MRL |
Standby Controller Maximum Read Length and IBI Payload Size (read-only) |
EXTCAP_HEADER register¶
Absolute Address: 0x100
Base Offset: 0x0
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
CAP_ID |
r |
0x12 |
CAP_ID |
23:8 |
CAP_LENGTH |
r |
0x20 |
CAP_LENGTH |
CAP_ID field¶
Extended Capability ID
CAP_LENGTH field¶
Capability Structure Length in DWORDs
STBY_CR_CONTROL register¶
Absolute Address: 0x104
Base Offset: 0x4
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
PENDING_RX_NACK |
rw |
0x0 |
Pending RX NACK |
1 |
HANDOFF_DELAY_NACK |
rw |
0x0 |
Handoff Delay NACK |
2 |
ACR_FSM_OP_SELECT |
rw |
0x0 |
Active Controller Select |
3 |
PRIME_ACCEPT_GETACCCR |
rw |
0x0 |
Prime to Accept Controller Role |
4 |
HANDOFF_DEEP_SLEEP |
rw, wset |
0x0 |
Handoff Deep Sleep |
5 |
CR_REQUEST_SEND |
w |
0x0 |
Send Controller Role Request |
10:8 |
BAST_CCC_IBI_RING |
rw |
0x0 |
Ring Bundle IBI Selector for Broadcast CCC Capture |
12 |
TARGET_XACT_ENABLE |
rw |
0x1 |
Target Transaction Interface Servicing Enable |
13 |
DAA_SETAASA_ENABLE |
rw |
0x0 |
Dynamic Address Method Enable SETAASA |
14 |
DAA_SETDASA_ENABLE |
rw |
0x0 |
Dynamic Address Method Enable SETDASA |
15 |
DAA_ENTDAA_ENABLE |
rw |
0x0 |
Dynamic Address Method Enable ENTDAA |
20 |
RSTACT_DEFBYTE_02 |
rw |
0x0 |
RSTACT Support DefByte 0x02 |
31:30 |
STBY_CR_ENABLE_INIT |
rw |
0x0 |
Host Controller Secondary Controller Enable |
PENDING_RX_NACK field¶
HANDOFF_DELAY_NACK field¶
ACR_FSM_OP_SELECT field¶
PRIME_ACCEPT_GETACCCR field¶
HANDOFF_DEEP_SLEEP field¶
If this field has a value of 1'b1, then the Secondary Controller Logic shall report a return from Deep Sleep state to the Active Controller. Writing 1'b1 to this bit is sticky. This field shall automatically clear to 1'b0 after accepting the Controller Role and transitioning to Active Controller mode.
CR_REQUEST_SEND field¶
Write of 1'b1 to this field shall instruct the Secondary Controller Logic to attempt to send a Controller Role Request to the I3C Bus.
BAST_CCC_IBI_RING field¶
Indicates which Ring Bundle will be used to capture Broadcast CCC data sent by the Active Controller. The Ring Bundle must be configured and enabled, and its IBI Ring Pair must also be initialized and ready to receive data.
TARGET_XACT_ENABLE field¶
Indicates whether Read-Type/Write-Type transaction servicing is enabled, via an I3C Target Transaction Interface to software (Section 6.17.3).
1'b0: DISABLED: not available
1'b1: ENABLED: available for software
DAA_SETAASA_ENABLE field¶
Indicates SETAASA method is enabled.
1'b0: DISABLED: will not respond
1'b1: ENABLED: will respond
DAA_SETDASA_ENABLE field¶
Indicates SETDASA method is enabled.
1'b0: DISABLED: will not respond
1'b1: ENABLED: will respond
DAA_ENTDAA_ENABLE field¶
Indicates ENTDAA method is enabled.
1'b0: DISABLED: will not respond
1'b1: ENABLED: will respond
RSTACT_DEFBYTE_02 field¶
Controls whether I3C Secondary Controller Logic supports RSTACT CCC with Defining Byte 0x02.
1'b0: NOT_SUPPORTED: Do not ACK Defining Byte 0x02
1'b1: HANDLE_INTR: Support Defining Byte 0x02
STBY_CR_ENABLE_INIT field¶
Enables or disables the Secondary Controller:
2'b00 - DISABLED: Secondary Controller is disabled.
2'b01 - ACM_INIT: Secondary Controller is enabled, but Host Controller initializes in Active Controller mode.
2'b10 - SCM_RUNNING: Secondary Controller operation is enabled, Host Controller initializes in Standby Controller mode.
2'b11 - SCM_HOT_JOIN: Secondary Controller operation is enabled, Host Controller conditionally becomes a Hot-Joining Device to receive its Dynamic Address before operating in Standby Controller mode.
STBY_CR_DEVICE_ADDR register¶
Absolute Address: 0x108
Base Offset: 0x8
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
6:0 |
STATIC_ADDR |
rw |
0x0 |
Device Static Address |
15 |
STATIC_ADDR_VALID |
rw |
0x0 |
Static Address is Valid |
22:16 |
DYNAMIC_ADDR |
rw |
0x0 |
Device Dynamic Address |
31 |
DYNAMIC_ADDR_VALID |
rw |
0x0 |
Dynamic Address is Valid |
STATIC_ADDR field¶
This field contains the Host Controller Device’s Static Address.
STATIC_ADDR_VALID field¶
Indicates whether or not the value in the STATIC_ADDR field is valid.
1'b0: The Static Address field is not valid
1'b1: The Static Address field is valid
DYNAMIC_ADDR field¶
Contains the Host Controller Device’s Dynamic Address.
DYNAMIC_ADDR_VALID field¶
Indicates whether or not the value in the DYNAMIC_ADDR field is valid. 1'b0: DYNAMIC_ADDR field is not valid 1'b1: DYNAMIC_ADDR field is valid
STBY_CR_CAPABILITIES register¶
Absolute Address: 0x10C
Base Offset: 0xC
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
5 |
SIMPLE_CRR_SUPPORT |
r |
0x0 |
SIMPLE_CRR_SUPPORT |
12 |
TARGET_XACT_SUPPORT |
r |
0x1 |
TARGET_XACT_SUPPORT |
13 |
DAA_SETAASA_SUPPORT |
r |
0x1 |
DAA_SETAASA_SUPPORT |
14 |
DAA_SETDASA_SUPPORT |
r |
0x1 |
DAA_SETDASA_SUPPORT |
15 |
DAA_ENTDAA_SUPPORT |
r |
0x0 |
DAA_ENTDAA_SUPPORT |
SIMPLE_CRR_SUPPORT field¶
TARGET_XACT_SUPPORT field¶
Defines whether an I3C Target Transaction Interface is supported.
1'b0: DISABLED: Not supported
1'b1: ENABLED: Supported via vendor-defined Extended Capability structure
DAA_SETAASA_SUPPORT field¶
Defines whether Dynamic Address Assignment with SETAASA CCC (using Static Address) is supported.
1'b0: DISABLED: Not supported
1'b1: ENABLED: Supported
DAA_SETDASA_SUPPORT field¶
Defines whether Dynamic Address Assignment with SETDASA CCC (using Static Address) is supported.
1'b0: DISABLED: Not supported
1'b1: ENABLED: Supported
DAA_ENTDAA_SUPPORT field¶
Defines whether Dynamic Address Assignment with ENTDAA CCC is supported.
1'b0: DISABLED: Not supported
1'b1: ENABLED: Supported
STBY_CR_VIRTUAL_DEVICE_CHAR register¶
Absolute Address: 0x110
Base Offset: 0x10
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:1 |
PID_HI |
rw |
0x7FFF |
PID_HI |
23:16 |
DCR |
rw |
0xBD |
DCR |
28:24 |
BCR_VAR |
rw |
0x10 |
BCR_VAR |
31:29 |
BCR_FIXED |
rw |
0x1 |
BCR_FIXED |
PID_HI field¶
High part of the 48-bit Target Device Provisioned ID.
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
DCR field¶
Device Characteristics Register. Value represents an OCP Recovery Device.
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
BCR_VAR field¶
Bus Characteristics, Variable Part.
Reset value is set to 5'b10000, because this device:
-
[bit4] is a Virtual Target
-
[bit3] is not Offline Capable
-
[bit2] does not apply due to bit1
-
[bit1] is not capable of IBI requests
-
[bit0] has no speed limitation
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
BCR_FIXED field¶
Bus Characteristics, Fixed Part.
Reset value is set to 3'b001, because this device is an I3C Target, which supports extended capabilities.
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
STBY_CR_STATUS register¶
Absolute Address: 0x114
Base Offset: 0x14
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
2 |
AC_CURRENT_OWN |
rw |
0x0 |
AC_CURRENT_OWN |
7:5 |
SIMPLE_CRR_STATUS |
rw |
0x0 |
SIMPLE_CRR_STATUS |
8 |
HJ_REQ_STATUS |
rw |
0x0 |
HJ_REQ_STATUS |
AC_CURRENT_OWN field¶
SIMPLE_CRR_STATUS field¶
HJ_REQ_STATUS field¶
STBY_CR_DEVICE_CHAR register¶
Absolute Address: 0x118
Base Offset: 0x18
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:1 |
PID_HI |
rw |
0x7FFF |
PID_HI |
23:16 |
DCR |
rw |
0xBD |
DCR |
28:24 |
BCR_VAR |
rw |
0x16 |
BCR_VAR |
31:29 |
BCR_FIXED |
rw |
0x1 |
BCR_FIXED |
PID_HI field¶
High part of the 48-bit Target Device Provisioned ID.
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
DCR field¶
Device Characteristics Register. Value represents an OCP Recovery Device.
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
BCR_VAR field¶
Bus Characteristics, Variable Part.
Reset value is set to 5'b10110, because this device:
-
[bit4] exposes a Virtual Target
-
[bit3] is not Offline Capable
-
[bit2] (always) uses the MDB in the IBI Payload
-
[bit1] is capable of IBI requests
-
[bit0] has no speed limitation
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
BCR_FIXED field¶
Bus Characteristics, Fixed Part.
Reset value is set to 3'b001, because this device is an I3C Target, which supports extended capabilities
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
STBY_CR_DEVICE_PID_LO register¶
Absolute Address: 0x11C
Base Offset: 0x1C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PID_LO |
rw |
0x5A00A5 |
PID_LO |
PID_LO field¶
Low part of the 48-bit Target Device Provisioned ID.
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
STBY_CR_INTR_STATUS register¶
Absolute Address: 0x120
Base Offset: 0x20
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
ACR_HANDOFF_OK_REMAIN_STAT |
rw |
0x0 |
|
1 |
ACR_HANDOFF_OK_PRIMED_STAT |
rw |
0x0 |
|
2 |
ACR_HANDOFF_ERR_FAIL_STAT |
rw |
0x0 |
|
3 |
ACR_HANDOFF_ERR_M3_STAT |
rw |
0x0 |
|
10 |
CRR_RESPONSE_STAT |
rw |
0x0 |
|
11 |
STBY_CR_DYN_ADDR_STAT |
rw |
0x0 |
|
12 |
STBY_CR_ACCEPT_NACKED_STAT |
rw |
0x0 |
|
13 |
STBY_CR_ACCEPT_OK_STAT |
rw |
0x0 |
|
14 |
STBY_CR_ACCEPT_ERR_STAT |
rw |
0x0 |
|
16 |
STBY_CR_OP_RSTACT_STAT |
rw |
0x0 |
Secondary Controller Operation Reset Action |
17 |
CCC_PARAM_MODIFIED_STAT |
rw |
0x0 |
|
18 |
CCC_UNHANDLED_NACK_STAT |
rw |
0x0 |
|
19 |
CCC_FATAL_RSTDAA_ERR_STAT |
rw |
0x0 |
ACR_HANDOFF_OK_REMAIN_STAT field¶
ACR_HANDOFF_OK_PRIMED_STAT field¶
ACR_HANDOFF_ERR_FAIL_STAT field¶
ACR_HANDOFF_ERR_M3_STAT field¶
CRR_RESPONSE_STAT field¶
STBY_CR_DYN_ADDR_STAT field¶
STBY_CR_ACCEPT_NACKED_STAT field¶
STBY_CR_ACCEPT_OK_STAT field¶
STBY_CR_ACCEPT_ERR_STAT field¶
STBY_CR_OP_RSTACT_STAT field¶
The Host Controller shall write 1'b1 to this field to indicate that the Secondary Controller received a RSTACT CCC from the Active Controller, followed by the Target Reset Pattern.
CCC_PARAM_MODIFIED_STAT field¶
CCC_UNHANDLED_NACK_STAT field¶
CCC_FATAL_RSTDAA_ERR_STAT field¶
STBY_CR_VIRTUAL_DEVICE_PID_LO register¶
Absolute Address: 0x124
Base Offset: 0x24
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PID_LO |
rw |
0x5A10A5 |
PID_LO |
PID_LO field¶
Low part of the 48-bit Target Virtual Device Provisioned ID.
This field is Read-Only while the STBY_CR_ENABLE_INIT field in register STBY_CR_CONTROL is not zero.
STBY_CR_INTR_SIGNAL_ENABLE register¶
Absolute Address: 0x128
Base Offset: 0x28
Size: 0x4
When set to 1'b1, and the corresponding interrupt status field is set in register STBY_CR_INTR_STATUS, the Host Controller shall assert an interrupt to the Host.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
ACR_HANDOFF_OK_REMAIN_SIGNAL_EN |
rw |
0x0 |
|
1 |
ACR_HANDOFF_OK_PRIMED_SIGNAL_EN |
rw |
0x0 |
|
2 |
ACR_HANDOFF_ERR_FAIL_SIGNAL_EN |
rw |
0x0 |
|
3 |
ACR_HANDOFF_ERR_M3_SIGNAL_EN |
rw |
0x0 |
|
10 |
CRR_RESPONSE_SIGNAL_EN |
rw |
0x0 |
|
11 |
STBY_CR_DYN_ADDR_SIGNAL_EN |
rw |
0x0 |
|
12 |
STBY_CR_ACCEPT_NACKED_SIGNAL_EN |
rw |
0x0 |
|
13 |
STBY_CR_ACCEPT_OK_SIGNAL_EN |
rw |
0x0 |
|
14 |
STBY_CR_ACCEPT_ERR_SIGNAL_EN |
rw |
0x0 |
|
16 |
STBY_CR_OP_RSTACT_SIGNAL_EN |
rw |
0x0 |
|
17 |
CCC_PARAM_MODIFIED_SIGNAL_EN |
rw |
0x0 |
|
18 |
CCC_UNHANDLED_NACK_SIGNAL_EN |
rw |
0x0 |
|
19 |
CCC_FATAL_RSTDAA_ERR_SIGNAL_EN |
rw |
0x0 |
ACR_HANDOFF_OK_REMAIN_SIGNAL_EN field¶
ACR_HANDOFF_OK_PRIMED_SIGNAL_EN field¶
ACR_HANDOFF_ERR_FAIL_SIGNAL_EN field¶
ACR_HANDOFF_ERR_M3_SIGNAL_EN field¶
CRR_RESPONSE_SIGNAL_EN field¶
STBY_CR_DYN_ADDR_SIGNAL_EN field¶
STBY_CR_ACCEPT_NACKED_SIGNAL_EN field¶
STBY_CR_ACCEPT_OK_SIGNAL_EN field¶
STBY_CR_ACCEPT_ERR_SIGNAL_EN field¶
STBY_CR_OP_RSTACT_SIGNAL_EN field¶
CCC_PARAM_MODIFIED_SIGNAL_EN field¶
CCC_UNHANDLED_NACK_SIGNAL_EN field¶
CCC_FATAL_RSTDAA_ERR_SIGNAL_EN field¶
STBY_CR_INTR_FORCE register¶
Absolute Address: 0x12C
Base Offset: 0x2C
Size: 0x4
For software testing, when set to 1'b1, forces the corresponding interrupt to be sent to the Host, if the corresponding fields are set in register STBY_CR_INTR_SIGNAL_ENABLE
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
10 |
CRR_RESPONSE_FORCE |
rw |
0x0 |
|
11 |
STBY_CR_DYN_ADDR_FORCE |
rw |
0x0 |
|
12 |
STBY_CR_ACCEPT_NACKED_FORCE |
rw |
0x0 |
|
13 |
STBY_CR_ACCEPT_OK_FORCE |
rw |
0x0 |
|
14 |
STBY_CR_ACCEPT_ERR_FORCE |
rw |
0x0 |
|
16 |
STBY_CR_OP_RSTACT_FORCE |
w |
0x0 |
|
17 |
CCC_PARAM_MODIFIED_FORCE |
rw |
0x0 |
|
18 |
CCC_UNHANDLED_NACK_FORCE |
rw |
0x0 |
|
19 |
CCC_FATAL_RSTDAA_ERR_FORCE |
rw |
0x0 |
CRR_RESPONSE_FORCE field¶
STBY_CR_DYN_ADDR_FORCE field¶
STBY_CR_ACCEPT_NACKED_FORCE field¶
STBY_CR_ACCEPT_OK_FORCE field¶
STBY_CR_ACCEPT_ERR_FORCE field¶
STBY_CR_OP_RSTACT_FORCE field¶
CCC_PARAM_MODIFIED_FORCE field¶
CCC_UNHANDLED_NACK_FORCE field¶
CCC_FATAL_RSTDAA_ERR_FORCE field¶
STBY_CR_CCC_CONFIG_GETCAPS register¶
Absolute Address: 0x130
Base Offset: 0x30
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
2:0 |
F2_CRCAP1_BUS_CONFIG |
rw |
0x0 |
|
11:8 |
F2_CRCAP2_DEV_INTERACT |
rw |
0x0 |
F2_CRCAP1_BUS_CONFIG field¶
F2_CRCAP2_DEV_INTERACT field¶
STBY_CR_CCC_CONFIG_RSTACT_PARAMS register¶
Absolute Address: 0x134
Base Offset: 0x34
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
RST_ACTION |
r |
0x1 |
Defining Byte of the RSTACT CCC |
15:8 |
RESET_TIME_PERIPHERAL |
rw |
0x0 |
Time to Reset Peripheral |
23:16 |
RESET_TIME_TARGET |
rw |
0x0 |
Time to Reset Target |
31 |
RESET_DYNAMIC_ADDR |
rw |
0x1 |
Reset Dynamic Address after Target Reset |
RST_ACTION field¶
Contains the Defining Byte received with the last Direct SET CCC sent by the Active Controller. If not armed (START or RSTACT with unsupported defining byte) set to spec default 0x1.
RESET_TIME_PERIPHERAL field¶
For Direct GET CCC, this field is returned for Defining Byte 0x81.
RESET_TIME_TARGET field¶
For Direct GET CCC, this field is returned for Defining Byte 0x82.
RESET_DYNAMIC_ADDR field¶
If set to 1'b1, then the Secondary Controller Logic must clear its Dynamic Address in register STBY_CR_DEVICE_ADDR after receiving a Target Reset Pattern that followed a Broadcast or Direct SET RSTACT CCC sent to the Dynamic Address, with Defining Byte 0x01 or 0x02. Requires support for Dynamic Address Assignment with at least one supported method, such as the ENTDAA CCC, with field DAA_ENTDAA_ENABLE set to 1'b1 in register STBY_CR_CONTROL. If field ACR_FSM_OP_SELECT in register STBY_CR_CONTROL is set to 1'b1, then this field shall be cleared (i.e., readiness to accept the Controller Role shall be revoked) with this Target Reset Pattern.
STBY_CR_VIRT_DEVICE_ADDR register¶
Absolute Address: 0x138
Base Offset: 0x38
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
6:0 |
VIRT_STATIC_ADDR |
rw |
0x0 |
Device Static Address |
15 |
VIRT_STATIC_ADDR_VALID |
rw |
0x0 |
Virtual Device Static Address is Valid |
22:16 |
VIRT_DYNAMIC_ADDR |
rw |
0x0 |
Virtual Device Dynamic Address |
31 |
VIRT_DYNAMIC_ADDR_VALID |
rw |
0x0 |
Virtual Device Dynamic Address is Valid |
VIRT_STATIC_ADDR field¶
This field contains the Host Controller Device’s Static Address.
VIRT_STATIC_ADDR_VALID field¶
Indicates whether or not the value in the VIRT_STATIC_ADDR field is valid.
1'b0: The Virtual Device Static Address field is not valid
1'b1: The Virtual Device Static Address field is valid
VIRT_DYNAMIC_ADDR field¶
Contains the Controller Virtual Device’s Dynamic Address.
VIRT_DYNAMIC_ADDR_VALID field¶
Indicates whether or not the value in the VIRT_DYNAMIC_ADDR field is valid. 1'b0: VIRT_DYNAMIC_ADDR field is not valid 1'b1: VIRT_DYNAMIC_ADDR field is valid
STBY_CR_MWL register¶
Absolute Address: 0x13C
Base Offset: 0x3C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:0 |
MWL |
r |
0x100 |
Maximum Write Length |
MWL field¶
This field contains the maximum write length (MWL) (read-only)
STBY_CR_MRL register¶
Absolute Address: 0x140
Base Offset: 0x40
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:0 |
MRL |
r |
0x100 |
Maximum Read Length |
23:16 |
IBIL |
r |
0x10 |
IBI Payload Size |
MRL field¶
This field contains the maximum read length (MRL) (read-only)
IBIL field¶
This field contains the IBI payload size (IBIL) (read-only)
SoCMgmtIf register file¶
Absolute Address: 0x200
Base Offset: 0x100
Size: 0x94
Offset |
Identifier |
Name |
|---|---|---|
0x00 |
EXTCAP_HEADER |
— |
0x04 |
SOC_MGMT_CONTROL |
SoC Management Control |
0x08 |
SOC_MGMT_STATUS |
SoC Management Status |
0x0C |
REC_INTF_CFG |
Configuration of Recovery Interface |
0x10 |
REC_INTF_REG_W1C_ACCESS |
Mock hardware register access |
0x14 |
SOC_MGMT_RSVD_2 |
|
0x18 |
SOC_MGMT_RSVD_3 |
|
0x1C |
SOC_PAD_CONF |
I3C Pad Configuration Register |
0x20 |
SOC_PAD_ATTR |
I3C Pad Attribute Configuration Register |
0x24 |
SOC_MGMT_FEATURE_2 |
|
0x28 |
SOC_MGMT_FEATURE_3 |
|
0x2C |
T_R_REG |
|
0x30 |
T_F_REG |
|
0x34 |
T_SU_DAT_REG |
|
0x38 |
T_SU_DAT_I2C_REG |
|
0x3C |
T_HD_DAT_REG |
|
0x40 |
T_HIGH_REG |
|
0x44 |
T_HIGH_OD_REG |
|
0x48 |
T_HIGH_INIT_OD_REG |
|
0x4C |
T_HIGH_I2C_REG |
|
0x50 |
T_LOW_REG |
|
0x54 |
T_LOW_OD_REG |
|
0x58 |
T_LOW_I2C_REG |
|
0x5C |
T_HD_STA_REG |
|
0x60 |
T_HD_STA_I2C_REG |
|
0x64 |
T_HD_RSTA_REG |
|
0x68 |
T_SU_STA_REG |
|
0x6C |
T_SU_STA_I2C_REG |
|
0x70 |
T_SU_STO_REG |
|
0x74 |
T_SU_STO_I2C_REG |
|
0x78 |
T_DS_OD_REG |
|
0x7C |
T_FREE_REG |
|
0x80 |
T_FREE_I2C_REG |
|
0x84 |
T_AVAL_REG |
|
0x88 |
T_IDLE_REG |
|
0x8C |
HDR_TIMEOUT_EN_REG |
|
0x90 |
T_HDR_TIMEOUT_REG |
EXTCAP_HEADER register¶
Absolute Address: 0x200
Base Offset: 0x0
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
CAP_ID |
r |
0xC1 |
CAP_ID |
23:8 |
CAP_LENGTH |
r |
0x1A |
CAP_LENGTH |
CAP_ID field¶
Extended Capability ID
CAP_LENGTH field¶
Capability Structure Length in DWORDs
SOC_MGMT_CONTROL register¶
Absolute Address: 0x204
Base Offset: 0x4
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PLACEHOLDER |
rw |
0x0 |
PLACEHOLDER field¶
SOC_MGMT_STATUS register¶
Absolute Address: 0x208
Base Offset: 0x8
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PLACEHOLDER |
rw |
0x0 |
PLACEHOLDER field¶
REC_INTF_CFG register¶
Absolute Address: 0x20C
Base Offset: 0xC
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
REC_INTF_BYPASS |
rw |
0x0 |
Recovery Interface access type |
1 |
REC_PAYLOAD_DONE |
rw |
0x0 |
Recovery payload done |
REC_INTF_BYPASS field¶
Choose Recovery Interface access type:
-
0 - I3C Core
-
1 - direct AXI
REC_PAYLOAD_DONE field¶
Inform Recovery Handler that payload transfer is finished.
REC_INTF_REG_W1C_ACCESS register¶
Absolute Address: 0x210
Base Offset: 0x10
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
DEVICE_RESET_CTRL |
rw |
0x0 |
HW Device Reset Control |
15:8 |
RECOVERY_CTRL_ACTIVATE_REC_IMG |
rw |
0x0 |
HW Activate Recovery Image |
23:16 |
INDIRECT_FIFO_CTRL_RESET |
rw |
0x0 |
HW Indirect FIFO Reset Control |
DEVICE_RESET_CTRL field¶
Write to 'Reset control - Device Reset Control' register, mocking a hardware access (bypassing 'write 1 to clear' register property).
RECOVERY_CTRL_ACTIVATE_REC_IMG field¶
Write to 'Recovery Control - Activate Recovery Image' register, mocking a hardware access (bypassing 'write 1 to clear' register property).
INDIRECT_FIFO_CTRL_RESET field¶
Write to 'Indirect memory configuration - reset' register, mocking a hardware access (bypassing 'write 1 to clear' register property).
SOC_MGMT_RSVD_2 register¶
Absolute Address: 0x214
Base Offset: 0x14
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PLACEHOLDER |
rw |
0x0 |
PLACEHOLDER field¶
SOC_MGMT_RSVD_3 register¶
Absolute Address: 0x218
Base Offset: 0x18
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PLACEHOLDER |
rw |
0x0 |
PLACEHOLDER field¶
SOC_PAD_CONF register¶
Absolute Address: 0x21C
Base Offset: 0x1C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
INPUT_ENABLE |
rw |
0x1 |
Enable Input |
1 |
SCHMITT_EN |
rw |
0x0 |
Schmitt Trigger Enable |
2 |
KEEPER_EN |
rw |
0x0 |
High-Keeper Enable |
3 |
PULL_DIR |
rw |
0x0 |
Pull Direction |
4 |
PULL_EN |
rw |
0x0 |
Pull Enable |
5 |
IO_INVERSION |
rw |
0x0 |
IO INVERSION |
6 |
OD_EN |
rw |
0x0 |
Open-Drain Enable |
7 |
VIRTUAL_OD_EN |
rw |
0x0 |
Virtual Open Drain Enable |
31:24 |
PAD_TYPE |
rw |
0x1 |
Pad type |
INPUT_ENABLE field¶
Enable input:
0 - enabled
1 - disabled
SCHMITT_EN field¶
Enable the Schmitt Trigger:
0 - disabled
1 - enabled
KEEPER_EN field¶
Enable the High-Keeper:
0 - disabled
1 - enabled
PULL_DIR field¶
Direction of the pull:
0 - Pull down
1 - Pull up
PULL_EN field¶
Enable Pull:
0 - disabled
1 - enabled
IO_INVERSION field¶
Invert I/O signal:
0 - signals pass-through
1 - signals are inverted
OD_EN field¶
Enable Open-Drain:
0 - disabled
1 - enabled
VIRTUAL_OD_EN field¶
Enable virtual open drain:
0 - disabled
1 - enabled
PAD_TYPE field¶
Select pad type
0 - Bidirectional
1 - Open-drain
2 - Input-only
3 - Analog input
SOC_PAD_ATTR register¶
Absolute Address: 0x220
Base Offset: 0x20
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
15:8 |
DRIVE_SLEW_RATE |
rw |
0xF |
Driver Slew Rate |
31:24 |
DRIVE_STRENGTH |
rw |
0xF |
Driver Strength |
DRIVE_SLEW_RATE field¶
Select driver slew rate
'0 - lowest
'1 - highest
DRIVE_STRENGTH field¶
Select driver strength
'0 - lowest
'1 - highest
SOC_MGMT_FEATURE_2 register¶
Absolute Address: 0x224
Base Offset: 0x24
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PLACEHOLDER |
rw |
0x0 |
PLACEHOLDER field¶
Reserved for: I/O ring and pad configuration
SOC_MGMT_FEATURE_3 register¶
Absolute Address: 0x228
Base Offset: 0x28
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PLACEHOLDER |
rw |
0x0 |
PLACEHOLDER field¶
Reserved for: I/O ring and pad configuration
T_R_REG register¶
Absolute Address: 0x22C
Base Offset: 0x2C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_R |
rw |
0x0 |
T_R field¶
Rise time of both SDA and SCL in clock units
T_F_REG register¶
Absolute Address: 0x230
Base Offset: 0x30
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_F |
rw |
0x0 |
T_F field¶
Fall time of both SDA and SCL in clock units
T_SU_DAT_REG register¶
Absolute Address: 0x234
Base Offset: 0x34
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_SU_DAT |
rw |
0x0 |
T_SU_DAT field¶
Data setup time in clock units
T_SU_DAT_I2C_REG register¶
Absolute Address: 0x238
Base Offset: 0x38
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_SU_DAT_I2C |
rw |
0x0 |
T_SU_DAT_I2C field¶
Data setup time in I2C mode in clock units
T_HD_DAT_REG register¶
Absolute Address: 0x23C
Base Offset: 0x3C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HD_DAT |
rw |
0x0 |
T_HD_DAT field¶
Data hold time in clock units
T_HIGH_REG register¶
Absolute Address: 0x240
Base Offset: 0x40
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HIGH |
rw |
0x0 |
High period of the SCL in clock units |
T_HIGH field¶
T_HIGH_OD_REG register¶
Absolute Address: 0x244
Base Offset: 0x44
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HIGH_OD |
rw |
0x0 |
High period of the SCL in Open-Drain mode in clock units |
T_HIGH_OD field¶
T_HIGH_INIT_OD_REG register¶
Absolute Address: 0x248
Base Offset: 0x48
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HIGH_INIT_OD |
rw |
0x0 |
High period of the SCL in Open-Drain mode during bus initialization in clock units |
T_HIGH_INIT_OD field¶
T_HIGH_I2C_REG register¶
Absolute Address: 0x24C
Base Offset: 0x4C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HIGH_I2C |
rw |
0x0 |
High period of the SCL in I2C mode in clock units |
T_HIGH_I2C field¶
T_LOW_REG register¶
Absolute Address: 0x250
Base Offset: 0x50
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_LOW |
rw |
0x0 |
T_LOW field¶
Low period of the SCL in clock units
T_LOW_OD_REG register¶
Absolute Address: 0x254
Base Offset: 0x54
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_LOW_OD |
rw |
0x0 |
T_LOW_OD field¶
Low period of the SCL in Open-Drain mode in clock units
T_LOW_I2C_REG register¶
Absolute Address: 0x258
Base Offset: 0x58
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_LOW_I2C |
rw |
0x0 |
T_LOW_I2C field¶
Low period of the SCL in I2C mode in clock units
T_HD_STA_REG register¶
Absolute Address: 0x25C
Base Offset: 0x5C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HD_STA |
rw |
0x0 |
T_HD_STA field¶
Hold time for START in clock units
T_HD_STA_I2C_REG register¶
Absolute Address: 0x260
Base Offset: 0x60
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HD_STA_I2C |
rw |
0x0 |
T_HD_STA_I2C field¶
Hold time for START in I2C mode in clock units
T_HD_RSTA_REG register¶
Absolute Address: 0x264
Base Offset: 0x64
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HD_RSTA |
rw |
0x0 |
T_HD_RSTA field¶
Hold time for repeated START in clock units
T_SU_STA_REG register¶
Absolute Address: 0x268
Base Offset: 0x68
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_SU_STA |
rw |
0x0 |
T_SU_STA field¶
Setup time for repeated START in clock units
T_SU_STA_I2C_REG register¶
Absolute Address: 0x26C
Base Offset: 0x6C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_SU_STA_I2C |
rw |
0x0 |
T_SU_STA_I2C field¶
Setup time for repeated START in I2C mode in clock units
T_SU_STO_REG register¶
Absolute Address: 0x270
Base Offset: 0x70
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_SU_STO |
rw |
0x0 |
T_SU_STO field¶
Setup time for STOP in clock units
T_SU_STO_I2C_REG register¶
Absolute Address: 0x274
Base Offset: 0x74
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_SU_STO_I2C |
rw |
0x0 |
T_SU_STO_I2C field¶
Setup time for STOP in in I2C mode clock units
T_DS_OD_REG register¶
Absolute Address: 0x278
Base Offset: 0x78
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_DS_OD |
rw |
0x0 |
T_DS_OD field¶
Setup time for SDA during START in clock units
T_FREE_REG register¶
Absolute Address: 0x27C
Base Offset: 0x7C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
T_FREE |
rw |
0xC |
T_FREE field¶
Bus Free Time Between a STOP and a START
T_FREE_I2C_REG register¶
Absolute Address: 0x280
Base Offset: 0x80
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
T_FREE_I2C |
rw |
0xC |
T_FREE_I2C field¶
Bus Free Time Between a STOP and a START in I2C mode
T_AVAL_REG register¶
Absolute Address: 0x284
Base Offset: 0x84
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
T_AVAL |
rw |
0x12C |
T_AVAL field¶
T_IDLE_REG register¶
Absolute Address: 0x288
Base Offset: 0x88
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
T_IDLE |
rw |
0xEA60 |
T_IDLE field¶
Time in clock cycles from STOP detection until Bus Idle Condition (tIDLE). Configure based on System Clock
HDR_TIMEOUT_EN_REG register¶
Absolute Address: 0x28C
Base Offset: 0x8C
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
0 |
HDR_TIMEOUT_EN |
rw |
0x0 |
HDR_TIMEOUT_EN field¶
Enable bit for the optional 60us HDR error recovery timer (I3C spec 5.1.10.1.9). When enabled, the Target can recover from TE0/TE1 errors if both SCL and SDA stay High for a period exceeding the configured threshold. Disabled on reset.
T_HDR_TIMEOUT_REG register¶
Absolute Address: 0x290
Base Offset: 0x90
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
19:0 |
T_HDR_TIMEOUT |
rw |
0xEA60 |
T_HDR_TIMEOUT field¶
Timer threshold in clock cycles for the optional HDR error recovery (I3C spec 5.1.10.1.9). If both SCL and SDA stay High for this many clock cycles during a TE0/TE1 error-induced HDR mode, the Target exits HDR mode and returns to Idle. Configure based on System Clock to achieve 60us.
CtrlCfg register file¶
Absolute Address: 0x298
Base Offset: 0x198
Size: 0x8
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
EXTCAP_HEADER |
— |
0x4 |
CONTROLLER_CONFIG |
Controller Config |
EXTCAP_HEADER register¶
Absolute Address: 0x298
Base Offset: 0x0
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
CAP_ID |
r |
0x2 |
CAP_ID |
23:8 |
CAP_LENGTH |
r |
0x2 |
CAP_LENGTH |
CAP_ID field¶
Extended Capability ID
CAP_LENGTH field¶
Capability Structure Length in DWORDs
CONTROLLER_CONFIG register¶
Absolute Address: 0x29C
Base Offset: 0x4
Size: 0x4
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
5:4 |
OPERATION_MODE |
r |
0x1 |
Operation Mode |
OPERATION_MODE field¶
TERMINATION_EXTCAP_HEADER register¶
Absolute Address: 0x2A0
Base Offset: 0x1A0
Size: 0x4
Register after the last EC must advertise ID == 0. Termination register is added to guarantee that the discovery mechanism reaches termination value.
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
7:0 |
CAP_ID |
r |
0x0 |
CAP_ID |
23:8 |
CAP_LENGTH |
r |
0x1 |
CAP_LENGTH |
CAP_ID field¶
Extended Capability ID
CAP_LENGTH field¶
Capability Structure Length in DWORDs
DAT memory¶
Absolute Address: 0x400
Base Offset: 0x400
Size: 0x400
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
DAT_MEMORY[128] |
— |
DAT_MEMORY register¶
Absolute Address: 0x400
Base Offset: 0x0
Size: 0x400
Array Dimensions: [128]
Array Stride: 0x8
Total Size: 0x400
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
6:0 |
STATIC_ADDRESS |
rw |
— |
STATIC_ADDRESS |
12 |
IBI_PAYLOAD |
rw |
— |
IBI_PAYLOAD |
13 |
IBI_REJECT |
rw |
— |
IBI_REJECT |
14 |
CRR_REJECT |
rw |
— |
CRR_REJECT |
15 |
TS |
rw |
— |
TS |
23:16 |
DYNAMIC_ADDRESS |
rw |
— |
DYNAMIC_ADDRESS |
28:26 |
RING_ID |
rw |
— |
RING_ID |
30:29 |
DEV_NACK_RETRY_CNT |
rw |
— |
DEV_NACK_RETRY_CNT |
31 |
DEVICE |
rw |
— |
DEVICE |
39:32 |
AUTOCMD_MASK |
rw |
— |
AUTOCMD_MASK |
47:40 |
AUTOCMD_VALUE |
rw |
— |
AUTOCMD_VALUE |
50:48 |
AUTOCMD_MODE |
rw |
— |
AUTOCMD_MODE |
58:51 |
AUTOCMD_HDR_CODE |
rw |
— |
AUTOCMD_HDR_CODE |
STATIC_ADDRESS field¶
I3C/I2C static device address
IBI_PAYLOAD field¶
Device's IBI contains data payload
IBI_REJECT field¶
Reject device's request for IBI
CRR_REJECT field¶
Reject device's request for controller change
TS field¶
Enable/disable IBI timestamp
DYNAMIC_ADDRESS field¶
I3C dynamic address
RING_ID field¶
Send IBI read to ring bundle
DEV_NACK_RETRY_CNT field¶
Number of retries before giving up
DEVICE field¶
Device type: 0 - I3C device, 1 - I2C device.
AUTOCMD_MASK field¶
IBI mask
AUTOCMD_VALUE field¶
IBI value that triggers auto command
AUTOCMD_MODE field¶
Auto command mode and speed
AUTOCMD_HDR_CODE field¶
Device auto command in HDR mode
DCT memory¶
Absolute Address: 0x800
Base Offset: 0x800
Size: 0x800
Offset |
Identifier |
Name |
|---|---|---|
0x0 |
DCT_MEMORY[128] |
— |
DCT_MEMORY register¶
Absolute Address: 0x800
Base Offset: 0x0
Size: 0x800
Array Dimensions: [128]
Array Stride: 0x10
Total Size: 0x800
Bits |
Identifier |
Access |
Reset |
Name |
|---|---|---|---|---|
31:0 |
PID_HI |
r |
— |
PID_HI |
47:32 |
PID_LO |
r |
— |
PID_LO |
71:64 |
DCR |
r |
— |
DCR |
79:72 |
BCR |
r |
— |
BCR |
103:96 |
DYNAMIC_ADDRESS |
r |
— |
DYNAMIC_ADDRESS |
PID_HI field¶
Device Provisional ID High
PID_LO field¶
Device Provisional ID Low
DCR field¶
Value of the I3C device's Device Characteristics Register
BCR field¶
Value of the I3C device's Bus Characteristics Register
DYNAMIC_ADDRESS field¶
Device I3C Dynamic Address after ENTDAA