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