Visible to Intel only — GUID: nik1412377930607
Ixiasoft
Visible to Intel only — GUID: nik1412377930607
Ixiasoft
3.4. Initialization and Reset
Initialization
The following signals control HMC Controller IP core, HMC link, and HMC device initialization:
- rst_n: Active low HMC Controller IP core input signal that triggers IP core initialization
- hmc_p_rst_n: HMC Controller IP core output signal.
- Signal control: While rst_n is asserted, and immediately after it is deasserted, the IP core controls this output signal. However, after the IP core raises this signal when rst_n is deasserted, the P_RST_N field in bit [17] of the CONTROL register drives this signal. Software can modify this bit to force the HMC device to reset.
- Signal connection: You should connect this signal to the active low HMC device P_RST_N input signal. P_RST_N triggers HMC device initialization.
- i2c_load_registers: HMC Controller IP core output signal. You should connect this signal to the I2C master module input signal that tells the I2C master module to load the configuration registers of the HMC device.
- i2c_registers_loaded: HMC Controller IP core input signal that indicates the I2C master module has completed its part in the initialization of the HMC device. You should connect this signal to the I2C master module output signal that indicates successful completion of the HMC configuration register load sequence.
The IP core reports link initialization status in the InitializationState field of the LINK_STATUS register at offset 0x10. The HMC device reports its own link initialization status in its own link interface status registers.
When you initialize the HMC link, recall the following HMC Controller IP core requirements:
- The HMC Controller IP core operates in Response Open Loop Mode, and you must configure the HMC device to communicate correctly with the IP core in this mode.
- The IP core does not support the TGA field, so you must configure the HMC device to acknowledge every non-posted Write request with a Write response packet.
Fatal Error Recovery
If the HMC device declares a fatal error, you must perform a warm reset of the HMC device and a reset of the HMC Controller IP core. To perform the HMC device warm reset, set the appropriate field in the HMC Global Configuration register.
You can perform a soft reset or a hard reset of the HMC Controller IP core. To perform the HMC Controller IP core soft reset, set the SoftReset field in bit [2] of the HMC Controller IP core CONTROL register To perform the hard reset, assert the rst_n input signal.
If the HMC Controller IP core declares a fatal error, set the ClearFatalError field in bit [1] of the CONTROL register. In some cases, this action is sufficient to force the IP core to resume normal operation. If this action is not sufficient, you must perform a full reinitialization of the IP core.
Power Management
To save power during a period of inactivity on the link, you can put the HMC link in sleep mode. After a certain amount of time in sleep mode, the HMC device automatically moves to down mode.
To put the link to sleep:
- Stop sending requests on the data path request interfaces, to force the IP core to stop sending requests on the HMC link.
- Wait for all responses to arrive and tokens to return.
- Write the value of 0 to the TXPS field in bit [16] of the CONTROL register.
- Wait for the IP core to set the RXPS field in bit [16] of the LINK_STATUS register to the value of 0.
To wake the link up from sleep mode or from down mode:
- Write the value of 1 to the Retrain field in bit [0] of the CONTROL register.
- Write the value of 1 to the TXPS field in bit [16] of the CONTROL register.
- Wait for the IP core to set the RXPS field in bit [16] of the LINK_STATUS register to the value of 1.
Link Reinitialization
To recover from a fatal error, to wake up the link from sleep mode, or to retrain a link exhibiting a high bit error rate, you must reinitalize the HMC link.
After the HMC device exits sleep mode, you must reinitialize the link to resynchronize descramblers and perform word and lane alignment.
To reinitialize the link, write a 1 to the Retrain field in bit [0] of the CONTROL register.