Register descriptions

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

I3CCSR address map

  • Absolute Address: 0x0
  • Base Offset: 0x0
  • Size: 0x26C
OffsetIdentifierName
0x100I3C_ECExtended Capabilities

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