Commit d892b2dbb4087a26778bfd42470c3ea7d0e2b6aa
Committed by
Kim Phillips
1 parent
d47d49cc37
Exists in
master
and in
54 other branches
mpc83xx: MPC8360E-RDK: rework ddr setup, enable ecc
Current DDR setup easily causes memory corruption, this patch fixes it. Also fix TIMING_CFG0_MRS_CYC definition. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Showing 2 changed files with 38 additions and 13 deletions Side-by-side Diff
include/configs/MPC8360ERDK.h
... | ... | @@ -89,8 +89,8 @@ |
89 | 89 | |
90 | 90 | #define CFG_83XX_DDR_USES_CS0 |
91 | 91 | |
92 | -#undef CONFIG_DDR_ECC /* support DDR ECC function */ | |
93 | -#undef CONFIG_DDR_ECC_CMD /* Use DDR ECC user commands */ | |
92 | +#define CONFIG_DDR_ECC /* support DDR ECC function */ | |
93 | +#define CONFIG_DDR_ECC_CMD /* Use DDR ECC user commands */ | |
94 | 94 | |
95 | 95 | /* |
96 | 96 | * DDRCDR - DDR Control Driver Register |
97 | 97 | |
98 | 98 | |
... | ... | @@ -104,20 +104,44 @@ |
104 | 104 | */ |
105 | 105 | #define CONFIG_DDR_II |
106 | 106 | #define CFG_DDR_SIZE 256 /* MB */ |
107 | -#define CFG_DDRCDR 0x80080001 | |
108 | 107 | #define CFG_DDR_CS0_BNDS 0x0000000f |
109 | 108 | #define CFG_DDR_CS0_CONFIG (CSCONFIG_EN | CSCONFIG_ROW_BIT_13 | \ |
110 | - CSCONFIG_COL_BIT_10) | |
111 | -#define CFG_DDR_TIMING_0 0x00330903 | |
112 | -#define CFG_DDR_TIMING_1 0x3835a322 | |
113 | -#define CFG_DDR_TIMING_2 0x00104909 | |
114 | -#define CFG_DDR_TIMING_3 0x00000000 | |
115 | -#define CFG_DDR_CLK_CNTL 0x02000000 | |
109 | + CSCONFIG_COL_BIT_10 | CSCONFIG_ODT_WR_ACS) | |
110 | +#define CFG_DDR_SDRAM_CFG (SDRAM_CFG_SDRAM_TYPE_DDR2 | SDRAM_CFG_ECC_EN) | |
111 | +#define CFG_DDR_SDRAM_CFG2 0x00001000 | |
112 | +#define CFG_DDR_CLK_CNTL (DDR_SDRAM_CLK_CNTL_CLK_ADJUST_05) | |
113 | +#define CFG_DDR_INTERVAL ((256 << SDRAM_INTERVAL_BSTOPRE_SHIFT) | \ | |
114 | + (1115 << SDRAM_INTERVAL_REFINT_SHIFT)) | |
116 | 115 | #define CFG_DDR_MODE 0x47800432 |
117 | 116 | #define CFG_DDR_MODE2 0x8000c000 |
118 | -#define CFG_DDR_INTERVAL 0x045b0100 | |
119 | -#define CFG_DDR_SDRAM_CFG 0x03000000 | |
120 | -#define CFG_DDR_SDRAM_CFG2 0x00001000 | |
117 | + | |
118 | +#define CFG_DDR_TIMING_0 ((2 << TIMING_CFG0_MRS_CYC_SHIFT) | \ | |
119 | + (9 << TIMING_CFG0_ODT_PD_EXIT_SHIFT) | \ | |
120 | + (3 << TIMING_CFG0_PRE_PD_EXIT_SHIFT) | \ | |
121 | + (3 << TIMING_CFG0_ACT_PD_EXIT_SHIFT) | \ | |
122 | + (0 << TIMING_CFG0_WWT_SHIFT) | \ | |
123 | + (0 << TIMING_CFG0_RRT_SHIFT) | \ | |
124 | + (0 << TIMING_CFG0_WRT_SHIFT) | \ | |
125 | + (0 << TIMING_CFG0_RWT_SHIFT)) | |
126 | + | |
127 | +#define CFG_DDR_TIMING_1 (( TIMING_CFG1_CASLAT_30) | \ | |
128 | + ( 2 << TIMING_CFG1_WRTORD_SHIFT) | \ | |
129 | + ( 2 << TIMING_CFG1_ACTTOACT_SHIFT) | \ | |
130 | + ( 3 << TIMING_CFG1_WRREC_SHIFT) | \ | |
131 | + (10 << TIMING_CFG1_REFREC_SHIFT) | \ | |
132 | + ( 3 << TIMING_CFG1_ACTTORW_SHIFT) | \ | |
133 | + ( 8 << TIMING_CFG1_ACTTOPRE_SHIFT) | \ | |
134 | + ( 3 << TIMING_CFG1_PRETOACT_SHIFT)) | |
135 | + | |
136 | +#define CFG_DDR_TIMING_2 ((9 << TIMING_CFG2_FOUR_ACT_SHIFT) | \ | |
137 | + (4 << TIMING_CFG2_CKE_PLS_SHIFT) | \ | |
138 | + (2 << TIMING_CFG2_WR_DATA_DELAY_SHIFT) | \ | |
139 | + (2 << TIMING_CFG2_RD_TO_PRE_SHIFT) | \ | |
140 | + (2 << TIMING_CFG2_WR_LAT_DELAY_SHIFT) | \ | |
141 | + (0 << TIMING_CFG2_ADD_LAT_SHIFT) | \ | |
142 | + (0 << TIMING_CFG2_CPO_SHIFT)) | |
143 | + | |
144 | +#define CFG_DDR_TIMING_3 0x00000000 | |
121 | 145 | |
122 | 146 | /* |
123 | 147 | * Memory test |
include/mpc83xx.h
... | ... | @@ -881,7 +881,7 @@ |
881 | 881 | #define TIMING_CFG0_PRE_PD_EXIT_SHIFT 16 |
882 | 882 | #define TIMING_CFG0_ODT_PD_EXIT 0x00000F00 |
883 | 883 | #define TIMING_CFG0_ODT_PD_EXIT_SHIFT 8 |
884 | -#define TIMING_CFG0_MRS_CYC 0x00000F00 | |
884 | +#define TIMING_CFG0_MRS_CYC 0x0000000F | |
885 | 885 | #define TIMING_CFG0_MRS_CYC_SHIFT 0 |
886 | 886 | |
887 | 887 | /* TIMING_CFG_1 - DDR SDRAM Timing Configuration 1 |
... | ... | @@ -904,6 +904,7 @@ |
904 | 904 | #define TIMING_CFG1_WRTORD_SHIFT 0 |
905 | 905 | #define TIMING_CFG1_CASLAT_20 0x00030000 /* CAS latency = 2.0 */ |
906 | 906 | #define TIMING_CFG1_CASLAT_25 0x00040000 /* CAS latency = 2.5 */ |
907 | +#define TIMING_CFG1_CASLAT_30 0x00050000 /* CAS latency = 2.5 */ | |
907 | 908 | |
908 | 909 | /* TIMING_CFG_2 - DDR SDRAM Timing Configuration 2 |
909 | 910 | */ |