|
@@ -91,8 +91,19 @@
|
|
|
* new SDRC_ACTIM_CTRL_B_1 register contents
|
|
|
* new SDRC_MR_1 register value
|
|
|
*
|
|
|
- * If the param SDRC_RFR_CTRL_1 is 0, the parameters
|
|
|
- * are not programmed into the SDRC CS1 registers
|
|
|
+ * If the param SDRC_RFR_CTRL_1 is 0, the parameters are not programmed into
|
|
|
+ * the SDRC CS1 registers
|
|
|
+ *
|
|
|
+ * NOTE: This code no longer attempts to program the SDRC AC timing and MR
|
|
|
+ * registers. This is because the code currently cannot ensure that all
|
|
|
+ * L3 initiators (e.g., sDMA, IVA, DSS DISPC, etc.) are not accessing the
|
|
|
+ * SDRAM when the registers are written. If the registers are changed while
|
|
|
+ * an initiator is accessing SDRAM, memory can be corrupted and/or the SDRC
|
|
|
+ * may enter an unpredictable state. In the future, the intent is to
|
|
|
+ * re-enable this code in cases where we can ensure that no initiators are
|
|
|
+ * touching the SDRAM. Until that time, users who know that their use case
|
|
|
+ * can satisfy the above requirement can enable the CONFIG_OMAP3_SDRC_AC_TIMING
|
|
|
+ * option.
|
|
|
*/
|
|
|
ENTRY(omap3_sram_configure_core_dpll)
|
|
|
stmfd sp!, {r1-r12, lr} @ store regs to stack
|
|
@@ -219,6 +230,7 @@ configure_sdrc:
|
|
|
ldr r12, omap_sdrc_rfr_ctrl_0_val @ fetch value from SRAM
|
|
|
ldr r11, omap3_sdrc_rfr_ctrl_0 @ fetch addr from SRAM
|
|
|
str r12, [r11] @ store
|
|
|
+#ifdef CONFIG_OMAP3_SDRC_AC_TIMING
|
|
|
ldr r12, omap_sdrc_actim_ctrl_a_0_val
|
|
|
ldr r11, omap3_sdrc_actim_ctrl_a_0
|
|
|
str r12, [r11]
|
|
@@ -228,11 +240,13 @@ configure_sdrc:
|
|
|
ldr r12, omap_sdrc_mr_0_val
|
|
|
ldr r11, omap3_sdrc_mr_0
|
|
|
str r12, [r11]
|
|
|
+#endif
|
|
|
ldr r12, omap_sdrc_rfr_ctrl_1_val
|
|
|
cmp r12, #0 @ if SDRC_RFR_CTRL_1 is 0,
|
|
|
beq skip_cs1_prog @ do not program cs1 params
|
|
|
ldr r11, omap3_sdrc_rfr_ctrl_1
|
|
|
str r12, [r11]
|
|
|
+#ifdef CONFIG_OMAP3_SDRC_AC_TIMING
|
|
|
ldr r12, omap_sdrc_actim_ctrl_a_1_val
|
|
|
ldr r11, omap3_sdrc_actim_ctrl_a_1
|
|
|
str r12, [r11]
|
|
@@ -242,6 +256,7 @@ configure_sdrc:
|
|
|
ldr r12, omap_sdrc_mr_1_val
|
|
|
ldr r11, omap3_sdrc_mr_1
|
|
|
str r12, [r11]
|
|
|
+#endif
|
|
|
skip_cs1_prog:
|
|
|
ldr r12, [r11] @ posted-write barrier for SDRC
|
|
|
bx lr
|