RAM initialization feature matrix

Options

  1. Native raminit
    • Open Source
    • Native Raminit is working for most frequencies on most boards.
    • There might be errors to fix.
    • Position in romstage doesn't matter.
  2. mrc.bin raminit
    • Closed Source (aka blob)
    • No known errors.
    • Needs to be placed at fixed offset in romstage.

Native raminit implemented features

+---------------------------+----------------------+-------------+---------+---------------------+
| Option                    |            Supported | Implemented | Working | Comments            |
+===========================+======================+=============+=========+=====================+
| **Supported channels**                                                                         |
+---------------------------+----------------------+-------------+---------+---------------------+
| single and dual channel   |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
| Up to 4 slots             |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
| Up to 4 ranks per channel |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
| **Supported frequencies**                                                                      |
+---------------------------+----------------------+-------------+---------+---------------------+
|        DDR3-1066 (533MHz) |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|        DDR3-1600 (800MHz) |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|        DDR3-1866 (933MHz) |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|       DDR3-2133 (1066MHz) |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|        DDR3-1400 (700MHz) | yes (IvyBridge only) |         yes |     yes | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|        DDR3-1800 (900MHz) | yes (IvyBridge only) |         yes |     yes | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|       DDR3-2000 (1000MHz) | yes (IvyBridge only) |         yes |     yes | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|       DDR3-2200 (1100MHz) | yes (IvyBridge only) |         yes |     yes | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|       DDR3-2400 (1200MHz) | yes (IvyBridge only) |         yes |     yes | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|        DDR3-1800 (900MHz) | yes (IvyBridge only) |         yes |     yes | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
| **Supported CAS latencies**                                                                    |
+---------------------------+----------------------+-------------+---------+---------------------+
|                       CL6 |                  yes |         yes |       ? |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|                       CL7 |                  yes |         yes |       ? |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|                       CL8 |                  yes |         yes |       ? |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|                       CL9 |                  yes |         yes |       ? |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|                      CL10 |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|                      CL11 |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|                      CL12 |                  yes |         yes |       ? | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|                      CL13 |                  yes |         yes |     yes | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|                      CL14 |                  yes |         yes |       ? | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
|                      CL15 |                  yes |         yes |       ? | Since coreboot 4.6  |
+---------------------------+----------------------+-------------+---------+---------------------+
| **MRC cache (stored timings of last training)**                                                |
+---------------------------+----------------------+-------------+---------+---------------------+
|                        S3 |                  yes |         yes |     yes |                     |
+---------------------------+----------------------+-------------+---------+---------------------+
|               normal boot |                  yes |         yes |     yes | reset on CRC16 diff |
+---------------------------+----------------------+-------------+---------+---------------------+
| **XMP support**                                                                                |
+---------------------------+----------------------+-------------+---------+---------------------+
|             XMP Profile 1 |                  yes |         yes |     yes | only 1.5 V profiles |
+---------------------------+----------------------+-------------+---------+---------------------+
|             XMP Profile 2 |                  yes |         yes |      no |       not activated |
+---------------------------+----------------------+-------------+---------+---------------------+
| **ECC support**                                                                                |
+---------------------------+----------------------+-------------+---------+---------------------+
|                       ECC |                  yes |         yes |     yes | Since coreboot 4.13 |
+---------------------------+----------------------+-------------+---------+---------------------+