aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishwanath BS <vishwanath.bs@ti.com>2010-10-05 10:05:34 -0400
committerPaul Walmsley <paul@pwsan.com>2010-12-22 11:53:26 -0500
commit9bf8391846db849509a6aa6f1f0659843ca30662 (patch)
treeb9fd51e24aa725cc206acb36fe8749027820c71f
parent60a0e5d972bad6927b63aede7a1cfe758b8251ad (diff)
OMAP3: SDRC: Add comments on Errata i520 for Global SW reset
This patch adds comments on precaution to be taken if Global Warm reset is used as the means to trigger system reset. Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com> [paul@pwsan.com: fixed typos, one mentioned by Sanjeev] Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Sanjeev Premi <premi@ti.com>
-rw-r--r--arch/arm/mach-omap2/prcm.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index c22e726de12..679bcd28576 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -74,6 +74,34 @@ void omap_prcm_arch_reset(char mode, const char *cmd)
74 WARN_ON(1); 74 WARN_ON(1);
75 } 75 }
76 76
77 /*
78 * As per Errata i520, in some cases, user will not be able to
79 * access DDR memory after warm-reset.
80 * This situation occurs while the warm-reset happens during a read
81 * access to DDR memory. In that particular condition, DDR memory
82 * does not respond to a corrupted read command due to the warm
83 * reset occurrence but SDRC is waiting for read completion.
84 * SDRC is not sensitive to the warm reset, but the interconnect is
85 * reset on the fly, thus causing a misalignment between SDRC logic,
86 * interconnect logic and DDR memory state.
87 * WORKAROUND:
88 * Steps to perform before a Warm reset is trigged:
89 * 1. enable self-refresh on idle request
90 * 2. put SDRC in idle
91 * 3. wait until SDRC goes to idle
92 * 4. generate SW reset (Global SW reset)
93 *
94 * Steps to be performed after warm reset occurs (in bootloader):
95 * if HW warm reset is the source, apply below steps before any
96 * accesses to SDRAM:
97 * 1. Reset SMS and SDRC and wait till reset is complete
98 * 2. Re-initialize SMS, SDRC and memory
99 *
100 * NOTE: Above work around is required only if arch reset is implemented
101 * using Global SW reset(GLOBAL_SW_RST). DPLL3 reset does not need
102 * the WA since it resets SDRC as well as part of cold reset.
103 */
104
77 /* XXX should be moved to some OMAP2/3 specific code */ 105 /* XXX should be moved to some OMAP2/3 specific code */
78 omap2_prm_set_mod_reg_bits(OMAP_RST_DPLL3_MASK, prcm_offs, 106 omap2_prm_set_mod_reg_bits(OMAP_RST_DPLL3_MASK, prcm_offs,
79 OMAP2_RM_RSTCTRL); 107 OMAP2_RM_RSTCTRL);