Visible to Intel only — GUID: nzf1685720041168
Ixiasoft
- 4.1.2. s0_axi4_clock_out for Agilex 5 E-Series External Memory Interfaces (EMIF) IP - DDR4 Component
- 4.2.2. s0_axi4_clock_out for Agilex 5 E-Series External Memory Interfaces (EMIF) IP - DDR5 Component
Visible to Intel only — GUID: nzf1685720041168
Ixiasoft
13.1.2. Mailbox Command Definitions
Bit | Name | Description | Access | Reset |
---|---|---|---|---|
[31:29] | CMD_TARGET_IP_TYPE | Indicates the type of IP, as follows:
|
Read-Write | 0x0 |
[28:24] | CMD_TARGET_IP_INSTANCE_ID | IP identifier. | Read-Write | 0x00 |
[23:16] | CMD_TYPE | The type of command that the user wants the firmware to perform. | Read-Write | 0x00 |
[15:0] | CMD_OPCODE | The opcode of the command that the user wants the firmware to perform. | Read-Write | 0x00 |
CMD_TYPE | Value | Description |
---|---|---|
CMD_NOP | 0x00 | No operation command. |
CMD_TRIG_CONTROLLER_OP | 0x04 | Triggering memory controller-related operations. |
CMD_TRIG_MEM_CAL_OP | 0x05 | Triggering calibration events. |
Multi-channel/Lockstep Configurations | CMD_TARGET_IP_TYPE | |||
---|---|---|---|---|
1 – Primary MC, Primary IO96B | 2 – Secondary MC, Primary IO96B | 3 – Primary MC, Secondary IO96B | 4 – Secondary MC, Secondary IO96B | |
LPDDR4/5 2CHx16 | CH1 | CH2 | ||
LPDDR4/5 4CHx16 | CH1 | CH2 | CH3 | CH4 |
DDR5 2CHx16 | CH1 | CH2 | ||
DDR5 2CHx32 | CH1 | CH2 | ||
DDR5 x40 lockstep | CH1 | * | ||
DDR4 x40 lockstep | CH1 | * | ||
DDR4 x64, x72 lockstep | CH1 | * | * | * |
Note: * These controllers are used but have no (or limited) mailbox features due to limited lockstep capabilities.
|
CMD_REQ | Description |
---|---|
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = ECC_ENABLE_SET |
Command to enable different ECC modes for the memory interface specified using the instance ID. ECC mode can be changed only if the design was generated with ECC enabled. [Inputs] CMD_PARAM_0 [1:0]: ECC_ENABLE Set the current ECC error reporting (single-bit and double-bit errors) and correcting (single-bit errors) that is enabled. ’b00 = ECC is disabled. Data is written to the memory without ECC values, and data is returned to the user interface without being verified for accuracy. ’b01 = ECC is enabled, but without detection or correction. ’b10 = ECC is enabled with detection, but correction is not supported. When an error is found on a read operation, ECC reporting parameters are updated for read commands. Erroneous data is returned to the user on read commands and written to the memory on write commands. ’b11 = ECC is enabled with detection and correction. When an error is found on a read operation, the ECC reporting parameters are updated for read commands. Single bit errors are corrected automatically by the controller in both read and write commands. [Outputs] [Errors] CMD_RESPONSE_STATUS - STATUS_CMD_RESPONSE_ERROR: 000 - No errors 001 - ECC was not enabled during design generation. [Outputs] N/A |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = ECC_INTERRUPT_MASK |
Command to set mask for ECC interrupts for the memory interface specified using the instance ID, in order to disable specific ECC interrupts. [Inputs] CMD_PARAM_0 [13:0]: ECC_INTERRUPT_MASK If any bit is set to ’b1 in this parameter, the corresponding interrupt does NOT trigger an interrupt on the top-level EMIF interrupt signal.
Bit [13] = A RMW Read Link ECC double-bit error has been detected Bit [12] = A Read Link ECC double-bit error has been detected. Bit [11] = A Read Link ECC single-bit error has been detected. Bit [10] = A Write Link ECC double-bit error has been detected by the periodic MRR to MR43. Bit [9] = A Write Link ECC single-bit error has been detected by the periodic MRR to MR43. Bit [8] = An ECC correctable error has been detected in a scrubbing read operation Bit [7] = The triggered scrub operation has completed. Bit [6] = One or more ECC writeback commands could not be executed. Bit [3] = Another un-correctable ECC event has been detected on a read operation, prior to the initial event being acknowledged. Bit [2] = An un-correctable ECC event has been detected on a read operation. Bit [1] = Another correctable ECC event has been detected on a read operation, prior to the initial event being acknowledged. Bit [0] = A correctable ECC event has been detected on a read operation
[Outputs] N/A |
CMD_REQ column is: CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = ECC_WRITEBACK_ENABLE |
Command to set automatic writing of corrected errors on read operation for the memory interface specified using the instance ID CMD_PARAM_0 [0:0]: ECC_WRITEBACK_EN Enables automatic writing of corrected data on single bit correctable errors on read operations. This parameter is only relevant if ECC is enabled with detection and correction (ECC_ENABLE = ’b11). Note: No writebacks will be issued during BIST. ’b0 = Disable. ’b1 = Enable [Outputs] N/A [Command-Specific Errors] ‘b000 – No errors ‘b001 – ECC detection and correction not enabled |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = ECC_SCRUB_MODE_0_START |
Command to start ECC scrub in mode 0 where scrub is performed at regular intervals for the memory interface specified using the instance ID. Automatic writing of corrected data should be enabled using the ECC_WRITEBACK_EN command before initiating scrub operations. [Inputs] CMD_PARAM_0 [15:0]: ECC_SCRUB_INTERVAL Sets the minimum interval between two ECC scrubbing commands, in number of controller clock cycles. The controller clock is based on the Controller’s operating frequency. Clearing this parameter to 0x0000 disables interval operation.
CMD_PARAM_1 [11:0]: ECC_SCRUB_LEN Defines the length (in bytes) of the ECC scrubbing read command that the controller issues. This value must be an integer multiple of the memory burst length, and the lowest 3 bits of this parameter must be cleared to ’b0. The burst lengths for different protocols are: DDR4 - 8 DDR5/LPDDR4/LPDDR5 - 16
CMD_PARAM_2 [0:0]: ECC_SCRUB_FULL_MEM Defines whether to perform ECC scrub on full memory or on the specified address range. ‘b0 – ECC scrub performed on address range specified using ECC_SCRUB_START_ADDR and ECC_SCRUB_END_ADDR ‘b1 – ECC scrub performed on full memory address range
CMD_PARAM_3 [31:0]: ECC_SCRUB_START_ADDR [31:0] CMD_PARAM_4 [5:0]: ECC_SCRUB_START_ADDR [36:32] Defines the starting address from where scrubbing operations begin. This value must be less than or equal to the value programmed into the ECC_SCRUB_END_ADDR parameter. Only used when ECC_SCRUB_FULL_MEM is ‘b0. CMD_PARAM_5 [31:0]: ECC_SCRUB_END_ADDR [31:0] CMD_PARAM_6 [5:0]: ECC_SCRUB_END_ADDR [36:32] Defines the ending address at which scrubbing operations wrap around to the start address. This parameter must be programmed to a non-zero value for the scrubbing logic to operate. Only used when ECC_SCRUB_FULL_MEM is ‘b0.
[Outputs] CMD_RESPONSE_DATA_SHORT [0:0]: ECC_SCRUB_INITIATED ‘b1 – ECC scrub initiated successfully ‘b0 – ECC scrub initiation failed
[Command-Specific Errors] ‘b000 – No errors ‘b001 – ECC not enabled |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = ECC_SCRUB_MODE_1_START |
Command to start ECC scrub in mode 1 where scrub is performed when the controller is idle for the memory interface specified using the instance ID. Automatic writing of corrected data should be enabled using the ECC_WRITEBACK_EN command before initiating scrub operations.
[Inputs] CMD_PARAM_0 [15:0]: ECC_SCRUB_IDLE_CNT Defines the number of controller clock cycles that the scrubbing engine waits in the Controller’s idle state before starting scrubbing operations. The Controller is considered idle when the command queue is empty. When this condition is detected, an internal counter loads with the value programmed in this parameter and count down on each controller clock. When the counter expires, either the scrubbing operation begins or the next address is tested. The controller clock is based on the Controller’s operating frequency. Clearing this parameter to 0x0000 disables idle operation.
CMD_PARAM_1 [11:0]: ECC_SCRUB_LEN Defines the length (in bytes) of the ECC scrubbing read command that the controller issues. This value must be an integer multiple of the memory burst length, and the lowest 3 bits of this parameter must be cleared to ’b0. The burst lengths for different protocols are: DDR4 - 8 DDR5/LPDDR4/LPDDR5 - 16
CMD_PARAM_2 [0:0]: ECC_SCRUB_FULL_MEM Defines whether to perform ECC scrub on full memory or on the specified address range. ‘b0 – ECC scrub performed on address range specified using ECC_SCRUB_START_ADDR and ECC_SCRUB_END_ADDR ‘b1 – ECC scrub performed on full memory address range
CMD_PARAM_3 [31:0]: ECC_SCRUB_START_ADDR [31:0] CMD_PARAM_4 [5:0]: ECC_SCRUB_START_ADDR [36:32] Defines the starting address from where scrubbing operations begin. This value must be less than or equal to the value programmed into the ECC_SCRUB_END_ADDR parameter. Only used when ECC_SCRUB_FULL_MEM is ‘b0.
CMD_PARAM_5 [31:0]: ECC_SCRUB_END_ADDR [31:0] CMD_PARAM_6 [5:0]: ECC_SCRUB_END_ADDR [36:32] Defines the ending address at which scrubbing operations wrap around to the start address. This parameter must be programmed to a non-zero value for the scrubbing logic to operate. Only used when ECC_SCRUB_FULL_MEM is ‘b0.
[Outputs] CMD_RESPONSE_DATA_SHORT [0:0]: ECC_SCRUB_INITIATED ‘b1 – ECC scrub initiated successfully ‘b0 – ECC scrub initiation failed
[Command-Specific Errors] ‘b000 – No errors ‘b001 – ECC not enabled |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = ECC_INJECT_ERROR |
Command to force a specific check code to be written into memory interface specified using the instance ID for diagnostic purposes or for flagging a particular memory address as erroneous for future accesses. The procedure is as follows:
[Inputs] CMD_PARAM_0 [31:0]: ECC_XOR_CHECK_BITS The check bits generated by the next write operation will be XOR’ed with this parameter. The result will be written into memory as the new check value. ECC_XOR_CHECK_BITS [31:24] maps to user word [255:192] ECC_XOR_CHECK_BITS [23:16] maps to user word [191:128] ECC_XOR_CHECK_BITS [15:8] maps to user word [127:64] ECC_XOR_CHECK_BITS [7:0] maps to user word [63:0] [Outputs] N/A [Command-Specific Errors] ‘b000 – No errors ‘b001 – ECC detection not enabled |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <UNUSED> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <UNUSED> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = ECC_CLEAR_ERR_BUFFER |
Command to clear the ECC error buffer and reset the ECC error counter and overflow registers. [Inputs] N/A [Outputs] N/A |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = BIST_STANDARD_MODE_START |
Command to initiate Original MOVI1 3N BIST algorithm for data checking for the memory interface specified using the instance ID. Use BIST_STATUS_INTF0/ BIST_STATUS_INTF1 registers to get the status of the operation. BIST operations are supported only for designs with DBI disabled.
[Inputs] CMD_PARAM_0 [5:0]: BIST_ADDR_SPACE [5:0] Used in BIST data checking to define the address space in bytes from 0 to 2addr_space that the BIST logic will check. As an example, if the addr_space parameter was programmed to 0x1c, then the BIST logic would check 228 bytes = 256 MBytes. Only used if BIST_FULL_MEM is ‘b0. A BIST test must cover a minimum of 2 bursts. Therefore, the user must program this parameter to a value such that the start address and end address of the BIST test will encompass a minimum of 2 bursts. The burst length for different protocols are: DDR4 - 8 DDR5/LPDDR4/LPDDR5 – 16
CMD_PARAM_0 [6:6]: BIST_FULL_MEM Defines whether to perform BIST on full memory or on the specified address range. ‘b0 – BIST performed on address range specified using BIST_START_ADDR and BIST_ADDR_SPACE ‘b1 – BIST performed on full memory address range
CMD_PARAM_1 [31:0]: BIST_START_ADDR [31:0] CMD_PARAM_2 [5:0]: BIST_START_ADDR [36:32] Used in BIST data checking and memory initialization programming to define the starting address for BIST checking in bytes. Only used if BIST_FULL_MEM is ‘b0.
[Outputs] CMD_RESPONSE_DATA_SHORT [0:0]: BIST_INITIATED ‘b1 – BIST initiated successfully ‘b0 – BIST initiation failed
[Command-Specific Errors] ‘b00 – No errors ‘b01 – A previous command’s saved state not restored. |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = BIST_MEM_INIT_START |
Command to initiate memory initialization BIST for the memory interface specified using the instance ID. Memory initialization programming allows a selectable range of memory to be initialized with a programmable data value. Use MEM_INIT_STATUS_INTF0/ MEM_INIT_STATUS_INTF1 registers to get the status of the operation. If in-line ECC is enabled and you want to complete memory initialization on the entire memory, then before running the test, you should disable in-line ECC.
[Inputs]
CMD_PARAM_0 [5:0]: BIST_ADDR_SPACE [5:0] Used in BIST data checking to define the address space in bytes from 0 to 2addr_space that the BIST logic will check. As an example, if the addr_space parameter was programmed to 0x1c, then the BIST logic would check 228 bytes = 256 MBytes. Only used if BIST_FULL_MEM is ‘b0. Note: A BIST test must cover a minimum of 2 bursts. Therefore, the user must program this parameter to a value such that the start address and end address of the BIST test will encompass a minimum of 2 bursts. The burst length for different protocols are: DDR4 - 8 DDR5/LPDDR4/LPDDR5 - 16 CMD_PARAM_0 [6:6]: BIST_FULL_MEM Defines whether to perform BIST on full memory or on the specified address range. ‘b0 – BIST performed on address range specified using BIST_START_ADDR and BIST_ADDR_SPACE ‘b1 – BIST performed on full memory address range
CMD_PARAM_1 [31:0]: BIST_START_ADDR [31:0] CMD_PARAM_2 [5:0]: BIST_START_ADDR [37:32] Used in BIST data checking and memory initialization programming to define the starting address for BIST checking in bytes. Only used if BIST_FULL_MEM is ‘b0.
CMD_PARAM_3: BIST_DATA_PATTERN Specifies the data pattern to use for the memory initialization. ‘b00 – Initialize memory to all zeros. ‘b10 – Use data pattern specified using the values set using commands BIST_SET_DATA_PATTERN_UPPER and BIST_SET_DATA_PATTERN_LOWER before issuing BIST_MEM_INITIAL_START command.
[Outputs] CMD_RESPONSE_DATA_SHORT [0:0]: BIST_INITIATED ‘b1 – BIST memory initialization initiated successfully ‘b0 – BIST memory initialization initiation failed
[Command-Specific Errors] ‘b00 – No errors ‘b01 – A previous command’s saved state not restored. ‘b10 – In-line ECC must be disabled before full memory initialization. Either disable in-line ECC or specify a valid address range to be initialized. |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = BIST_SET_DATA_PATTERN_UPPER |
CMD_PARAM_3 [31:0]: BIST_DATA_PATTERN [287:256] CMD_PARAM_2 [31:0]: BIST_DATA_PATTERN [255:224] CMD_PARAM_1 [31:0]: BIST_DATA_PATTERN [223:192] CMD_PARAM_0 [31:0]: BIST_DATA_PATTERN [191:160] Defines the data pattern bits [287:160] to be used. Only data corresponding to active portion of core word is used while the inactive portion is ignored. The active portion of the core word depends on the DQ width per channel and the burst length. For example: - DDR5/LPDDR4/LPDDR5 (BL16) will use BIST_DATA_PATTERN [255:0] for x32 and BIST_DATA_PATTERN [127:0] for x16. - DDR4 (BL8) will use BIST_DATA_PATTERN [127:0] for x32 and BIST_DATA_PATTERN [63:0] for x16. If the axi4_rdata bus width is greater than the width of the active BIST_DATA_PATTERN, you will get repeated BIST_DATA_PATTERN when reading from the initialized memory locations. For example: - DDR4 x32: axi4_rdata[255:0] = { 2{BIST_DATA_PATTERN[127:0] } } - DDR4 x16: axi4_rdata[255:0] = { 4{BIST_DATA_PATTERN[63:0] } }
[Outputs] N/A
[Command-Specific Errors] ‘b00 – No errors ‘b01 – Cannot set upper data pattern for slim interface. |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = BIST_SET_DATA_PATTERN_LOWER |
CMD_PARAM_4 [31:0]: BIST_DATA_PATTERN [159:128] CMD_PARAM_3 [31:0]: BIST_DATA_PATTERN [127:96] CMD_PARAM_2 [31:0]: BIST_DATA_PATTERN [95:64] CMD_PARAM_1 [31:0]: BIST_DATA_PATTERN [63:32] CMD_PARAM_0 [31:0]: BIST_DATA_PATTERN [31:0] Defines the data pattern bits [223:0] to be used. Only data corresponding to active portion of the core word is used while inactive portion is ignored.The active portion of the core word depends on the DQ width per channel and the burst length. For example: - DDR5/LPDDR4/LPDDR5 (BL16) will use BIST_DATA_PATTERN [255:0] for x32 and BIST_DATA_PATTERN [127:0] for x16. - DDR4 (BL8) will use BIST_DATA_PATTERN [127:0] for x32 and BIST_DATA_PATTERN [63:0] for x16. If the axi4_rdata bus width is greater than the width of the active BIST_DATA_PATTERN, you will get repeated BIST_DATA_PATTERN when reading from the initialized memory locations. For example: - DDR4 x32: axi4_rdata[255:0] = { 2{BIST_DATA_PATTERN[127:0] } } - DDR4 x16: axi4_rdata[255:0] = { 4{BIST_DATA_PATTERN[63:0] } } |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = CHANGE_FSP_LP5 |
Command to change the FSP when using the LPDDR5 protocol.
[Inputs] CMD_PARAM_0 [1:0]: TARGET_FSP ‘b00 – FSP 0 ‘b01 – FSP 1 ‘b10 – FSP 2
[Outputs] CMD_RESPONSE_DATA_SHORT [0:0]: FSP_CHANGE_STATUS ‘b1 – The FSP was changed successfully. ‘b0 – The FSP was not changed successfully.
[Error Codes] ‘b000 – No errors. ‘b001 – Current Protocol is not LPDDR5. ‘b010 – The current FSP is equal to the target FSP – No change is needed. ‘b011 – The FSP could not be changed. |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = LP_MODE_ENTER |
Command to cause the Interface to enter a low power state. Note that other interface operations, including recalibration and mode register reads and writes, can cause automatic exits from some low-power states.
[Inputs] CMD_PARAM_0[3:0]: LP_STATE Specified the low power state the interface should enter: ‘b1000 – Self-Refresh Long (DDR4/DDR5 Only) ‘b1001 – Self-Refresh Long with Memory Clock Gating (DDR4/DDR5 Only) ‘b1010 – Self-Refresh Long with Memory Clock and Controller Clock Gating (DDR4/DDR5 Only) ‘b1101 – Self-Refresh Power Down Long (LPDDR4/LPDDR5 Only) ‘b1110 – Self-Refresh Power Down Long with Memory Clock Gating (LPDDR4/LPDDR5 Only) ‘b1111 – Self-Refresh Power Down Long with Memory and Controller Clock Gating (LPDDR4/LPDDR5 Only)
[Outputs] N/A
[Error Codes] ‘b000 – No errors ‘b001 – The Selected Low Power State is Not Available for the Current Protocol ‘b010 – The Selected Low Power State is invalid/Does not Exist. ‘b011 – Disable auto LP mode using the LP_MODE_AUTO command and confirm the idle state using the LP_MODE_STATUS command before using the LP_MODE_ENTER command. |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = LP_MODE_EXIT |
Command to exit any low power state. [Inputs] N/A [Outputs] N/A [Error Codes] ‘b000 – No errors |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_CONTROLLER_OP CMD_REQ [15:0]: CMD_OPCODE = LP_MODE_AUTO |
Command to cause the Interface to enter certain automatic low power states. Supported low power modes for this command are listed below as valid options. Do not use LP_MODE_EXIT opcode to exit from the automatic low power states. Note that other interface operations, including recalibration and mode register reads and writes, sending read/write request to the controller can cause automatic exits from some low-power states.
[Inputs] CMD_PARAM_0 [3:0]: Specified the low power state the interface should enter. ‘b0000 – Disable automatic low power mode. ‘b0001 – Active Power Down (All Protocols). ‘b0010 – Active Power Down with Memory Clock Gating (LPDDR4/LPDDR5 only). ‘b0011 – Pre-Charge Power Down (All Protocols). ‘b0100 – Pre-Charge Power Down with Memory Clock Gating (LPDDR4/LPDDR5 only). ‘b0101 – Self-Refresh Short (DDR4/DDR5 only). ‘b0110 – Self-Refresh Short with Memory Clock Gating (DDR4/DDR5 only). ‘b1011 – Self-Refresh Power Down Short (LPDDR4/LPDDR5 only). ‘b1100 – Self-Refresh Power Down Short with Memory Clock Gating (LPDDR4/LPDDR5 only).
CMD_PARAM_1 [11:0]: Defines the number of idle controller clocks that can elapse before the controller will automatically issue an entry into the low power state specified
[Outputs]
[Error Codes] ‘b000 – No errors ‘b001 – The selected low power state is invalid for the current protocol. ‘b010 – The selected low power state is invalid/does not exist. ‘b011 – The idle clock count should not be zero. |
CMD_REQ [31:29]: CMD_TARGET_IP_TYPE = <TARGET_IP_TYPE> CMD_REQ [28:24]: CMD_TARGET_IP_INSTANCE_ID = <TARGET_IP_INSTANCE_ID> CMD_REQ [23:16]: CMD_TYPE = CMD_TRIG_MEM_CAL_OP CMD_REQ [15:0]: CMD_OPCODE = TRIG_MEM_CAL |
Command to trigger a memory calibration for the memory interface specified using the instance ID. You should only recalibrate the memory interface for debug purposes. (HPS EMIF on Agilex™ 5 devices does not support recalibration.) For multi-channel interfaces, recalibration can be initiated by sending the TRIG_MEM_CAL command as below:
[Inputs]
[Outputs] CMD_RESPONSE_DATA_SHORT [0]: MEM_CAL_INITIATED ‘b1 – Memory calibration triggered successfully ‘b0 – Memory calibration triggering failed [Errors] CMD_RESPONSE_STATUS - STATUS_CMD_RESPONSE_ERROR: 000 - No errors 001 - Triggering memory calibration is not supported for this memory interface. |