coreboot-kgpe-d16/Documentation/Intel/NativeRaminit/SandyBridge_registers.md

1401 lines
32 KiB
Markdown
Raw Normal View History

Inoffical Documentation of Intel MCHBAR register space.
The MCHBAR can be enabled by using register 0x48 of PCI(0:0:0) device.
This documentation is incomplete and might be incorrect.
Please handle with care !
**MCHBAR + 0x4**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0x10**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x14**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x18**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x1c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x20**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x24**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x28**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x2c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 0
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x204**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0x210**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x214**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x218**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x21c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x220**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x224**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x228**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x22c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 1
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x404**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0x410**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x414**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x418**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x41c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x420**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x424**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x428**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x42c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 2
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x604**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0x610**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x614**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x618**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x61c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x620**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x624**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x628**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x62c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 3
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x804**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0x810**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x814**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x818**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x81c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0x820**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x824**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x828**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x82c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 4
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xa04**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0xa10**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xa14**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xa18**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xa1c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xa20**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xa24**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xa28**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xa2c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 5
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xc04**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0xc10**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xc14**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
| 0:5| Rank 0 CLK phase shift, low |
| 6:11| Rank 1 CLK phase shift, low |
| 12:17| Rank 2 CLK phase shift, low |
| 18:23| Rank 3 CLK phase shift, low |
| 24:27| Rankmap to enable clock crossover on |
**MCHBAR + 0xc18**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
| 0 | Rank 0 CLK phase shift, high |
| 1 | Rank 1 CLK phase shift, high |
| 2 | Rank 2 CLK phase shift, high |
| 3 | Rank 3 CLK phase shift, high |
**MCHBAR + 0xc1c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xc20**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xc24**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xc28**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xc2c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 6
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xe04**
*Width:* 64 Bit
*Desc:* Lane training result Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:63| Training result, each bit corresponds to one of the 64 settings of IO delay |
**MCHBAR + 0xe10**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 0 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xe14**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 1 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xe18**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 2 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xe1c**
*Width:* 32 Bit
*Desc:* Read delay settings, Rank 3 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| IO phase shift in 1/64th DCKs |
| 6:11| DQS phase shift on rising edge in 1/64 DCKs |
| 16:18| IO delay in DCKs |
| 20:25| DQS phase shift on falling edge in 1/64 DCKs |
**MCHBAR + 0xe20**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 0 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xe24**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 1 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xe28**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 2 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0xe2c**
*Width:* 24 Bit
*Desc:* Write delay settings, Rank 3 Register, Channel 0, lane 7
|Bit| Description |
|---|-------------|
| 0:5| DQ IO phase shift in 1/64th DCKs |
| 8:13| DQS IO phase shift in 1/64th DCKs |
| 15:17| DQS IO phase shift in DCKs |
| 20 | DQ IO phase shift in DCKs |
**MCHBAR + 0x1810**
*Width:* 32 Bit
*Desc:* COMP1 Register, Channel 0
|Bit| Description |
|---|-------------|
| 9:11| ODT |
| 21:23| CLK drive up |
| 27:29| CTRL drive up |
**MCHBAR + 0x320c**
*Width:* 32 Bit
*Desc:* Command crossover enable Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:5| CLK phase, low |
| 12 | CLK phase, high |
| 14 | Enable hardware |
| 17 | Enable on slot 1 |
| 27 | Enable on slot 2 |
**MCHBAR + 0x3714**
*Width:* 32 Bit
*Desc:* COMP2 Register
|Bit| Description |
|---|-------------|
| 0:31| COMP2 value |
**MCHBAR + 0x4000**
*Width:* 24 Bit
*Desc:* TC_DBP - Timming of DDR - Bin Parameter Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:3| tRCD |
| 4:7| tRP |
| 8:11| CAS |
| 12:15| CWL |
| 16:19| tRAS |
**MCHBAR + 0x4004**
*Width:* 32 Bit
*Desc:* TC_RAP - Timing of DDR - Regular Access Parameters Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:3| tRRD |
| 4:7| tRTP |
| 8:11| CKE |
| 12:15| WTR |
| 16:19| tFAW |
| 24:27| tWR |
| 29 | Command 3-state options, 0: Drive when channel is active, tri-state when inactive, 1: Always drive command bus |
| 30:31| CMD stretch, 00: 1N, 10: 2N, 11: 3N |
**MCHBAR + 0x400c**
*Width:* 24 Bit
*Desc:* OTHP ODT control Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:3| tXPDLL ? |
| 5:7| tXP ? |
| 16:17| ODT stretch |
| 18:19| ODT stretch |
**MCHBAR + 0x401c**
*Width:* 16 Bit
*Desc:* OTHP Workaround (SandyBridge only) Register, Channel 0
|Bit| Description |
|---|-------------|
| 12:13| ODT stretch |
| 14:15| ODT stretch |
**MCHBAR + 0x4024**
*Width:* 32 Bit
*Desc:* Rounttrip time Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:7| RTT Rank 0 DIMM 0 |
| 8:15| RTT Rank 1 DIMM 0 |
| 16:23| RTT Rank 0 DIMM 1 |
| 24:31| RTT Rank 1 DIMM 1 |
**MCHBAR + 0x4028**
*Width:* 24 Bit
*Desc:* SC_IO_LATENCY Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:3| IO latency Rank 0 DIMM 0 |
| 4:7| IO latency Rank 1 DIMM 0 |
| 8:11| IO latency Rank 0 DIMM 1 |
| 12:15| IO latency Rank 1 DIMM 1 |
| 16:21| Rount trip - I/O compensation |
**MCHBAR + 0x4200**
*Width:* 32 Bit
*Desc:* RAM training queue, address Register, Channel 0, queue idx 0
|Bit| Description |
|---|-------------|
| 0:15| Address |
| 20:22| Bank address |
| 24:25| Slotrank |
**MCHBAR + 0x4204**
*Width:* 32 Bit
*Desc:* RAM training queue, address Register, Channel 0, queue idx 1
|Bit| Description |
|---|-------------|
| 0:15| Address |
| 20:22| Bank address |
| 24:25| Slotrank |
**MCHBAR + 0x4208**
*Width:* 32 Bit
*Desc:* RAM training queue, address Register, Channel 0, queue idx 2
|Bit| Description |
|---|-------------|
| 0:15| Address |
| 20:22| Bank address |
| 24:25| Slotrank |
**MCHBAR + 0x420c**
*Width:* 32 Bit
*Desc:* RAM training queue, address Register, Channel 0, queue idx 3
|Bit| Description |
|---|-------------|
| 0:15| Address |
| 20:22| Bank address |
| 24:25| Slotrank |
**MCHBAR + 0x4220**
*Width:* 8 Bit
*Desc:* RAM training queue, command IO Register, Channel 0, queue idx 0
|Bit| Description |
|---|-------------|
| 0 | !RAS |
| 1 | !CAS |
| 2 | !WE |
**MCHBAR + 0x4224**
*Width:* 8 Bit
*Desc:* RAM training queue, command IO Register, Channel 0, queue idx 1
|Bit| Description |
|---|-------------|
| 0 | !RAS |
| 1 | !CAS |
| 2 | !WE |
**MCHBAR + 0x4228**
*Width:* 8 Bit
*Desc:* RAM training queue, command IO Register, Channel 0, queue idx 2
|Bit| Description |
|---|-------------|
| 0 | !RAS |
| 1 | !CAS |
| 2 | !WE |
**MCHBAR + 0x422c**
*Width:* 8 Bit
*Desc:* RAM training queue, command IO Register, Channel 0, queue idx 3
|Bit| Description |
|---|-------------|
| 0 | !RAS |
| 1 | !CAS |
| 2 | !WE |
**MCHBAR + 0x4230**
*Width:* 32 Bit
*Desc:* RAM training queue, cooldown Register, Channel 0, queue idx 0
|Bit| Description |
|---|-------------|
| 16:31| Clock cycles to wait after command |
**MCHBAR + 0x4234**
*Width:* 32 Bit
*Desc:* RAM training queue, cooldown Register, Channel 0, queue idx 1
|Bit| Description |
|---|-------------|
| 16:31| Clock cycles to wait after command |
**MCHBAR + 0x4238**
*Width:* 32 Bit
*Desc:* RAM training queue, cooldown Register, Channel 0, queue idx 2
|Bit| Description |
|---|-------------|
| 16:31| Clock cycles to wait after command |
**MCHBAR + 0x423c**
*Width:* 32 Bit
*Desc:* RAM training queue, cooldown Register, Channel 0, queue idx 3
|Bit| Description |
|---|-------------|
| 16:31| Clock cycles to wait after command |
**MCHBAR + 0x4284**
*Width:* 24 Bit
*Desc:* RAM training queue, cooldown Register, Channel 0
|Bit| Description |
|---|-------------|
| 0 | Start executing DRAM command queue |
| 16:19| (Number of queued commands - 1) * 4 |
**MCHBAR + 0x4298**
*Width:* 40 Bit
*Desc:* TC - Refresh parameters Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:15| tREFI, average period between refresh in DCLK cycles |
| 16:24| tRFC, Time of refresh, from beginning of refresh until next ACT or refresh is allowed in DCLK cycles |
| 25:32| tREFIx9, Maximum time allowed between refreshes to a rank. Should be programmed to 8.9 * tREFI / 1024 |
**MCHBAR + 0x42a4**
*Width:* 32 Bit
*Desc:* SRFTP Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:11| tXSDLL |
| 12:15| tXS_offset |
| 16:25| tZQOPER |
| 28:31| tMOD |
**MCHBAR + 0x4c20**
*Width:* 32 Bit
*Desc:* Scheduler parameters Register
|Bit| Description |
|---|-------------|
| 0:31| scheduler parameters |
**MCHBAR + 0x4cb0**
*Width:* 16 Bit
*Desc:* PM - Power-down configuration, Broadcast Register
|Bit| Description |
|---|-------------|
| 0:7| PDWN_idle_counter, This defines the rank indle period in DCLK cycles that causes power-down entrance. The minimum value should be greater then or equal to the worst roundtrip time plus burst length. |
| 8:10| PDWN_mode, selects the mode of power-down: 0x0: No power down, 0x1: APD, 0x2: PPD, 0x3: APD+PPD, 0x4: Reserved, 0x5: Reserved, 0x6: PPD-DLLoff, 0x7: APD+PPD+DLLof |
**MCHBAR + 0x4e80**
*Width:* 32 Bit
*Desc:* Power mode preset Register
|Bit| Description |
|---|-------------|
| 0:31| Power mode preset |
**MCHBAR + 0x4e94**
*Width:* 16 Bit
*Desc:* TC - Refresh parameters Register
|Bit| Description |
|---|-------------|
| 0:7| OREF_RI, Rank idle period that defines an oppertunity for refresh |
| 8:11| Refresh_HP_WM, tREFI count level that turns the refresh priority to high |
| 12:15| Refresh_panic_WM, tREFI count level in which the refresh priority is panic |
**MCHBAR + 0x4e98**
*Width:* 40 Bit
*Desc:* TC - Refresh parameters Register
|Bit| Description |
|---|-------------|
| 0:15| tREFI, average period between refresh in DCLK cycles |
| 16:24| tRFC, Time of refresh, from beginning of refresh until next ACT or refresh is allowed in DCLK cycles |
| 25:32| tREFIx9, Maximum time allowed between refreshes to a rank. Should be programmed to 8.9 * tREFI / 1024 |
**MCHBAR + 0x5000**
*Width:* 8 Bit
*Desc:* Global channel size control Register
|Bit| Description |
|---|-------------|
| 0:1| CH_A, defines the largest channel. 00: Channel 0, 01: Channel 1, 10: Channel 2 |
| 2:3| CH_B, defines the mid-size channel. 00: Channel 0, 01: Channel 1, 10: Channel 2 |
| 2:3| CH_C, defines the smallest channel. 00: Channel 0, 01: Channel 1, 10: Channel 2, CH_C is 10 if only 2 channels are supported |
**MCHBAR + 0x5004**
*Width:* 32 Bit
*Desc:* Address Decode Register, Channel 0
|Bit| Description |
|---|-------------|
| 0:7| DIMMA size in 256 MB multiples |
| 16 | DIMM A select (DAS) Slot to DIMM mapping, 0: DIMMA, DIMMB, 1: DIMMB, DIMMA |
| 17 | DIMM A number of ranks |
| 19 | DIMM A DRAM width x8 / x16 |
| 8:15| DIMM B size in 256 MB multiples |
| 18 | DIMM B number of ranks |
| 20 | DIMM B DRAM width in 8x / x16 |
| 21 | Rank interleave enable |
| 22 | Enhanced interleave enable |
| 26 | High order Rank interleave enable |
| 27:29| High Order Rank interleave Address. Selects on of address bits 20-27 to use for high rank interleave |
| 24:25| ECC, 00: No ECC active, 01: ECC is active on IO, 11: ECC is active on both IO and ECC logic |
**MCHBAR + 0x5030**
*Width:* 8 Bit
*Desc:* Global DDR3 control Register
|Bit| Description |
|---|-------------|
| 1 | DDR reset |
| 2 | DCLK enable |
| 5 | IO reset |
**MCHBAR + 0x5034**
*Width:* 32 Bit
*Desc:* Version Register
|Bit| Description |
|---|-------------|
| 0:31| MRC version |
**MCHBAR + 0x5060**
*Width:* 16 Bit
*Desc:* PM - Self refresh config Register
|Bit| Description |
|---|-------------|
| 0:15| Idle_timer, The value is used when the SREF_enable field is set and defines the # of cycles that there should not be any transaction in order to enter self-refresh. |
| 16 | SR_Enable, enable self-refresh mechanism. Clear SREF_en and SREF_exit first. |
**MCHBAR + 0x5084**
*Width:* 24 Bit
*Desc:* RCOMP status Register
|Bit| Description |
|---|-------------|
| 16 | Busy |
**MCHBAR + 0x5090**
*Width:* 32 Bit
*Desc:* ECC - Address compare for ECC error injection Register
|Bit| Description |
|---|-------------|
| 0:31| Inject error when ECC_Inj_Addr_Compare[31:0] = ADDR[37:6] |
**MCHBAR + 0x5094**
*Width:* 32 Bit
*Desc:* ECC - Address mask for ECC error injection Register
|Bit| Description |
|---|-------------|
| 0:31| Inject error when ECC_inj_Addr_Compare[31:0] = ADDR[37:6] && ECC_Inj_Addr_Mask[31:0] |
**MCHBAR + 0x5e00**
*Width:* 32 Bit
*Desc:* MC_BIOS_REQ Register
|Bit| Description |
|---|-------------|
| 0:7| Selected multiplier: 100Mhz [7,12], 133Mhz [3,19] |
| 8 | 1: 100Mhz reference clock, 0: 133Mhz reference clock (IvyBridge only) |
| 31 | PLL busy |
**MCHBAR + 0x5e04**
*Width:* 8 Bit
*Desc:* MC_BIOS_DATA Register
|Bit| Description |
|---|-------------|
| 0:7| Active multiplier: 100Mhz [7,12], 133Mhz [3,19] |
**MCHBAR + 0x5f08**
*Width:* 16 Bit
*Desc:* RCOMP control Register
|Bit| Description |
|---|-------------|
| 8 | Force RCOMP |