summaryrefslogtreecommitdiff
path: root/Documentation/Intel/NativeRaminit/SandyBridge_registers.md
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2017-11-01 16:52:02 +0100
committerMartin Roth <martinroth@google.com>2017-12-09 16:59:16 +0000
commitbf8db8d45b35181c84a163ab669f7a8d39ad5fec (patch)
tree002cd89138145cdaf7fc164777d240ab3cb4ddf9 /Documentation/Intel/NativeRaminit/SandyBridge_registers.md
parentdc27d629219346d0e631a7c54e664ba9301fa011 (diff)
Documentation/Intel: Add NativeRaminit documentation
Add documentation for Intel native raminit on Intel SandyBridge. Documented so far: * Register * Read training * Frequency selection * SMBIOS type 17 memory reporting * Various Kconfig options and features Change-Id: I3b977460ecb29c9a54e3fab82349982fca9918e7 Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/22275 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'Documentation/Intel/NativeRaminit/SandyBridge_registers.md')
-rw-r--r--Documentation/Intel/NativeRaminit/SandyBridge_registers.md1400
1 files changed, 1400 insertions, 0 deletions
diff --git a/Documentation/Intel/NativeRaminit/SandyBridge_registers.md b/Documentation/Intel/NativeRaminit/SandyBridge_registers.md
new file mode 100644
index 0000000000..2dce11bcc8
--- /dev/null
+++ b/Documentation/Intel/NativeRaminit/SandyBridge_registers.md
@@ -0,0 +1,1400 @@
+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 |