----------------------------------------
SDRAM parity initialization sequence
----------------------------------------
SDRAM parity Cases:
Note: Below is the case in which we will enable parity exceptions i.e. Setting EMCP bit of HID0 register.
In below case, the system will halt after calling (3)rd step i.e. Enable parity exceptions.
(1) SDRAM initialization sequence is as follows (SDRAM initialization sequence is always called first)
=> program MPTPR
=> Program PSRT
=> Program OR1
=> Program BR1
=> program PSDMR
=> Precharge all banks
=> issue 8 CBR refresh commands
=> Issue mode register command
=> Issue normal operation command
(2) Initialize the Data parity pins
=> clear EPAR bit in BCR (Bus configuration register) => Setting Odd parity
=> BR1[DECC] = 0x01 => Enable normal parity
=> SIUMCR[DPPC] = 0x01 => Enable data parity pins
=> SIUMCR[PBSE] = 0x1 => Enable PBSE
=> Clear TESCR1
=> Clear TESCR2
(3) Enable parity exceptions
=> vxHid0Set(vxHid0Get() | _PPC_HID0_EMCP) => Setting EMCP bit of HID0 register
---------------------------------------------------------------------------------------------------------------
Note: Below is the case in which we will not enable parity exceptions i.e. clear EMCP bit of HID0 register.
In below case, the system will not halt as we have not enabled the parity exceptions but the parity
error can be seen by looking into TESCR1 and TESCR2 registers.
(1) SDRAM initialization sequence is as follows (SDRAM initialization sequence is always called first)
=> program MPTPR
=> Program PSRT
=> Program OR1
=> Program BR1
=> program PSDMR
=> Precharge all banks
=> issue 8 CBR refresh commands
=> Issue mode register command
=> Issue normal operation command
(2) Initialize the Data parity pins
=> clear EPAR bit in BCR (Bus configuration register) => Setting Odd parity
=> BR1[DECC] = 0x01 => Enable normal parity
=> SIUMCR[DPPC] = 0x01 => Enable data parity pins
=> SIUMCR[PBSE] = 0x1 => Enable PBSE
=> Clear TESCR1
=> Clear TESCR2