xref: /openbmc/u-boot/doc/README.fsl-ddr (revision ebbe11dd365b16573e25b1b361287f9539daa33c)
1c9ffd839SHaiying Wang
2c9ffd839SHaiying WangTable of interleaving modes supported in cpu/8xxx/ddr/
3c9ffd839SHaiying Wang======================================================
4c9ffd839SHaiying Wang  +-------------+---------------------------------------------------------+
5c9ffd839SHaiying Wang  |             |                   Rank Interleaving                     |
6c9ffd839SHaiying Wang  |             +--------+-----------+-----------+------------+-----------+
7c9ffd839SHaiying Wang  |Memory       |        |           |           |    2x2     |    4x1    |
8c9ffd839SHaiying Wang  |Controller   |  None  | 2x1 lower | 2x1 upper | {CS0+CS1}, | {CS0+CS1+ |
9c9ffd839SHaiying Wang  |Interleaving |        | {CS0+CS1} | {CS2+CS3} | {CS2+CS3}  |  CS2+CS3} |
10c9ffd839SHaiying Wang  +-------------+--------+-----------+-----------+------------+-----------+
11c9ffd839SHaiying Wang  |None         |  Yes   | Yes       | Yes       | Yes        | Yes       |
12c9ffd839SHaiying Wang  +-------------+--------+-----------+-----------+------------+-----------+
13c9ffd839SHaiying Wang  |Cacheline    |  Yes   | Yes       | No        | No, Only(*)| Yes       |
14c9ffd839SHaiying Wang  |             |CS0 Only|           |           | {CS0+CS1}  |           |
15c9ffd839SHaiying Wang  +-------------+--------+-----------+-----------+------------+-----------+
16c9ffd839SHaiying Wang  |Page         |  Yes   | Yes       | No        | No, Only(*)| Yes       |
17c9ffd839SHaiying Wang  |             |CS0 Only|           |           | {CS0+CS1}  |           |
18c9ffd839SHaiying Wang  +-------------+--------+-----------+-----------+------------+-----------+
19c9ffd839SHaiying Wang  |Bank         |  Yes   | Yes       | No        | No, Only(*)| Yes       |
20c9ffd839SHaiying Wang  |             |CS0 Only|           |           | {CS0+CS1}  |           |
21c9ffd839SHaiying Wang  +-------------+--------+-----------+-----------+------------+-----------+
22c9ffd839SHaiying Wang  |Superbank    |  No    | Yes       | No        | No, Only(*)| Yes       |
23c9ffd839SHaiying Wang  |             |        |           |           | {CS0+CS1}  |           |
24c9ffd839SHaiying Wang  +-------------+--------+-----------+-----------+------------+-----------+
25c9ffd839SHaiying Wang (*) Although the hardware can be configured with memory controller
26c9ffd839SHaiying Wang interleaving using "2x2" rank interleaving, it only interleaves {CS0+CS1}
27c9ffd839SHaiying Wang from each controller. {CS2+CS3} on each controller are only rank
28c9ffd839SHaiying Wang interleaved on that controller.
29c9ffd839SHaiying Wang
30076bff8fSyork For memory controller interleaving, identical DIMMs are suggested. Software
31076bff8fSyork doesn't check the size or organization of interleaved DIMMs.
32076bff8fSyork
33c9ffd839SHaiying WangThe ways to configure the ddr interleaving mode
34c9ffd839SHaiying Wang==============================================
35c9ffd839SHaiying Wang1. In board header file(e.g.MPC8572DS.h), add default interleaving setting
36c9ffd839SHaiying Wang   under "CONFIG_EXTRA_ENV_SETTINGS", like:
37c9ffd839SHaiying Wang	#define CONFIG_EXTRA_ENV_SETTINGS				\
3879e4e648SKumar Gala	 "hwconfig=fsl_ddr:ctlr_intlv=bank"			\
39c9ffd839SHaiying Wang	 ......
40c9ffd839SHaiying Wang
41c9ffd839SHaiying Wang2. Run u-boot "setenv" command to configure the memory interleaving mode.
42c9ffd839SHaiying Wang   Either numerical or string value is accepted.
43c9ffd839SHaiying Wang
44c9ffd839SHaiying Wang  # disable memory controller interleaving
4579e4e648SKumar Gala  setenv hwconfig "fsl_ddr:ctlr_intlv=null"
46c9ffd839SHaiying Wang
47c9ffd839SHaiying Wang  # cacheline interleaving
4879e4e648SKumar Gala  setenv hwconfig "fsl_ddr:ctlr_intlv=cacheline"
49c9ffd839SHaiying Wang
50c9ffd839SHaiying Wang  # page interleaving
5179e4e648SKumar Gala  setenv hwconfig "fsl_ddr:ctlr_intlv=page"
52c9ffd839SHaiying Wang
53c9ffd839SHaiying Wang  # bank interleaving
5479e4e648SKumar Gala  setenv hwconfig "fsl_ddr:ctlr_intlv=bank"
55c9ffd839SHaiying Wang
56c9ffd839SHaiying Wang  # superbank
5779e4e648SKumar Gala  setenv hwconfig "fsl_ddr:ctlr_intlv=superbank"
58c9ffd839SHaiying Wang
59c9ffd839SHaiying Wang  # disable bank (chip-select) interleaving
6079e4e648SKumar Gala  setenv hwconfig "fsl_ddr:bank_intlv=null"
61c9ffd839SHaiying Wang
62c9ffd839SHaiying Wang  # bank(chip-select) interleaving cs0+cs1
6379e4e648SKumar Gala  setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1"
64c9ffd839SHaiying Wang
65c9ffd839SHaiying Wang  # bank(chip-select) interleaving cs2+cs3
6679e4e648SKumar Gala  setenv hwconfig "fsl_ddr:bank_intlv=cs2_cs3"
67c9ffd839SHaiying Wang
68c9ffd839SHaiying Wang  # bank(chip-select) interleaving (cs0+cs1) and (cs2+cs3)  (2x2)
6979e4e648SKumar Gala  setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_and_cs2_cs3"
70c9ffd839SHaiying Wang
71c9ffd839SHaiying Wang  # bank(chip-select) interleaving (cs0+cs1+cs2+cs3) (4x1)
7279e4e648SKumar Gala  setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3"
7379e4e648SKumar Gala
747fd101c9SyorkMemory controller address hashing
757fd101c9Syork==================================
767fd101c9SyorkIf the DDR controller supports address hashing, it can be enabled by hwconfig.
777fd101c9Syork
787fd101c9SyorkSyntax is:
797fd101c9Syorkhwconfig=fsl_ddr:addr_hash=true
807fd101c9Syork
81*ebbe11ddSYork Sun
82*ebbe11ddSYork SunMemory testing options for mpc85xx
83*ebbe11ddSYork Sun==================================
84*ebbe11ddSYork Sun1. Memory test can be done once U-boot prompt comes up using mtest, or
85*ebbe11ddSYork Sun2. Memory test can be done with Power-On-Self-Test function, activated at
86*ebbe11ddSYork Sun   compile time.
87*ebbe11ddSYork Sun
88*ebbe11ddSYork Sun   In order to enable the POST memory test, CONFIG_POST needs to be
89*ebbe11ddSYork Sun   defined in board configuraiton header file. By default, POST memory test
90*ebbe11ddSYork Sun   performs a fast test. A slow test can be enabled by changing the flag at
91*ebbe11ddSYork Sun   compiling time. To test memory bigger than 2GB, 36BIT support is needed.
92*ebbe11ddSYork Sun   Memory is tested within a 2GB window. TLBs are used to map the virtual 2GB
93*ebbe11ddSYork Sun   window to physical address so that all physical memory can be tested.
94*ebbe11ddSYork Sun
957fd101c9SyorkCombination of hwconfig
967fd101c9Syork=======================
977fd101c9SyorkHwconfig can be combined with multiple parameters, for example, on a supported
987fd101c9Syorkplatform
997fd101c9Syork
1007fd101c9Syorkhwconfig=fsl_ddr:addr_hash=true,ctlr_intlv=cacheline,bank_intlv=cs0_cs1_cs2_cs3
101