Skip to content
Snippets Groups Projects
README.fsl-ddr 9.39 KiB
Newer Older
  • Learn to ignore specific revisions
  • Haiying Wang's avatar
    Haiying Wang committed
    
    Table of interleaving modes supported in cpu/8xxx/ddr/
    ======================================================
      +-------------+---------------------------------------------------------+
    
      |		|		    Rank Interleaving			  |
      |		+--------+-----------+-----------+------------+-----------+
      |Memory	|	 |	     |		 |    2x2     |    4x1	  |
      |Controller	|  None  | 2x1 lower | 2x1 upper | {CS0+CS1}, | {CS0+CS1+ |
      |Interleaving |	 | {CS0+CS1} | {CS2+CS3} | {CS2+CS3}  |  CS2+CS3} |
    
    Haiying Wang's avatar
    Haiying Wang committed
      +-------------+--------+-----------+-----------+------------+-----------+
    
      |None		|  Yes	 | Yes	     | Yes	 | Yes	      | Yes	  |
    
    Haiying Wang's avatar
    Haiying Wang committed
      +-------------+--------+-----------+-----------+------------+-----------+
    
      |Cacheline	|  Yes	 | Yes	     | No	 | No, Only(*)| Yes	  |
      |		|CS0 Only|	     |		 | {CS0+CS1}  |		  |
    
    Haiying Wang's avatar
    Haiying Wang committed
      +-------------+--------+-----------+-----------+------------+-----------+
    
      |Page		|  Yes	 | Yes	     | No	 | No, Only(*)| Yes	  |
      |		|CS0 Only|	     |		 | {CS0+CS1}  |		  |
    
    Haiying Wang's avatar
    Haiying Wang committed
      +-------------+--------+-----------+-----------+------------+-----------+
    
      |Bank		|  Yes	 | Yes	     | No	 | No, Only(*)| Yes	  |
      |		|CS0 Only|	     |		 | {CS0+CS1}  |		  |
    
    Haiying Wang's avatar
    Haiying Wang committed
      +-------------+--------+-----------+-----------+------------+-----------+
    
      |Superbank	|  No	 | Yes	     | No	 | No, Only(*)| Yes	  |
      |		|	 |	     |		 | {CS0+CS1}  |		  |
    
    Haiying Wang's avatar
    Haiying Wang committed
      +-------------+--------+-----------+-----------+------------+-----------+
     (*) Although the hardware can be configured with memory controller
     interleaving using "2x2" rank interleaving, it only interleaves {CS0+CS1}
     from each controller. {CS2+CS3} on each controller are only rank
     interleaved on that controller.
    
    
     For memory controller interleaving, identical DIMMs are suggested. Software
     doesn't check the size or organization of interleaved DIMMs.
    
    
    Haiying Wang's avatar
    Haiying Wang committed
    The ways to configure the ddr interleaving mode
    ==============================================
    1. In board header file(e.g.MPC8572DS.h), add default interleaving setting
       under "CONFIG_EXTRA_ENV_SETTINGS", like:
    	#define CONFIG_EXTRA_ENV_SETTINGS				\
    
    	 "hwconfig=fsl_ddr:ctlr_intlv=bank"			\
    
    Haiying Wang's avatar
    Haiying Wang committed
    	 ......
    
    2. Run u-boot "setenv" command to configure the memory interleaving mode.
       Either numerical or string value is accepted.
    
      # disable memory controller interleaving
    
      setenv hwconfig "fsl_ddr:ctlr_intlv=null"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # cacheline interleaving
    
      setenv hwconfig "fsl_ddr:ctlr_intlv=cacheline"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # page interleaving
    
      setenv hwconfig "fsl_ddr:ctlr_intlv=page"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # bank interleaving
    
      setenv hwconfig "fsl_ddr:ctlr_intlv=bank"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # superbank
    
      setenv hwconfig "fsl_ddr:ctlr_intlv=superbank"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # disable bank (chip-select) interleaving
    
      setenv hwconfig "fsl_ddr:bank_intlv=null"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # bank(chip-select) interleaving cs0+cs1
    
      setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # bank(chip-select) interleaving cs2+cs3
    
      setenv hwconfig "fsl_ddr:bank_intlv=cs2_cs3"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # bank(chip-select) interleaving (cs0+cs1) and (cs2+cs3)  (2x2)
    
      setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_and_cs2_cs3"
    
    Haiying Wang's avatar
    Haiying Wang committed
    
      # bank(chip-select) interleaving (cs0+cs1+cs2+cs3) (4x1)
    
      setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3"
    
    
    Memory controller address hashing
    ==================================
    If the DDR controller supports address hashing, it can be enabled by hwconfig.
    
    Syntax is:
    hwconfig=fsl_ddr:addr_hash=true
    
    
    Memory controller ECC on/off
    ============================
    If ECC is enabled in board configuratoin file, i.e. #define CONFIG_DDR_ECC,
    ECC can be turned on/off by hwconfig.
    
    Syntax is
    hwconfig=fsl_ddr:ecc=off
    
    
    Memory testing options for mpc85xx
    ==================================
    1. Memory test can be done once U-boot prompt comes up using mtest, or
    2. Memory test can be done with Power-On-Self-Test function, activated at
       compile time.
    
       In order to enable the POST memory test, CONFIG_POST needs to be
       defined in board configuraiton header file. By default, POST memory test
       performs a fast test. A slow test can be enabled by changing the flag at
       compiling time. To test memory bigger than 2GB, 36BIT support is needed.
       Memory is tested within a 2GB window. TLBs are used to map the virtual 2GB
       window to physical address so that all physical memory can be tested.
    
    
    Combination of hwconfig
    =======================
    Hwconfig can be combined with multiple parameters, for example, on a supported
    platform
    
    
    hwconfig=fsl_ddr:addr_hash=true,ctlr_intlv=cacheline,bank_intlv=cs0_cs1_cs2_cs3,ecc=on
    
    Table for dynamic ODT for DDR3
    ==============================
    For single-slot system with quad-rank DIMM and dual-slot system, dynamic ODT may
    be needed, depending on the configuration. The numbers in the following tables are
    in Ohms.
    
    * denotes dynamic ODT
    
    Two slots system
    +-----------------------+----------+---------------+-----------------------------+-----------------------------+
    
    |     Configuration	|	   |DRAM controller|	       Slot 1		 |	      Slot 2	       |
    
    +-----------+-----------+----------+-------+-------+--------------+--------------+--------------+--------------+
    
    |	    |		|	   |	   |	   |	 Rank 1   |	Rank 2	 |   Rank 1	|    Rank 2    |
    +  Slot 1   |	Slot 2	|Write/Read| Write | Read  |-------+------+-------+------+-------+------+-------+------+
    |	    |		|	   |	   |	   | Write | Read | Write | Read | Write | Read | Write | Read |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 1  |  off  | 75    | 120   | off  | off   | off  | off	 | off	| 30	| 30   |
    
    | Dual Rank | Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 2  |  off  | 75    | off   | off  | 30	  | 30	 | 120	 | off	| off	| off  |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 1  |  off  | 75    | 120   | off  | off   | off  | 20	 | 20	|	|      |
    
    | Dual Rank |Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 2  |  off  | 75    | off   | off  | 20	  | 20	 | 120	*| off	|	|      |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 1  |  off  | 75    | 120  *| off  |	  |	 | off	 | off	| 20	| 20   |
    
    |Single Rank| Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 2  |  off  | 75    | 20    | 20   |	  |	 | 120	 | off	| off	| off  |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 1  |  off  | 75    | 120  *| off  |	  |	 | 30	 | 30	|	|      |
    
    |Single Rank|Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	    |		|  Slot 2  |  off  | 75    | 30    | 30   |	  |	 | 120	*| off	|	|      |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    | Dual Rank |	Empty	|  Slot 1  |  off  | 75    | 40    | off  | off   | off  |	 |	|	|      |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |   Empty   | Dual Rank |  Slot 2  |  off  | 75    |	   |	  |	  |	 | 40	 | off	| off	| off  |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |Single Rank|	Empty	|  Slot 1  |  off  | 75    | 40    | off  |	  |	 |	 |	|	|      |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |   Empty   |Single Rank|  Slot 2  |  off  | 75    |	   |	  |	  |	 | 40	 | off	|	|      |
    
    +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    Single slot system
    +-------------+------------+---------------+-----------------------------+-----------------------------+
    
    |	      |		   |DRAM controller|	 Rank 1   |    Rank 2	 |    Rank 3	|    Rank 4    |
    
    |Configuration| Write/Read |-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	      |		   | Write | Read  | Write | Read | Write | Read | Write | Read | Write | Read |
    
    +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	      |   R1	   | off   | 75    | 120  *| off  | off   | off  | 20	 | 20	| off	| off  |
    |	      |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    |	      |   R2	   | off   | 75    | off   | 20   | 120   | off  | 20	 | 20	| off	| off  |
    
    |  Quad Rank  |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	      |   R3	   | off   | 75    | 20    | 20   | off   | off  | 120	*| off	| off	| off  |
    |	      |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    |	      |   R4	   | off   | 75    | 20    | 20   | off   | off  | off	 | 20	| 120	| off  |
    
    +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
    
    |	      |   R1	   | off   | 75    | 40    | off  | off   | off  |
    
    |  Dual Rank  |------------+-------+-------+-------+------+-------+------+
    
    |	      |   R2	   | off   | 75    | 40    | off  | off   | off  |
    
    +-------------+------------+-------+-------+-------+------+-------+------+
    
    | Single Rank |   R1	   | off   | 75    | 40    | off  |
    
    +-------------+------------+-------+-------+-------+------+
    
    Reference http://www.xrosstalkmag.com/mag_issues/xrosstalk_oct08_final.pdf
    
    	  http://download.micron.com/pdf/technotes/ddr3/tn4108_ddr3_design_guide.pdf