πŸ“„ Source: chipsalliance/i3c-core/doc/source/registers.md @ v1p4-patches

Register descriptions

This chapter provides auto-generated register descriptions for the core.

I3CCSR address map

  • Absolute Address: 0x0
  • Base Offset: 0x0
  • Size: 0x1000
OffsetIdentifierName
0x000I3CBaseI3C Capability and Operational Registers
0x080PIOControlProgrammable I/O
0x100I3C_ECExtended Capabilities
0x400DATDevice Address Table
0x800DCTDevice Characteristic Table

I3CBase register file

  • Absolute Address: 0x0
  • Base Offset: 0x0
  • Size: 0x6C
OffsetIdentifierName
0x00HCI_VERSIONHCI Version
0x04HC_CONTROLControl
0x08CONTROLLER_DEVICE_ADDRDynamic address
0x0CHC_CAPABILITIESCapabilities
0x10RESET_CONTROLReset controls
0x14PRESENT_STATEActive controller
0x20INTR_STATUSStatus
0x24INTR_STATUS_ENABLEEnable status reporting
0x28INTR_SIGNAL_ENABLEEnable status interrupts
0x2CINTR_FORCEForce status and interrupt
0x30DAT_SECTION_OFFSETDAT section offset
0x34DCT_SECTION_OFFSETDCT section offset
0x38RING_HEADERS_SECTION_OFFSETRing section offset
0x3CPIO_SECTION_OFFSETPIO section offset
0x40EXT_CAPS_SECTION_OFFSETExtended capabilities section offset
0x4CINT_CTRL_CMDS_ENMIPI commands
0x58IBI_NOTIFY_CTRLI3C interrupts notification
0x5CIBI_DATA_ABORT_CTRLIBI data control
0x60DEV_CTX_BASE_LODevice context memory address lower 32 bits
0x64DEV_CTX_BASE_HIDevice context memory address higher 32 bits
0x68DEV_CTX_SGSG control

HCI_VERSION register

  • Absolute Address: 0x0
  • Base Offset: 0x0
  • Size: 0x4
BitsIdentifierAccessResetName
31:0VERSIONr0x120β€”

HC_CONTROL register

  • Absolute Address: 0x4
  • Base Offset: 0x4
  • Size: 0x4
BitsIdentifierAccessResetName
0IBA_INCLUDErw0x0IBA_INCLUDE
3AUTOCMD_DATA_RPTr0x0AUTOCMD_DATA_RPT
4DATA_BYTE_ORDER_MODEr0x0DATA_BYTE_ORDER_MODE
6MODE_SELECTORr0x1MODE_SELECTOR
7I2C_DEV_PRESENTrw0x0I2C_DEV_PRESENT
8HOT_JOIN_CTRLrw0x0HOT_JOIN_CTRL
12HALT_ON_CMD_SEQ_TIMEOUTrw0x0HALT_ON_CMD_SEQ_TIMEOUT
29ABORTrw0x0ABORT
30RESUMErw, woclr0x0RESUME
31BUS_ENABLErw0x0BUS_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
BitsIdentifierAccessResetName
22:16DYNAMIC_ADDRrw0x0DYNAMIC_ADDR
31DYNAMIC_ADDR_VALIDrw0x0DYNAMIC_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
BitsIdentifierAccessResetName
2COMBO_COMMANDr0x0COMBO_COMMAND
3AUTO_COMMANDr0x0AUTO_COMMAND
5STANDBY_CR_CAPr0x0STANDBY_CR_CAP
6HDR_DDR_ENr0x0HDR_DDR_EN
7HDR_TS_ENr0x0HDR_TS_EN
10CMD_CCC_DEFBYTEr0x1CMD_CCC_DEFBYTE
11IBI_DATA_ABORT_ENr0x0IBI_DATA_ABORT_EN
12IBI_CREDIT_COUNT_ENr0x0IBI_CREDIT_COUNT_EN
13SCHEDULED_COMMANDS_ENr0x0SCHEDULED_COMMANDS_EN
21:20CMD_SIZEr0x0CMD_SIZE
28SG_CAPABILITY_CR_ENr0x0SG_CAPABILITY_CR_EN
29SG_CAPABILITY_IBI_ENr0x0SG_CAPABILITY_IBI_EN
30SG_CAPABILITY_DC_ENr0x0SG_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
BitsIdentifierAccessResetName
0SOFT_RSTrw0x0SOFT_RST
1CMD_QUEUE_RSTrw0x0CMD_QUEUE_RST
2RESP_QUEUE_RSTrw0x0RESP_QUEUE_RST
3TX_FIFO_RSTrw0x0TX_FIFO_RST
4RX_FIFO_RSTrw0x0RX_FIFO_RST
5IBI_QUEUE_RSTrw0x0IBI_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
BitsIdentifierAccessResetName
2AC_CURRENT_OWNr0x0AC_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
BitsIdentifierAccessResetName
10HC_INTERNAL_ERR_STATrw, woclr0x0HC_INTERNAL_ERR_STAT
11HC_SEQ_CANCEL_STATrw, woclr0x0HC_SEQ_CANCEL_STAT
12HC_WARN_CMD_SEQ_STALL_STATrw, woclr0x0HC_WARN_CMD_SEQ_STALL_STAT
13HC_ERR_CMD_SEQ_TIMEOUT_STATrw, woclr0x0HC_ERR_CMD_SEQ_TIMEOUT_STAT
14SCHED_CMD_MISSED_TICK_STATrw, woclr0x0SCHED_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
BitsIdentifierAccessResetName
10HC_INTERNAL_ERR_STAT_ENrw0x0HC_INTERNAL_ERR_STAT_EN
11HC_SEQ_CANCEL_STAT_ENrw0x0HC_SEQ_CANCEL_STAT_EN
12HC_WARN_CMD_SEQ_STALL_STAT_ENrw0x0HC_WARN_CMD_SEQ_STALL_STAT_EN
13HC_ERR_CMD_SEQ_TIMEOUT_STAT_ENrw0x0HC_ERR_CMD_SEQ_TIMEOUT_STAT_EN
14SCHED_CMD_MISSED_TICK_STAT_ENrw0x0SCHED_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
BitsIdentifierAccessResetName
10HC_INTERNAL_ERR_SIGNAL_ENrw0x0HC_INTERNAL_ERR_SIGNAL_EN
11HC_SEQ_CANCEL_SIGNAL_ENrw0x0HC_SEQ_CANCEL_SIGNAL_EN
12HC_WARN_CMD_SEQ_STALL_SIGNAL_ENrw0x0HC_WARN_CMD_SEQ_STALL_SIGNAL_EN
13HC_ERR_CMD_SEQ_TIMEOUT_SIGNAL_ENrw0x0HC_ERR_CMD_SEQ_TIMEOUT_SIGNAL_EN
14SCHED_CMD_MISSED_TICK_SIGNAL_ENrw0x0SCHED_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
BitsIdentifierAccessResetName
10HC_INTERNAL_ERR_FORCEw0x0HC_INTERNAL_ERR_FORCE
11HC_SEQ_CANCEL_FORCEw0x0HC_SEQ_CANCEL_FORCE
12HC_WARN_CMD_SEQ_STALL_FORCEw0x0HC_WARN_CMD_SEQ_STALL_FORCE
13HC_ERR_CMD_SEQ_TIMEOUT_FORCEw0x0HC_ERR_CMD_SEQ_TIMEOUT_FORCE
14SCHED_CMD_MISSED_TICK_FORCEw0x0SCHED_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
BitsIdentifierAccessResetName
11:0TABLE_OFFSETr0x400TABLE_OFFSET
18:12TABLE_SIZEr0x7FTABLE_SIZE
31:28ENTRY_SIZEr0x0ENTRY_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
BitsIdentifierAccessResetName
11:0TABLE_OFFSETr0x800TABLE_OFFSET
18:12TABLE_SIZEr0x7FTABLE_SIZE
23:19TABLE_INDEXrw0x0TABLE_INDEX
31:28ENTRY_SIZEr0x0ENTRY_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
BitsIdentifierAccessResetName
15:0SECTION_OFFSETr0x0SECTION_OFFSET

SECTION_OFFSET field

DMA ring headers section offset. Invalid if 0.

PIO_SECTION_OFFSET register

  • Absolute Address: 0x3C
  • Base Offset: 0x3C
  • Size: 0x4
BitsIdentifierAccessResetName
15:0SECTION_OFFSETr0x80SECTION_OFFSET

SECTION_OFFSET field

PIO section offset. Invalid if 0.

EXT_CAPS_SECTION_OFFSET register

  • Absolute Address: 0x40
  • Base Offset: 0x40
  • Size: 0x4
BitsIdentifierAccessResetName
15:0SECTION_OFFSETr0x100SECTION_OFFSET

SECTION_OFFSET field

Extended Capabilities section offset. Invalid if 0.

INT_CTRL_CMDS_EN register

  • Absolute Address: 0x4C
  • Base Offset: 0x4C
  • Size: 0x4
BitsIdentifierAccessResetName
0ICC_SUPPORTr0x1ICC_SUPPORT
15:1MIPI_CMDS_SUPPORTEDr0x35MIPI_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
BitsIdentifierAccessResetName
0NOTIFY_HJ_REJECTEDrw0x0NOTIFY_HJ_REJECTED
1NOTIFY_CRR_REJECTEDrw0x0NOTIFY_CRR_REJECTED
3NOTIFY_IBI_REJECTEDrw0x0NOTIFY_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
BitsIdentifierAccessResetName
15:8MATCH_IBI_IDrw0x0MATCH_IBI_ID
17:16AFTER_N_CHUNKSrw0x0AFTER_N_CHUNKS
20:18MATCH_STATUS_TYPErw0x0MATCH_STATUS_TYPE
31IBI_DATA_ABORT_MONrw0x0IBI_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
BitsIdentifierAccessResetName
0BASE_LOrw0x0β€”

DEV_CTX_BASE_HI register

  • Absolute Address: 0x64
  • Base Offset: 0x64
  • Size: 0x4
BitsIdentifierAccessResetName
0BASE_HIrw0x0β€”

DEV_CTX_SG register

  • Absolute Address: 0x68
  • Base Offset: 0x68
  • Size: 0x4
BitsIdentifierAccessResetName
15:0LIST_SIZEr0x0LIST_SIZE
31BLPr0x0BLP

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
OffsetIdentifierName
0x00COMMAND_PORTCommand issue port
0x04RESPONSE_PORTCommand response port
0x08TX_DATA_PORTTransferred data access port
0x08RX_DATA_PORTReceived data access port
0x0CIBI_PORTIBI descriptor access port
0x10QUEUE_THLD_CTRLThe Queue Threshold Control register for the Command Queue, the Response Queue, and the IBI Queue
0x14DATA_BUFFER_THLD_CTRLRX/TX queue threshold control
0x18QUEUE_SIZEQueue sizes
0x1CALT_QUEUE_SIZEAlternate queue sizes
0x20PIO_INTR_STATUSPIO interrupt status
0x24PIO_INTR_STATUS_ENABLEβ€”
0x28PIO_INTR_SIGNAL_ENABLEInterrupt Signal Enable
0x2CPIO_INTR_FORCEPIO force interrupt status
0x30PIO_CONTROLPIO control

COMMAND_PORT register

  • Absolute Address: 0x80
  • Base Offset: 0x0
  • Size: 0x4
BitsIdentifierAccessResetName
31:0COMMAND_DATAwβ€”COMMAND_QUEUE_PORT

RESPONSE_PORT register

  • Absolute Address: 0x84
  • Base Offset: 0x4
  • Size: 0x4
BitsIdentifierAccessResetName
31:0RESPONSE_DATArβ€”RESPONSE_QUEUE_PORT

TX_DATA_PORT register

  • Absolute Address: 0x88
  • Base Offset: 0x8
  • Size: 0x4
BitsIdentifierAccessResetName
31:0TX_DATAwβ€”TX_DATA

RX_DATA_PORT register

  • Absolute Address: 0x88
  • Base Offset: 0x8
  • Size: 0x4
BitsIdentifierAccessResetName
31:0RX_DATArβ€”RX_DATA

IBI_PORT register

  • Absolute Address: 0x8C
  • Base Offset: 0xC
  • Size: 0x4
BitsIdentifierAccessResetName
31:0IBI_DATArβ€”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
BitsIdentifierAccessResetName
7:0CMD_EMPTY_BUF_THLDrw0x1CMD_EMPTY_BUF_THLD
15:8RESP_BUF_THLDrw0x1RESP_BUF_THLD
23:16IBI_DATA_SEGMENT_SIZErw0x1IBI_DATA_SEGMENT_SIZE
31:24IBI_STATUS_THLDrw0x1IBI_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
BitsIdentifierAccessResetName
2:0TX_BUF_THLDrw0x1TX_BUF_THLD
10:8RX_BUF_THLDrw0x1RX_BUF_THLD
18:16TX_START_THLDrw0x1TX_START_THLD
26:24RX_START_THLDrw0x1RX_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
BitsIdentifierAccessResetName
7:0CR_QUEUE_SIZEr0x40CR_QUEUE_SIZE
15:8IBI_STATUS_SIZEr0x40IBI_STATUS_SIZE
23:16RX_DATA_BUFFER_SIZEr0x5RX_DATA_BUFFER_SIZE
31:24TX_DATA_BUFFER_SIZEr0x5TX_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
BitsIdentifierAccessResetName
7:0ALT_RESP_QUEUE_SIZEr0x40ALT_RESP_QUEUE_SIZE
24ALT_RESP_QUEUE_ENr0x0ALT_RESP_QUEUE_EN
28EXT_IBI_QUEUE_ENr0x0EXT_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
BitsIdentifierAccessResetName
0TX_THLD_STATr0x0TX_THLD_STAT
1RX_THLD_STATr0x0RX_THLD_STAT
2IBI_STATUS_THLD_STATr0x0IBI_STATUS_THLD_STAT
3CMD_QUEUE_READY_STATr0x0CMD_QUEUE_READY_STAT
4RESP_READY_STATr0x0RESP_READY_STAT
5TRANSFER_ABORT_STATrw, woclr0x0TRANSFER_ABORT_STAT
9TRANSFER_ERR_STATrw, woclr0x0TRANSFER_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
BitsIdentifierAccessResetName
0TX_THLD_STAT_ENrw0x0TX_THLD_STAT_EN
1RX_THLD_STAT_ENrw0x0RX_THLD_STAT_EN
2IBI_STATUS_THLD_STAT_ENrw0x0IBI_STATUS_THLD_STAT_EN
3CMD_QUEUE_READY_STAT_ENrw0x0CMD_QUEUE_READY_STAT_EN
4RESP_READY_STAT_ENrw0x0RESP_READY_STAT_EN
5TRANSFER_ABORT_STAT_ENrw0x0TRANSFER_ABORT_STAT_EN
9TRANSFER_ERR_STAT_ENrw0x0TRANSFER_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
BitsIdentifierAccessResetName
0TX_THLD_SIGNAL_ENrw0x0TX_THLD_SIGNAL_EN
1RX_THLD_SIGNAL_ENrw0x0RX_THLD_SIGNAL_EN
2IBI_STATUS_THLD_SIGNAL_ENrw0x0IBI_STATUS_THLD_SIGNAL_EN
3CMD_QUEUE_READY_SIGNAL_ENrw0x0CMD_QUEUE_READY_SIGNAL_EN
4RESP_READY_SIGNAL_ENrw0x0RESP_READY_SIGNAL_EN
5TRANSFER_ABORT_SIGNAL_ENrw0x0TRANSFER_ABORT_SIGNAL_EN
9TRANSFER_ERR_SIGNAL_ENrw0x0TRANSFER_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
BitsIdentifierAccessResetName
0TX_THLD_FORCEw0x0TX_THLD_FORCE
1RX_THLD_FORCEw0x0RX_THLD_FORCE
2IBI_THLD_FORCEw0x0IBI_THLD_FORCE
3CMD_QUEUE_READY_FORCEw0x0CMD_QUEUE_READY_FORCE
4RESP_READY_FORCEw0x0RESP_READY_FORCE
5TRANSFER_ABORT_FORCEw0x0TRANSFER_ABORT_FORCE
9TRANSFER_ERR_FORCEw0x0TRANSFER_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
BitsIdentifierAccessResetName
0ENABLErw0x1ENABLE
1RSrw0x0RS
2ABORTrw0x0ABORT

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: 0x16C
OffsetIdentifierName
0x000SecFwRecoveryIfSecure Firmware Recovery Interface
0x080StdbyCtrlModeStandby Controller Mode
0x0C0TTITarget Transaction Interface
0x100SoCMgmtIfSoC Management Interface
0x160CtrlCfgController Config
0x168TERMINATION_EXTCAP_HEADERβ€”

SecFwRecoveryIf register file

  • Absolute Address: 0x100
  • Base Offset: 0x0
  • Size: 0x6C
OffsetIdentifierName
0x00EXTCAP_HEADERβ€”
0x04PROT_CAP_0Recovery Protocol Capabilities 0
0x08PROT_CAP_1Recovery Protocol Capabilities 1
0x0CPROT_CAP_2Recovery Protocol Capabilities 2
0x10PROT_CAP_3Recovery Protocol Capabilities 3
0x14DEVICE_ID_0Device Identification 0
0x18DEVICE_ID_1Device Identification 1
0x1CDEVICE_ID_2Device Identification 2
0x20DEVICE_ID_3Device Identification 3
0x24DEVICE_ID_4Device Identification 4
0x28DEVICE_ID_5Device Identification 5
0x2CDEVICE_ID_RESERVEDReserved
0x30DEVICE_STATUS_0Device status 0
0x34DEVICE_STATUS_1Device status 1
0x38DEVICE_RESETReset control
0x3CRECOVERY_CTRLRecovery configuration/control
0x40RECOVERY_STATUSRecovery status
0x44HW_STATUSHardware status
0x48INDIRECT_FIFO_CTRL_0Indirect FIFO Control 0
0x4CINDIRECT_FIFO_CTRL_1Indirect FIFO Control 1
0x50INDIRECT_FIFO_STATUS_0Indirect FIFO Status 0
0x54INDIRECT_FIFO_STATUS_1Indirect FIFO Status 1
0x58INDIRECT_FIFO_STATUS_2Indirect FIFO Status 2
0x5CINDIRECT_FIFO_STATUS_3Indirect FIFO Status 3
0x60INDIRECT_FIFO_STATUS_4Indirect FIFO Status 4
0x64INDIRECT_FIFO_RESERVEDINDIRECT_FIFO_RESERVED
0x68INDIRECT_FIFO_DATAINDIRECT_FIFO_DATA

EXTCAP_HEADER register

  • Absolute Address: 0x100
  • Base Offset: 0x0
  • Size: 0x4
BitsIdentifierAccessResetName
7:0CAP_IDr0xC0CAP_ID
23:8CAP_LENGTHr0x20CAP_LENGTH

CAP_ID field

Extended Capability ID

CAP_LENGTH field

Capability Structure Length in DWORDs

PROT_CAP_0 register

  • Absolute Address: 0x104
  • Base Offset: 0x4
  • Size: 0x4
BitsIdentifierAccessResetName
31:0REC_MAGIC_STRING_0r0x2050434FRecovery protocol magic string

REC_MAGIC_STRING_0 field

Magic string 'OCP ' (1st part of 'OCP RECV') in ASCII code - '0x4f 0x43 0x50 0x20'

PROT_CAP_1 register

  • Absolute Address: 0x108
  • Base Offset: 0x8
  • Size: 0x4
BitsIdentifierAccessResetName
31:0REC_MAGIC_STRING_1r0x56434552Recovery protocol magic string

REC_MAGIC_STRING_1 field

Magic string 'RECV' (2nd part of 'OCP RECV') in ASCII code - '0x52 0x45 0x43 0x56'

PROT_CAP_2 register

  • Absolute Address: 0x10C
  • Base Offset: 0xC
  • Size: 0x4
BitsIdentifierAccessResetName
15:0REC_PROT_VERSIONrw0x0Recovery protocol version
31:16AGENT_CAPSrw0x0Recovery protocol capabilities

REC_PROT_VERSION field

  • Byte 0: Major version number = 0x1

  • Byte 1: Minor version number = 0x1

AGENT_CAPS field

Agent capabilities:

  • bit 0: Identification (DEVICE_ID structure)

  • bit 1: Forced Recovery (From RESET)

  • bit 2: Mgmt reset (From RESET)

  • bit 3: Device Reset (From RESET)

  • bit 4: Device status (DEVICE_STATUS)

  • bit 5: Recovery memory access (INDIRECT_CTRL)

  • bit 6: Local C-image support

  • bit 7: Push C-image support

  • bit 8: Interface isolation

  • bit 9: Hardware status

  • bit 10: Vendor command

  • bit 11: Flashless boot (From RESET)

  • bit 12: FIFO CMS support (INDIRECT_FIFO_CTRL)

  • bits 13-15: Reserved

PROT_CAP_3 register

  • Absolute Address: 0x110
  • Base Offset: 0x10
  • Size: 0x4
BitsIdentifierAccessResetName
7:0NUM_OF_CMS_REGIONSrw0x0Total number of CMS regions
15:8MAX_RESP_TIMErw0x0Maximum Response Time
23:16HEARTBEAT_PERIODrw0x0Heartbeat Period

NUM_OF_CMS_REGIONS field

0-255: The total number of component memory space (CMS) regions a device supports. This number includes any logging, code and vendor defined regions

MAX_RESP_TIME field

0-255: Maximum response time in 2^x microseconds(us).

HEARTBEAT_PERIOD field

0-255: Heartbeat period, 2^x microseconds (us), 0 indicates not supported

DEVICE_ID_0 register

  • Absolute Address: 0x114
  • Base Offset: 0x14
  • Size: 0x4
BitsIdentifierAccessResetName
7:0DESC_TYPErw0x0Initial descriptor type
15:8VENDOR_SPECIFIC_STR_LENGTHrw0x0Vendor Specific String Length
31:16DATArw0x0

DESC_TYPE field

Based on table 8 from [DMTF PLDM FM]:

  • 0x00: PCI Vendor

  • 0x1: IANA

  • 0x2: UUID

  • 0x3: PnP Vendor

  • 0x4: ACPI Vendor

  • 0x5: IANA Enterprise Type

  • 0x6-0xFE: Reserved

  • 0xFF: NVMe-MI

VENDOR_SPECIFIC_STR_LENGTH field

0x0-0xFF: Total length of Vendor Specific String, 0 indicates not supported

DATA field

DEVICE_ID_1 register

  • Absolute Address: 0x118
  • Base Offset: 0x18
  • Size: 0x4
BitsIdentifierAccessResetName
31:0DATArw0x0

DATA field

DEVICE_ID_2 register

  • Absolute Address: 0x11C
  • Base Offset: 0x1C
  • Size: 0x4
BitsIdentifierAccessResetName
31:0DATArw0x0

DATA field

DEVICE_ID_3 register

  • Absolute Address: 0x120
  • Base Offset: 0x20
  • Size: 0x4
BitsIdentifierAccessResetName
31:0DATArw0x0

DATA field

DEVICE_ID_4 register

  • Absolute Address: 0x124
  • Base Offset: 0x24
  • Size: 0x4
BitsIdentifierAccessResetName
31:0DATArw0x0

DATA field

DEVICE_ID_5 register

  • Absolute Address: 0x128
  • Base Offset: 0x28
  • Size: 0x4
BitsIdentifierAccessResetName
31:0DATArw0x0

DATA field

DEVICE_ID_RESERVED register

  • Absolute Address: 0x12C
  • Base Offset: 0x2C
  • Size: 0x4
BitsIdentifierAccessResetName
31:0DATAr0x0

DATA field

DEVICE_STATUS_0 register

  • Absolute Address: 0x130
  • Base Offset: 0x30
  • Size: 0x4
BitsIdentifierAccessResetName
7:0DEV_STATUSrw0x0Device status
15:8PROT_ERRORrw, rclr0x0Protocol Error
31:16REC_REASON_CODErw0x0Recovery Reason Codes

DEV_STATUS field

  • 0x0: Status Pending (Recover Reason Code not populated)

  • 0x1: Device healthy (Recover Reason Code not populated)

  • 0x2: Device Error (β€œsoft” error or other error state) - (Recover Reason Code not populated)

  • 0x3: Recovery mode - ready to accept recovery image - (Recover Reason Code populated)

  • 0x4: Recovery Pending (waiting for activation) - (Recover Reason Code populated)

  • 0x5: Running Recovery Image ( Recover Reason Code not populated)

  • 0x6-0xD: Reserved

  • 0xE: Boot Failure (Recover Reason Code populated)

  • 0xF: Fatal Error (Recover Reason Code not populated)

  • 0x10-FF:Reserved

PROT_ERROR field

  • 0x0: No Protocol Error

  • 0x1: Unsupported/Write Command - command is not support or a write to a RO command

  • 0x2: Unsupported Parameter

  • 0x3: Length write error (length of write command is incorrect)

  • 0x4: CRC Error (if supported)

  • 0x5-0xFE: Reserved

  • 0xFF: General Protocol Error - catch all unclassified errors

REC_REASON_CODE field

  • 0x0: No Boot Failure detected (BFNF)

  • 0x1: Generic hardware error (BFGHWE)

  • 0x2: Generic hardware soft error (BFGSE) - soft error may be recoverable

  • 0x3: Self-test failure (BFSTF) (e.g., RSA self test failure, FIPs self test failure,, etc.)

  • 0x4: Corrupted/missing critical data (BFCD)

  • 0x5: Missing/corrupt key manifest (BFKMMC)

  • 0x6: Authentication Failure on key manifest (BFKMAF)

  • 0x7: Anti-rollback failure on key manifest (BFKIAR)

  • 0x8: Missing/corrupt boot loader (first mutable code) firmware image (BFFIMC)

  • 0x9: Authentication failure on boot loader ( 1st mutable code) firmware image (BFFIAF)

  • 0xA: Anti-rollback failure boot loader (1st mutable code) firmware image (BFFIAR)

  • 0xB: Missing/corrupt main/management firmware image (BFMFMC)

  • 0xC: Authentication Failure main/management firmware image (BFMFAF)

  • 0xD: Anti-rollback Failure main/management firmware image (BFMFAR)

  • 0xE: Missing/corrupt recovery firmware (BFRFMC)

  • 0xF: Authentication Failure recovery firmware (BFRFAF)

  • 0x10: Anti-rollback Failure on recovery firmware (BFRFAR)

  • 0x11: Forced Recovery (FR)

  • 0x12: Flashless/Streaming Boot (FSB)

  • 0x13-0x7F: Reserved

  • 0x80-0xFF: Vendor Unique Boot Failure Codes

DEVICE_STATUS_1 register

  • Absolute Address: 0x134
  • Base Offset: 0x34
  • Size: 0x4
BitsIdentifierAccessResetName
15:0HEARTBEATrw0x0Heartbeat
24:16VENDOR_STATUS_LENGTHrw0x0Vendor Status Length
31:25VENDOR_STATUSrw0x0Vendor defined status message

HEARTBEAT field

0-4095: Incrementing number (counter wraps)

VENDOR_STATUS_LENGTH field

0-248: Length in bytes of just VENDOR_STATUS. Zero indicates no vendor status and zero additional bytes.

DEVICE_RESET register

  • Absolute Address: 0x138
  • Base Offset: 0x38
  • Size: 0x4

For devices which support reset, this register will reset the device or management entity

BitsIdentifierAccessResetName
7:0RESET_CTRLrw, woclr0x0Device Reset Control
15:8FORCED_RECOVERYrw0x0Forced Recovery
23:16IF_CTRLrw0x0Interface Control

RESET_CTRL field

  • 0x0: No reset

  • 0x1: Reset Device (PCIe Fundamental Reset or equivalent. This is likely bus disruptive)

  • 0x2: Reset Management. This reset will reset the management subsystem. If supported, this reset MUST not be bus disruptive (cause re-enumeration)

  • 0x3-FF: Reserved

FORCED_RECOVERY field

  • 0x0: No forced recovery

  • 0x01-0xD: Reserved

  • 0xE: Enter flashless boot mode on next platform reset

  • 0xF: Enter recovery mode on next platform reset

  • 0x10-FF: Reserved

IF_CTRL field

  • 0x0: Disable Interface mastering

  • 0x1: Enable Interface mastering

RECOVERY_CTRL register

  • Absolute Address: 0x13C
  • Base Offset: 0x3C
  • Size: 0x4
BitsIdentifierAccessResetName
7:0CMSrw0x0Component Memory Space (CMS)
15:8REC_IMG_SELrw0x0Recovery Image Selection
23:16ACTIVATE_REC_IMGrw, woclr0x0Activate Recovery Image

CMS field

  • 0-255: Selects a component memory space where the recovery image is. 0 is the default

REC_IMG_SEL field

  • 0x0: No operation

  • 0x1: Use Recovery Image from memory window (CMS)

  • 0x2: Use Recovery Image stored on device (C-image)

  • 0x3-FF: reserved

ACTIVATE_REC_IMG field

  • 0x0: do not activate recovery image - after activation device will report this code.

  • 0xF: Activate recovery image

  • 0x10-FF-reserved

RECOVERY_STATUS register

  • Absolute Address: 0x140
  • Base Offset: 0x40
  • Size: 0x4
BitsIdentifierAccessResetName
3:0DEV_REC_STATUSrw0x0Device recovery status
7:4REC_IMG_INDEXrw0x0Recovery image index
15:8VENDOR_SPECIFIC_STATUSrw0x0Vendor specific status

DEV_REC_STATUS field

  • 0x0: Not in recovery mode

  • 0x1: Awaiting recovery image

  • 0x2: Booting recovery image

  • 0x3: Recovery successful

  • 0xc: Recovery failed

  • 0xd: Recovery image authentication error

  • 0xe: Error entering Recovery mode (might be administratively disabled)

  • 0xf: Invalid component address space

HW_STATUS register

  • Absolute Address: 0x144
  • Base Offset: 0x44
  • Size: 0x4
BitsIdentifierAccessResetName
0TEMP_CRITICALrw0x0Device temperature critical
1SOFT_ERRrw0x0Hardware Soft Error
2FATAL_ERRrw0x0Hardware Fatal Error
7:3RESERVED_7_3rw0x0Reserved
15:8VENDOR_HW_STATUSrw0x0Vendor HW Status (bit mask active high)
23:16CTEMPrw0x0Composite temperature (CTemp)
31:24VENDOR_HW_STATUS_LENrw0x0Vendor Specific Hardware Status length (bytes)

TEMP_CRITICAL field

Device temperature is critical (may need reset to clear)

SOFT_ERR field

Hardware Soft Error (may need reset to clear)

CTEMP field

Current temperatureof device in degrees Celsius: Compatible with NVMe-MI command code 0 offset 3.

  • 0x00-0x7e: 0 to 126 C

  • 0x7f: 127 C or higher

  • 0x80: no temperature data, or data is older than 5 seconds

  • 0x81: temperature sensor failure

  • 0x82-0x83: reserved

  • 0xc4: -60 C or lower

  • 0xc5-0xff: -59 to -1 C (in two's complement)

VENDOR_HW_STATUS_LEN field

0-251: Length in bytes of Vendor Specific Hardware Status.

INDIRECT_FIFO_CTRL_0 register

  • Absolute Address: 0x148
  • Base Offset: 0x48
  • Size: 0x4
BitsIdentifierAccessResetName
7:0CMSrw0x0Indirect FIFO memory access configuration.
15:8RESETrw0x0Indirect memory configuration - reset

CMS field

This register selects a region within the device. Read/write access is through address spaces. Each space represents a FIFO. Component Memory Space (CMS):

  • 0-255: Address region within a device.

RESET field

Reset (Write 1 Clear):

  • 0x0: idle

  • 0x1: reset Write Index and Read Index to initial value.

  • 0x2 to 0xFF: reserved

INDIRECT_FIFO_CTRL_1 register

  • Absolute Address: 0x14C
  • Base Offset: 0x4C
  • Size: 0x4
BitsIdentifierAccessResetName
31:0IMAGE_SIZErw0x0Indirect memory configuration - Image Size

IMAGE_SIZE field

Image Size: Size of the image to be loaded in 4B units

INDIRECT_FIFO_STATUS_0 register

  • Absolute Address: 0x150
  • Base Offset: 0x50
  • Size: 0x4
BitsIdentifierAccessResetName
0EMPTYr0x1FIFO Empty
1FULLr0x0FIFO Full
10:8REGION_TYPEr0x0Memory Region Type

EMPTY field

If set, FIFO is empty

FULL field

If set, FIFO is full

REGION_TYPE field

Memory Region Type:

  • 0b000: Code space for recovery. (write only)

  • 0b001: Log uses the defined debug format (read only)

  • 0b100: Vendor Defined Region (write only)

  • 0b101: Vendor Defined Region (read only)

  • 0b111: Unsupported Region (address space out of range)

INDIRECT_FIFO_STATUS_1 register

  • Absolute Address: 0x154
  • Base Offset: 0x54
  • Size: 0x4
BitsIdentifierAccessResetName
31:0WRITE_INDEXr0x0FIFO Write Index

WRITE_INDEX field

Offset incremented for each access by the Recovery Agent in 4B units

INDIRECT_FIFO_STATUS_2 register

  • Absolute Address: 0x158
  • Base Offset: 0x58
  • Size: 0x4
BitsIdentifierAccessResetName
31:0READ_INDEXr0x0FIFO Read Index

READ_INDEX field

Offset incremented for each access by the device in 4B units

INDIRECT_FIFO_STATUS_3 register

  • Absolute Address: 0x15C
  • Base Offset: 0x5C
  • Size: 0x4
BitsIdentifierAccessResetName
31:0FIFO_SIZEr0x40Indirect FIFO size

FIFO_SIZE field

Size of memory window specified in 4B units. Current implementation supports only a constant size of 64.

INDIRECT_FIFO_STATUS_4 register

  • Absolute Address: 0x160
  • Base Offset: 0x60
  • Size: 0x4
BitsIdentifierAccessResetName
31:0MAX_TRANSFER_SIZEr0x40Max transfer size

MAX_TRANSFER_SIZE field

Max size of the data payload in each read/write to INDIRECT_FIFO_DATA in 4B units

Enforced to 256 bytes (64 DWORDs) by Caliptra Subsystem Recovery Sequence

INDIRECT_FIFO_RESERVED register

  • Absolute Address: 0x164
  • Base Offset: 0x64
  • Size: 0x4
BitsIdentifierAccessResetName
31:0DATAr0x0Reserved register

INDIRECT_FIFO_DATA register

  • Absolute Address: 0x168
  • Base Offset: 0x68
  • Size: 0x4

Indirect memory access to address space configured in INDIRECT_FIFO_CTRL at the Head Pointer offset.

BitsIdentifierAccessResetName
31:0DATAr0x0β€”

StdbyCtrlMode register file

  • Absolute Address: 0x180
  • Base Offset: 0x80
  • Size: 0x40
OffsetIdentifierName
0x00EXTCAP_HEADERβ€”
0x04STBY_CR_CONTROLStandby Controller Control
0x08STBY_CR_DEVICE_ADDRStandby Controller Device Address
0x0CSTBY_CR_CAPABILITIESStandby Controller Capabilities
0x10STBY_CR_VIRTUAL_DEVICE_CHARStandby Controller Virtual Device Characteristics
0x14STBY_CR_STATUSStandby Controller Status
0x18STBY_CR_DEVICE_CHARStandby Controller Device Characteristics
0x1CSTBY_CR_DEVICE_PID_LOStandby Controller Device PID Low
0x20STBY_CR_INTR_STATUSStandby Controller Interrupt Status
0x24STBY_CR_VIRTUAL_DEVICE_PID_LOStandby Controller Virtual Device PID Low
0x28STBY_CR_INTR_SIGNAL_ENABLEStandby Controller Interrupt Signal Enable
0x2CSTBY_CR_INTR_FORCEStandby Controller Interrupt Force
0x30STBY_CR_CCC_CONFIG_GETCAPSStandby Controller CCC Configuration GETCAPS
0x34STBY_CR_CCC_CONFIG_RSTACT_PARAMSStandby Controller CCC Configuration RSTACT
0x38STBY_CR_VIRT_DEVICE_ADDRStandby Virtual Controller Device Address
0x3C__rsvd_3Reserved 3

EXTCAP_HEADER register

  • Absolute Address: 0x180
  • Base Offset: 0x0
  • Size: 0x4
BitsIdentifierAccessResetName
7:0CAP_IDr0x12CAP_ID
23:8CAP_LENGTHr0x10CAP_LENGTH

CAP_ID field

Extended Capability ID

CAP_LENGTH field

Capability Structure Length in DWORDs

STBY_CR_CONTROL register

  • Absolute Address: 0x184
  • Base Offset: 0x4
  • Size: 0x4
BitsIdentifierAccessResetName
0PENDING_RX_NACKrwβ€”Pending RX NACK
1HANDOFF_DELAY_NACKrwβ€”Handoff Delay NACK
2ACR_FSM_OP_SELECTrwβ€”Active Controller Select
3PRIME_ACCEPT_GETACCCRrwβ€”Prime to Accept Controller Role
4HANDOFF_DEEP_SLEEPrw, wset0x0Handoff Deep Sleep
5CR_REQUEST_SENDw0x0Send Controller Role Request
10:8BAST_CCC_IBI_RINGrw0x0Ring Bundle IBI Selector for Broadcast CCC Capture
12TARGET_XACT_ENABLErw0x1Target Transaction Interface Servicing Enable
13DAA_SETAASA_ENABLErw0x0Dynamic Address Method Enable SETAASA
14DAA_SETDASA_ENABLErw0x0Dynamic Address Method Enable SETDASA
15DAA_ENTDAA_ENABLErw0x0Dynamic Address Method Enable ENTDAA
20RSTACT_DEFBYTE_02rw0x0RSTACT Support DefByte 0x02
31:30STBY_CR_ENABLE_INITrw0x0Host 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: 0x188
  • Base Offset: 0x8
  • Size: 0x4
BitsIdentifierAccessResetName
6:0STATIC_ADDRrw0x0Device Static Address
15STATIC_ADDR_VALIDrw0x0Static Address is Valid
22:16DYNAMIC_ADDRrw0x0Device Dynamic Address
31DYNAMIC_ADDR_VALIDrw0x0Dynamic 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: 0x18C
  • Base Offset: 0xC
  • Size: 0x4
BitsIdentifierAccessResetName
5SIMPLE_CRR_SUPPORTr0x0SIMPLE_CRR_SUPPORT
12TARGET_XACT_SUPPORTr0x1TARGET_XACT_SUPPORT
13DAA_SETAASA_SUPPORTr0x1DAA_SETAASA_SUPPORT
14DAA_SETDASA_SUPPORTr0x1DAA_SETDASA_SUPPORT
15DAA_ENTDAA_SUPPORTr0x0DAA_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: 0x190
  • Base Offset: 0x10
  • Size: 0x4
BitsIdentifierAccessResetName
15:1PID_HIrw0x7FFFPID_HI
23:16DCRrw0xBDDCR
28:24BCR_VARrw0x16BCR_VAR
31:29BCR_FIXEDrw0x1BCR_FIXED

PID_HI field

High part of the 48-bit Target Device Provisioned ID.

DCR field

Device Characteristics Register. Value represents an OCP Recovery Device.

BCR_VAR field

Bus Characteristics, Variable Part.

Reset value is set to 5'b10110, because this device:

  • [bit4] is a Virtual Target

  • [bit3] is not Offline Capable

  • [bit2] uses the MDB in the IBI Payload

  • [bit1] is capable of IBI requests

  • [bit0] has no speed limitation

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

STBY_CR_STATUS register

  • Absolute Address: 0x194
  • Base Offset: 0x14
  • Size: 0x4
BitsIdentifierAccessResetName
2AC_CURRENT_OWNrwβ€”AC_CURRENT_OWN
7:5SIMPLE_CRR_STATUSrwβ€”SIMPLE_CRR_STATUS
8HJ_REQ_STATUSrwβ€”HJ_REQ_STATUS

AC_CURRENT_OWN field

SIMPLE_CRR_STATUS field

HJ_REQ_STATUS field

STBY_CR_DEVICE_CHAR register

  • Absolute Address: 0x198
  • Base Offset: 0x18
  • Size: 0x4
BitsIdentifierAccessResetName
15:1PID_HIrw0x7FFFPID_HI
23:16DCRrw0xBDDCR
28:24BCR_VARrw0x6BCR_VAR
31:29BCR_FIXEDrw0x1BCR_FIXED

PID_HI field

High part of the 48-bit Target Device Provisioned ID.

DCR field

Device Characteristics Register. Value represents an OCP Recovery Device.

BCR_VAR field

Bus Characteristics, Variable Part.

Reset value is set to 5'b00110, because this device:

  • [bit4] is not a Virtual Target

  • [bit3] is not Offline Capable

  • [bit2] uses the MDB in the IBI Payload

  • [bit1] is capable of IBI requests

  • [bit0] has no speed limitation

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

STBY_CR_DEVICE_PID_LO register

  • Absolute Address: 0x19C
  • Base Offset: 0x1C
  • Size: 0x4
BitsIdentifierAccessResetName
31:0PID_LOrw0x5A00A5PID_LO

PID_LO field

Low part of the 48-bit Target Device Provisioned ID.

STBY_CR_INTR_STATUS register

  • Absolute Address: 0x1A0
  • Base Offset: 0x20
  • Size: 0x4
BitsIdentifierAccessResetName
0ACR_HANDOFF_OK_REMAIN_STATrwβ€”
1ACR_HANDOFF_OK_PRIMED_STATrwβ€”
2ACR_HANDOFF_ERR_FAIL_STATrwβ€”
3ACR_HANDOFF_ERR_M3_STATrwβ€”
10CRR_RESPONSE_STATrwβ€”
11STBY_CR_DYN_ADDR_STATrwβ€”
12STBY_CR_ACCEPT_NACKED_STATrwβ€”
13STBY_CR_ACCEPT_OK_STATrwβ€”
14STBY_CR_ACCEPT_ERR_STATrwβ€”
16STBY_CR_OP_RSTACT_STATrw0x0Secondary Controller Operation Reset Action
17CCC_PARAM_MODIFIED_STATrwβ€”
18CCC_UNHANDLED_NACK_STATrwβ€”
19CCC_FATAL_RSTDAA_ERR_STATrwβ€”

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: 0x1A4
  • Base Offset: 0x24
  • Size: 0x4
BitsIdentifierAccessResetName
31:0PID_LOrw0x5A10A5PID_LO

PID_LO field

Low part of the 48-bit Target Virtual Device Provisioned ID.

STBY_CR_INTR_SIGNAL_ENABLE register

  • Absolute Address: 0x1A8
  • 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.

BitsIdentifierAccessResetName
0ACR_HANDOFF_OK_REMAIN_SIGNAL_ENrwβ€”
1ACR_HANDOFF_OK_PRIMED_SIGNAL_ENrwβ€”
2ACR_HANDOFF_ERR_FAIL_SIGNAL_ENrwβ€”
3ACR_HANDOFF_ERR_M3_SIGNAL_ENrwβ€”
10CRR_RESPONSE_SIGNAL_ENrwβ€”
11STBY_CR_DYN_ADDR_SIGNAL_ENrwβ€”
12STBY_CR_ACCEPT_NACKED_SIGNAL_ENrwβ€”
13STBY_CR_ACCEPT_OK_SIGNAL_ENrwβ€”
14STBY_CR_ACCEPT_ERR_SIGNAL_ENrwβ€”
16STBY_CR_OP_RSTACT_SIGNAL_ENrw0x0
17CCC_PARAM_MODIFIED_SIGNAL_ENrwβ€”
18CCC_UNHANDLED_NACK_SIGNAL_ENrwβ€”
19CCC_FATAL_RSTDAA_ERR_SIGNAL_ENrwβ€”

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: 0x1AC
  • 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

BitsIdentifierAccessResetName
10CRR_RESPONSE_FORCErwβ€”
11STBY_CR_DYN_ADDR_FORCErwβ€”
12STBY_CR_ACCEPT_NACKED_FORCErwβ€”
13STBY_CR_ACCEPT_OK_FORCErwβ€”
14STBY_CR_ACCEPT_ERR_FORCErwβ€”
16STBY_CR_OP_RSTACT_FORCEwβ€”
17CCC_PARAM_MODIFIED_FORCErwβ€”
18CCC_UNHANDLED_NACK_FORCErwβ€”
19CCC_FATAL_RSTDAA_ERR_FORCErwβ€”

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: 0x1B0
  • Base Offset: 0x30
  • Size: 0x4
BitsIdentifierAccessResetName
2:0F2_CRCAP1_BUS_CONFIGrwβ€”
11:8F2_CRCAP2_DEV_INTERACTrwβ€”

F2_CRCAP1_BUS_CONFIG field

F2_CRCAP2_DEV_INTERACT field

STBY_CR_CCC_CONFIG_RSTACT_PARAMS register

  • Absolute Address: 0x1B4
  • Base Offset: 0x34
  • Size: 0x4
BitsIdentifierAccessResetName
7:0RST_ACTIONr0x0Defining Byte of the RSTACT CCC
15:8RESET_TIME_PERIPHERALrw0x0Time to Reset Peripheral
23:16RESET_TIME_TARGETrw0x0Time to Reset Target
31RESET_DYNAMIC_ADDRrw0x1Reset Dynamic Address after Target Reset

RST_ACTION field

Contains the Defining Byte received with the last Direct SET CCC sent by the Active Controller.

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: 0x1B8
  • Base Offset: 0x38
  • Size: 0x4
BitsIdentifierAccessResetName
6:0VIRT_STATIC_ADDRrw0x0Device Static Address
15VIRT_STATIC_ADDR_VALIDrw0x0Virtual Device Static Address is Valid
22:16VIRT_DYNAMIC_ADDRrw0x0Virtual Device Dynamic Address
31VIRT_DYNAMIC_ADDR_VALIDrw0x0Virtual 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

__rsvd_3 register

  • Absolute Address: 0x1BC
  • Base Offset: 0x3C
  • Size: 0x4
BitsIdentifierAccessResetName
31:0__rsvdrwβ€”Reserved

__rsvd field

TTI register file

  • Absolute Address: 0x1C0
  • Base Offset: 0xC0
  • Size: 0x40
OffsetIdentifierName
0x00EXTCAP_HEADERβ€”
0x04CONTROLTTI Control
0x08STATUSTTI Status
0x0CRESET_CONTROLTTI Queue Reset Control
0x10INTERRUPT_STATUSTTI Interrupt Status
0x14INTERRUPT_ENABLETTI Interrupt Enable
0x18INTERRUPT_FORCETTI Interrupt Force
0x1CRX_DESC_QUEUE_PORTTTI RX Descriptor Queue Port
0x20RX_DATA_PORTTTI RX Data Port
0x24TX_DESC_QUEUE_PORTTTI TX Descriptor Queue Port
0x28TX_DATA_PORTTTI TX Data Port
0x2CIBI_PORTTTI IBI Data Port
0x30QUEUE_SIZETTI Queue Size
0x34IBI_QUEUE_SIZETTI IBI Queue Size
0x38QUEUE_THLD_CTRLTTI Queue Threshold Control
0x3CDATA_BUFFER_THLD_CTRLTTI IBI Queue Threshold Control

EXTCAP_HEADER register

  • Absolute Address: 0x1C0
  • Base Offset: 0x0
  • Size: 0x4
BitsIdentifierAccessResetName
7:0CAP_IDr0xC4CAP_ID
23:8CAP_LENGTHr0x10CAP_LENGTH

CAP_ID field

Extended Capability ID

CAP_LENGTH field

Capability Structure Length in DWORDs

CONTROL register

  • Absolute Address: 0x1C4
  • Base Offset: 0x4
  • Size: 0x4

Control Register

BitsIdentifierAccessResetName
10HJ_ENrw0x1HJ_EN
11CRR_ENrw0x0CRR_EN
12IBI_ENrw0x1IBI_EN
15:13IBI_RETRY_NUMrw0x0IBI_RETRY_NUM

HJ_EN field

Enable Hot-Join capability.

Values:

0x0 - Device is allowed to attempt Hot-Join.

0x1 - Device is not allowed to attempt Hot-Join.

CRR_EN field

Enable Controller Role Request.

Values:

0x0 - Device is allowed to perform Controller Role Request.

0x1 - Device is not allowed to perform Controller Role Request.

IBI_EN field

Enable the IBI queue servicing.

Values:

0x0 - Device will not service the IBI queue.

0x1 - Device will send IBI requests onto the bus, if possible.

IBI_RETRY_NUM field

Number of times the Target Device will try to request an IBI before giving up.

Values:

0x0 - Device will never retry.

0x1-0x6 - Device will retry this many times.

0x7 - Device will retry indefinitely until the Active Controller sets DISINT bit in the DISEC command.

STATUS register

  • Absolute Address: 0x1C8
  • Base Offset: 0x8
  • Size: 0x4

Status Register

BitsIdentifierAccessResetName
13PROTOCOL_ERRORr0x0PROTOCOL_ERROR
15:14LAST_IBI_STATUSr0x0LAST_IBI_STATUS

PROTOCOL_ERROR field

Protocol error occurred in the past. This field can only be reset by the Controller, if it issues the GETSTATUS CCC.

Values:

0 - no error occurred

1 - generic protocol error occurred in the past. It will be set until reception of the next GETSTATUS command.

LAST_IBI_STATUS field

Status of last IBI. Should be read after IBI_DONE interrupt.

Values:

00 - Success: IBI was transmitted and ACK'd by the Active Controller. 01 - Failure: Active Controller NACK'd the IBI before any data was sent. The Target Device will retry sending the IBI once. 10 - Failure: Active Controller NACK'd the IBI after partial data was sent. Part of data in the IBI queue is considered corrupted and will be discarded. 11 - Failure: IBI was terminated after 1 retry.

RESET_CONTROL register

  • Absolute Address: 0x1CC
  • Base Offset: 0xC
  • Size: 0x4

Queue Reset Control

BitsIdentifierAccessResetName
0SOFT_RSTrw0x0SOFT_RST
1TX_DESC_RSTrw0x0TX_DESC_RST
2RX_DESC_RSTrw0x0RX_DESC_RST
3TX_DATA_RSTrw0x0TX_DATA_RST
4RX_DATA_RSTrw0x0RX_DATA_RST
5IBI_QUEUE_RSTrw0x0IBI_QUEUE_RST

SOFT_RST field

Target Core Software Reset

TX_DESC_RST field

TTI TX Descriptor Queue Buffer Software Reset

RX_DESC_RST field

TTI RX Descriptor Queue Buffer Software Reset

TX_DATA_RST field

TTI TX Data Queue Buffer Software Reset

RX_DATA_RST field

TTI RX Data Queue Buffer Software Reset

IBI_QUEUE_RST field

TTI IBI Queue Buffer Software Reset

INTERRUPT_STATUS register

  • Absolute Address: 0x1D0
  • Base Offset: 0x10
  • Size: 0x4

Interrupt Status

BitsIdentifierAccessResetName
0RX_DESC_STATrw, woclr0x0RX_DESC_STAT
1TX_DESC_STATrw, woclr0x0TX_DESC_STAT
2RX_DESC_TIMEOUTrw, woclr0x0RX_DESC_TIMEOUT
3TX_DESC_TIMEOUTrw, woclr0x0TX_DESC_TIMEOUT
8TX_DATA_THLD_STATrw, woclr0x0TX_DATA_THLD_STAT
9RX_DATA_THLD_STATrw, woclr0x0RX_DATA_THLD_STAT
10TX_DESC_THLD_STATrw, woclr0x0TX_DESC_THLD_STAT
11RX_DESC_THLD_STATrw, woclr0x0RX_DESC_THLD_STAT
12IBI_THLD_STATrw, woclr0x0IBI_THLD_STAT
13IBI_DONErw, woclr0x0IBI_DONE
18:15PENDING_INTERRUPTrw0x0PENDING_INTERRUPT
25TRANSFER_ABORT_STATrw, woclr0x0TRANSFER_ABORT_STAT
26TX_DESC_COMPLETErw, woclr0x0TX_DESC_COMPLETE
31TRANSFER_ERR_STATrw, woclr0x0TRANSFER_ERR_STAT

RX_DESC_STAT field

There is a pending Write Transaction. Software should read data from the RX Descriptor Queue and the RX Data Queue

TX_DESC_STAT field

There is a pending Read Transaction on the I3C Bus. Software should write data to the TX Descriptor Queue and the TX Data Queue

RX_DESC_TIMEOUT field

Pending Write was NACK’ed, because the RX_DESC_STAT event was not handled in time

TX_DESC_TIMEOUT field

Pending Read was NACK’ed, because the TX_DESC_STAT event was not handled in time

TX_DATA_THLD_STAT field

TTI TX Data Buffer Threshold Status, the Target Controller shall set this bit to 1 when the number of available entries in the TTI TX Data Queue is >= the value defined in TTI_TX_DATA_THLD

RX_DATA_THLD_STAT field

TTI RX Data Buffer Threshold Status, the Target Controller shall set this bit to 1 when the number of entries in the TTI RX Data Queue is >= the value defined in TTI_RX_DATA_THLD

TX_DESC_THLD_STAT field

TTI TX Descriptor Buffer Threshold Status, the Target Controller shall set this bit to 1 when the number of available entries in the TTI TX Descriptor Queue is >= the value defined in TTI_TX_DESC_THLD

RX_DESC_THLD_STAT field

TTI RX Descriptor Buffer Threshold Status, the Target Controller shall set this bit to 1 when the number of available entries in the TTI RX Descriptor Queue is >= the value defined in TTI_RX_DESC_THLD

IBI_THLD_STAT field

TTI IBI Buffer Threshold Status, the Target Controller shall set this bit to 1 when the number of available entries in the TTI IBI Queue is >= the value defined in TTI_IBI_THLD

IBI_DONE field

IBI is done, check LAST_IBI_STATUS for result.

PENDING_INTERRUPT field

Contains the interrupt number of any pending interrupt, or 0 if no interrupts are pending. This encoding allows for up to 15 numbered interrupts. If more than one interrupt is set, then the highest priority interrupt shall be returned.

TRANSFER_ABORT_STAT field

Bus aborted transaction

TX_DESC_COMPLETE field

Read Transaction on the I3C Bus completede

TRANSFER_ERR_STAT field

Bus error occurred

INTERRUPT_ENABLE register

  • Absolute Address: 0x1D4
  • Base Offset: 0x14
  • Size: 0x4

Interrupt Enable

BitsIdentifierAccessResetName
0RX_DESC_STAT_ENrw0x0RX_DESC_STAT_EN
1TX_DESC_STAT_ENrw0x0TX_DESC_STAT_EN
2RX_DESC_TIMEOUT_ENrw0x0RX_DESC_TIMEOUT_EN
3TX_DESC_TIMEOUT_ENrw0x0TX_DESC_TIMEOUT_EN
8TX_DATA_THLD_STAT_ENrw0x0TX_DATA_THLD_STAT_EN
9RX_DATA_THLD_STAT_ENrw0x0RX_DATA_THLD_STAT_EN
10TX_DESC_THLD_STAT_ENrw0x0TX_DESC_THLD_STAT_EN
11RX_DESC_THLD_STAT_ENrw0x0RX_DESC_THLD_STAT_EN
12IBI_THLD_STAT_ENrw0x0IBI_THLD_STAT_EN
13IBI_DONE_ENrw0x0IBI_DONE_EN
25TRANSFER_ABORT_STAT_ENrw0x0TRANSFER_ABORT_STAT_EN
26TX_DESC_COMPLETE_ENrw0x0TX_DESC_COMPLETE_EN
31TRANSFER_ERR_STAT_ENrw0x0TRANSFER_ERR_STAT_EN

RX_DESC_STAT_EN field

Enables the corresponding interrupt bit RX_DESC_STAT_EN

TX_DESC_STAT_EN field

Enables the corresponding interrupt bit TX_DESC_STAT_EN

RX_DESC_TIMEOUT_EN field

Enables the corresponding interrupt bit RX_DESC_TIMEOUT_EN

TX_DESC_TIMEOUT_EN field

Enables the corresponding interrupt bit TX_DESC_TIMEOUT_EN

TX_DATA_THLD_STAT_EN field

Enables the corresponding interrupt bit TTI_TX_DATA_THLD_STAT

RX_DATA_THLD_STAT_EN field

Enables the corresponding interrupt bit TTI_RX_DATA_THLD_STAT

TX_DESC_THLD_STAT_EN field

Enables the corresponding interrupt bit TTI_TX_DESC_THLD_STAT

RX_DESC_THLD_STAT_EN field

Enables the corresponding interrupt bit TTI_RX_DESC_THLD_STAT

IBI_THLD_STAT_EN field

Enables the corresponding interrupt bit TTI_IBI_THLD_STAT

IBI_DONE_EN field

Enables the corresponding interrupt bit IBI_DONE

TRANSFER_ABORT_STAT_EN field

Enables the corresponding interrupt bit TRANSFER_ABORT_STAT

TX_DESC_COMPLETE_EN field

Enables the corresponding interrupt bit TX_DESC_COMPLETE_EN

TRANSFER_ERR_STAT_EN field

Enables the corresponding interrupt bit TRANSFER_ERR_STAT

INTERRUPT_FORCE register

  • Absolute Address: 0x1D8
  • Base Offset: 0x18
  • Size: 0x4

Interrupt Force

BitsIdentifierAccessResetName
0RX_DESC_STAT_FORCErw0x0RX_DESC_STAT_FORCE
1TX_DESC_STAT_FORCErw0x0TX_DESC_STAT_FORCE
2RX_DESC_TIMEOUT_FORCErw0x0RX_DESC_TIMEOUT_FORCE
3TX_DESC_TIMEOUT_FORCErw0x0TX_DESC_TIMEOUT_FORCE
8TX_DATA_THLD_FORCErw0x0TX_DATA_THLD_FORCE
9RX_DATA_THLD_FORCErw0x0RX_DATA_THLD_FORCE
10TX_DESC_THLD_FORCErw0x0TX_DESC_THLD_FORCE
11RX_DESC_THLD_FORCErw0x0RX_DESC_THLD_FORCE
12IBI_THLD_FORCErw0x0IBI_THLD_FORCE
13IBI_DONE_FORCErw0x0IBI_DONE_FORCE
25TRANSFER_ABORT_STAT_FORCErw0x0TRANSFER_ABORT_STAT_FORCE
26TX_DESC_COMPLETE_FORCErw0x0TX_DESC_COMPLETE_FORCE
31TRANSFER_ERR_STAT_FORCErw0x0TRANSFER_ERR_STAT_FORCE

RX_DESC_STAT_FORCE field

Enables the corresponding interrupt bit RX_DESC_STAT_FORCE

TX_DESC_STAT_FORCE field

Enables the corresponding interrupt bit TX_DESC_STAT_FORCE

RX_DESC_TIMEOUT_FORCE field

Enables the corresponding interrupt bit RX_DESC_TIMEOUT_FORCE

TX_DESC_TIMEOUT_FORCE field

Enables the corresponding interrupt bit TX_DESC_TIMEOUT_FORCE

TX_DATA_THLD_FORCE field

Forces the corresponding interrupt bit TTI_TX_DATA_THLD_STAT to be set to 1

RX_DATA_THLD_FORCE field

Forces the corresponding interrupt bit TTI_RX_DATA_THLD_STAT to be set to 1

TX_DESC_THLD_FORCE field

Forces the corresponding interrupt bit TTI_TX_DESC_THLD_STAT to be set to 1

RX_DESC_THLD_FORCE field

Forces the corresponding interrupt bit TTI_RX_DESC_THLD_STAT to be set to 1

IBI_THLD_FORCE field

Forces the corresponding interrupt bit TTI_IBI_THLD_STAT to be set to 1

IBI_DONE_FORCE field

Enables the corresponding interrupt bit IBI_DONE_FORCE

TRANSFER_ABORT_STAT_FORCE field

Enables the corresponding interrupt bit TRANSFER_ABORT_STAT_FORCE

TX_DESC_COMPLETE_FORCE field

Enables the corresponding interrupt bit TX_DESC_COMPLETE_FORCE

TRANSFER_ERR_STAT_FORCE field

Enables the corresponding interrupt bit TRANSFER_ERR_STAT_FORCE

RX_DESC_QUEUE_PORT register

  • Absolute Address: 0x1DC
  • Base Offset: 0x1C
  • Size: 0x4

RX Descriptor Queue Port

BitsIdentifierAccessResetName
31:0RX_DESCr0x0RX_DESC

RX_DESC field

RX Data

RX_DATA_PORT register

  • Absolute Address: 0x1E0
  • Base Offset: 0x20
  • Size: 0x4

RX Data Port

BitsIdentifierAccessResetName
31:0RX_DATAr0x0RX_DATA

RX_DATA field

RX Data

TX_DESC_QUEUE_PORT register

  • Absolute Address: 0x1E4
  • Base Offset: 0x24
  • Size: 0x4

TX Descriptor Queue Port

BitsIdentifierAccessResetName
31:0TX_DESCw0x0TX_DESC

TX_DESC field

TX Data

TX_DATA_PORT register

  • Absolute Address: 0x1E8
  • Base Offset: 0x28
  • Size: 0x4

TX Data Port

BitsIdentifierAccessResetName
31:0TX_DATAw0x0TX_DATA

TX_DATA field

TX Data

IBI_PORT register

  • Absolute Address: 0x1EC
  • Base Offset: 0x2C
  • Size: 0x4

IBI Data Port

BitsIdentifierAccessResetName
31:0IBI_DATAw0x0IBI_DATA

IBI_DATA field

IBI Data

QUEUE_SIZE register

  • Absolute Address: 0x1F0
  • Base Offset: 0x30
  • Size: 0x4

Queue Size

BitsIdentifierAccessResetName
7:0RX_DESC_BUFFER_SIZEr0x5RX_DESC_BUFFER_SIZE
15:8TX_DESC_BUFFER_SIZEr0x5TX_DESC_BUFFER_SIZE
23:16RX_DATA_BUFFER_SIZEr0x5RX_DATA_BUFFER_SIZE
31:24TX_DATA_BUFFER_SIZEr0x5TX_DATA_BUFFER_SIZE

RX_DESC_BUFFER_SIZE field

RX Descriptor Buffer Size in DWORDs calculated as 2^(N+1)

TX_DESC_BUFFER_SIZE field

TX Descriptor Buffer Size in DWORDs calculated as 2^(N+1)

RX_DATA_BUFFER_SIZE field

Receive Data Buffer Size in DWORDs calculated as 2^(N+1)

TX_DATA_BUFFER_SIZE field

Transmit Data Buffer Size in DWORDs calculated as 2^(N+1)

IBI_QUEUE_SIZE register

  • Absolute Address: 0x1F4
  • Base Offset: 0x34
  • Size: 0x4

IBI Queue Size

BitsIdentifierAccessResetName
7:0IBI_QUEUE_SIZEr0x5IBI_QUEUE_SIZE

IBI_QUEUE_SIZE field

IBI Queue Size in DWORDs calculated as 2^(N+1)

QUEUE_THLD_CTRL register

  • Absolute Address: 0x1F8
  • Base Offset: 0x38
  • Size: 0x4

Queue Threshold Control

BitsIdentifierAccessResetName
7:0TX_DESC_THLDrw0x1TX_DESC_THLD
15:8RX_DESC_THLDrw0x1RX_DESC_THLD
31:24IBI_THLDrw0x1IBI_THLD

TX_DESC_THLD field

Controls the minimum number of empty TTI TX Descriptor Queue entries needed to trigger the TTI TX Descriptor interrupt.

RX_DESC_THLD field

Controls the minimum number of TTI RX Descriptor Queue entries needed to trigger the TTI RX Descriptor interrupt.

IBI_THLD field

Controls the minimum number of IBI Queue entries needed to trigger the IBI threshold interrupt.

DATA_BUFFER_THLD_CTRL register

  • Absolute Address: 0x1FC
  • Base Offset: 0x3C
  • Size: 0x4

IBI Queue Threshold Control

BitsIdentifierAccessResetName
2:0TX_DATA_THLDrw0x1TX_DATA_THLD
10:8RX_DATA_THLDrw0x1RX_DATA_THLD
18:16TX_START_THLDrw0x1TX_DATA_THLD
26:24RX_START_THLDrw0x1RX_DATA_THLD

TX_DATA_THLD field

Minimum number of available TTI TX Data queue entries, in DWORDs, that will trigger the TTI TX Data interrupt. Interrupt triggers when 2^(N+1) TX Buffer DWORD entries are available.

RX_DATA_THLD field

Minimum number of TTI RX Data queue entries of data received, in DWORDs, that will trigger the TTI RX Data interrupt. Interrupt triggers when 2^(N+1) RX Buffer DWORD entries are received during the Read transfer.

TX_START_THLD field

Minimum number of available TTI TX Data queue entries, in DWORDs, that will trigger the TTI TX Data interrupt. Interrupt triggers when 2^(N+1) TX Buffer DWORD entries are available.

RX_START_THLD field

Minimum number of TTI RX Data queue entries of data received, in DWORDs, that will trigger the TTI RX Data interrupt. Interrupt triggers when 2^(N+1) RX Buffer DWORD entries are received during the Read transfer.

SoCMgmtIf register file

  • Absolute Address: 0x200
  • Base Offset: 0x100
  • Size: 0x5C
OffsetIdentifierName
0x00EXTCAP_HEADERβ€”
0x04SOC_MGMT_CONTROLSoC Management Control
0x08SOC_MGMT_STATUSSoC Management Status
0x0CREC_INTF_CFGConfiguration of Recovery Interface
0x10REC_INTF_REG_W1C_ACCESSMock hardware register access
0x14SOC_MGMT_RSVD_2
0x18SOC_MGMT_RSVD_3
0x1CSOC_PAD_CONFI3C Pad Configuration Register
0x20SOC_PAD_ATTRI3C Pad Attribute Configuration Register
0x24SOC_MGMT_FEATURE_2
0x28SOC_MGMT_FEATURE_3
0x2CT_R_REG
0x30T_F_REG
0x34T_SU_DAT_REG
0x38T_HD_DAT_REG
0x3CT_HIGH_REG
0x40T_LOW_REG
0x44T_HD_STA_REG
0x48T_SU_STA_REG
0x4CT_SU_STO_REG
0x50T_FREE_REG
0x54T_AVAL_REG
0x58T_IDLE_REG

EXTCAP_HEADER register

  • Absolute Address: 0x200
  • Base Offset: 0x0
  • Size: 0x4
BitsIdentifierAccessResetName
7:0CAP_IDr0xC1CAP_ID
23:8CAP_LENGTHr0x18CAP_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
BitsIdentifierAccessResetName
31:0PLACEHOLDERrw0x0

PLACEHOLDER field

SOC_MGMT_STATUS register

  • Absolute Address: 0x208
  • Base Offset: 0x8
  • Size: 0x4
BitsIdentifierAccessResetName
31:0PLACEHOLDERrw0x0

PLACEHOLDER field

REC_INTF_CFG register

  • Absolute Address: 0x20C
  • Base Offset: 0xC
  • Size: 0x4
BitsIdentifierAccessResetName
0REC_INTF_BYPASSrw0x0Recovery Interface access type
1REC_PAYLOAD_DONErw0x0Recovery 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
BitsIdentifierAccessResetName
7:0DEVICE_RESET_CTRLrw0x0HW Device Reset Control
15:8RECOVERY_CTRL_ACTIVATE_REC_IMGrw0x0HW Activate Recovery Image
23:16INDIRECT_FIFO_CTRL_RESETrw0x0HW 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
BitsIdentifierAccessResetName
31:0PLACEHOLDERrw0x0

PLACEHOLDER field

SOC_MGMT_RSVD_3 register

  • Absolute Address: 0x218
  • Base Offset: 0x18
  • Size: 0x4
BitsIdentifierAccessResetName
31:0PLACEHOLDERrw0x0

PLACEHOLDER field

SOC_PAD_CONF register

  • Absolute Address: 0x21C
  • Base Offset: 0x1C
  • Size: 0x4
BitsIdentifierAccessResetName
0INPUT_ENABLErw0x1Enable Input
1SCHMITT_ENrw0x0Schmitt Trigger Enable
2KEEPER_ENrw0x0High-Keeper Enable
3PULL_DIRrw0x0Pull Direction
4PULL_ENrw0x0Pull Enable
5IO_INVERSIONrw0x0IO INVERSION
6OD_ENrw0x0Open-Drain Enable
7VIRTUAL_OD_ENrw0x0Virtual Open Drain Enable
31:24PAD_TYPErw0x1Pad 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
BitsIdentifierAccessResetName
15:8DRIVE_SLEW_RATErw0xFDriver Slew Rate
31:24DRIVE_STRENGTHrw0xFDriver 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
BitsIdentifierAccessResetName
31:0PLACEHOLDERrw0x0

PLACEHOLDER field

Reserved for: I/O ring and pad configuration

SOC_MGMT_FEATURE_3 register

  • Absolute Address: 0x228
  • Base Offset: 0x28
  • Size: 0x4
BitsIdentifierAccessResetName
31:0PLACEHOLDERrw0x0

PLACEHOLDER field

Reserved for: I/O ring and pad configuration

T_R_REG register

  • Absolute Address: 0x22C
  • Base Offset: 0x2C
  • Size: 0x4
BitsIdentifierAccessResetName
19:0T_Rrw0x0

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
BitsIdentifierAccessResetName
19:0T_Frw0x0

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
BitsIdentifierAccessResetName
19:0T_SU_DATrw0x0

T_SU_DAT field

Data setup time in clock units

T_HD_DAT_REG register

  • Absolute Address: 0x238
  • Base Offset: 0x38
  • Size: 0x4
BitsIdentifierAccessResetName
19:0T_HD_DATrw0x0

T_HD_DAT field

Data hold time in clock units

T_HIGH_REG register

  • Absolute Address: 0x23C
  • Base Offset: 0x3C
  • Size: 0x4
BitsIdentifierAccessResetName
19:0T_HIGHrw0x0High period of the SCL in clock units

T_HIGH field

T_LOW_REG register

  • Absolute Address: 0x240
  • Base Offset: 0x40
  • Size: 0x4
BitsIdentifierAccessResetName
19:0T_LOWrw0x0

T_LOW field

Low period of the SCL in clock units

T_HD_STA_REG register

  • Absolute Address: 0x244
  • Base Offset: 0x44
  • Size: 0x4
BitsIdentifierAccessResetName
19:0T_HD_STArw0x0

T_HD_STA field

Hold time for (repeated) START in clock units

T_SU_STA_REG register

  • Absolute Address: 0x248
  • Base Offset: 0x48
  • Size: 0x4
BitsIdentifierAccessResetName
19:0T_SU_STArw0x0

T_SU_STA field

Setup time for repeated START in clock units

T_SU_STO_REG register

  • Absolute Address: 0x24C
  • Base Offset: 0x4C
  • Size: 0x4
BitsIdentifierAccessResetName
19:0T_SU_STOrw0x0

T_SU_STO field

Setup time for STOP in clock units

T_FREE_REG register

  • Absolute Address: 0x250
  • Base Offset: 0x50
  • Size: 0x4
BitsIdentifierAccessResetName
31:0T_FREErw0xC

T_FREE field

T_AVAL_REG register

  • Absolute Address: 0x254
  • Base Offset: 0x54
  • Size: 0x4
BitsIdentifierAccessResetName
31:0T_AVALrw0x12C

T_AVAL field

T_IDLE_REG register

  • Absolute Address: 0x258
  • Base Offset: 0x58
  • Size: 0x4
BitsIdentifierAccessResetName
31:0T_IDLErw0xEA60

T_IDLE field

CtrlCfg register file

  • Absolute Address: 0x260
  • Base Offset: 0x160
  • Size: 0x8
OffsetIdentifierName
0x0EXTCAP_HEADERβ€”
0x4CONTROLLER_CONFIGController Config

EXTCAP_HEADER register

  • Absolute Address: 0x260
  • Base Offset: 0x0
  • Size: 0x4
BitsIdentifierAccessResetName
7:0CAP_IDr0x2CAP_ID
23:8CAP_LENGTHr0x2CAP_LENGTH

CAP_ID field

Extended Capability ID

CAP_LENGTH field

Capability Structure Length in DWORDs

CONTROLLER_CONFIG register

  • Absolute Address: 0x264
  • Base Offset: 0x4
  • Size: 0x4
BitsIdentifierAccessResetName
5:4OPERATION_MODEr0x1Operation Mode

OPERATION_MODE field

TERMINATION_EXTCAP_HEADER register

  • Absolute Address: 0x268
  • Base Offset: 0x168
  • Size: 0x4

Register after the last EC must advertise ID == 0. Termination register is added to guarantee that the discovery mechanism reaches termination value.

BitsIdentifierAccessResetName
7:0CAP_IDr0x0CAP_ID
23:8CAP_LENGTHr0x1CAP_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
OffsetIdentifierName
0x0DAT_MEMORY[128]β€”

DAT_MEMORY register

  • Absolute Address: 0x400
  • Base Offset: 0x0
  • Size: 0x400
  • Array Dimensions: [128]
  • Array Stride: 0x8
  • Total Size: 0x400
BitsIdentifierAccessResetName
6:0STATIC_ADDRESSrwβ€”STATIC_ADDRESS
12IBI_PAYLOADrwβ€”IBI_PAYLOAD
13IBI_REJECTrwβ€”IBI_REJECT
14CRR_REJECTrwβ€”CRR_REJECT
15TSrwβ€”TS
23:16DYNAMIC_ADDRESSrwβ€”DYNAMIC_ADDRESS
28:26RING_IDrwβ€”RING_ID
30:29DEV_NACK_RETRY_CNTrwβ€”DEV_NACK_RETRY_CNT
31DEVICErwβ€”DEVICE
39:32AUTOCMD_MASKrwβ€”AUTOCMD_MASK
47:40AUTOCMD_VALUErwβ€”AUTOCMD_VALUE
50:48AUTOCMD_MODErwβ€”AUTOCMD_MODE
58:51AUTOCMD_HDR_CODErwβ€”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
OffsetIdentifierName
0x0DCT_MEMORY[128]β€”

DCT_MEMORY register

  • Absolute Address: 0x800
  • Base Offset: 0x0
  • Size: 0x800
  • Array Dimensions: [128]
  • Array Stride: 0x10
  • Total Size: 0x800
BitsIdentifierAccessResetName
31:0PID_HIrβ€”PID_HI
47:32PID_LOrβ€”PID_LO
71:64DCRrβ€”DCR
79:72BCRrβ€”BCR
103:96DYNAMIC_ADDRESSrβ€”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