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 |
