public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] fsl/deepsleep: avoid the DDR restore from being optimized out
@ 2015-04-20  3:16 Yuantian.Tang at freescale.com
  2015-05-05 16:36 ` York Sun
  0 siblings, 1 reply; 2+ messages in thread
From: Yuantian.Tang at freescale.com @ 2015-04-20  3:16 UTC (permalink / raw)
  To: u-boot

From: Tang Yuantian <Yuantian.Tang@freescale.com>

Function dp_ddr_restore is to restore the first 128-byte space
of DDR. However those codes may be optimized out by compiler
since the destination address is at 0x0. In order to avoid
compiler optimization, we restore the space from high address,
which is not at 0x0, to low address.

Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
---
 board/freescale/common/mpc85xx_sleep.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/board/freescale/common/mpc85xx_sleep.c b/board/freescale/common/mpc85xx_sleep.c
index 9e4132c..e9cbd51 100644
--- a/board/freescale/common/mpc85xx_sleep.c
+++ b/board/freescale/common/mpc85xx_sleep.c
@@ -43,16 +43,16 @@ void fsl_dp_disable_console(void)
  */
 static void dp_ddr_restore(void)
 {
-	volatile u64 *src, *dst;
+	u64 *src, *dst;
 	int i;
 	struct ccsr_scfg __iomem *scfg = (void *)CONFIG_SYS_MPC85xx_SCFG;
 
 	/* get the address of ddr date from SPARECR3 */
-	src = (u64 *)in_be32(&scfg->sparecr[2]);
-	dst = (u64 *)CONFIG_SYS_SDRAM_BASE;
+	src = (u64 *)(in_be32(&scfg->sparecr[2]) + DDR_BUFF_LEN - 8);
+	dst = (u64 *)(CONFIG_SYS_SDRAM_BASE + DDR_BUFF_LEN - 8);
 
 	for (i = 0; i < DDR_BUFF_LEN / 8; i++)
-		*dst++ = *src++;
+		*dst-- = *src--;
 
 	flush_dcache();
 }
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [U-Boot] [PATCH] fsl/deepsleep: avoid the DDR restore from being optimized out
  2015-04-20  3:16 [U-Boot] [PATCH] fsl/deepsleep: avoid the DDR restore from being optimized out Yuantian.Tang at freescale.com
@ 2015-05-05 16:36 ` York Sun
  0 siblings, 0 replies; 2+ messages in thread
From: York Sun @ 2015-05-05 16:36 UTC (permalink / raw)
  To: u-boot



On 04/19/2015 08:16 PM, Yuantian.Tang at freescale.com wrote:
> From: Tang Yuantian <Yuantian.Tang@freescale.com>
> 
> Function dp_ddr_restore is to restore the first 128-byte space
> of DDR. However those codes may be optimized out by compiler
> since the destination address is at 0x0. In order to avoid
> compiler optimization, we restore the space from high address,
> which is not at 0x0, to low address.
> 
> Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
> ---

Applied to u-boot-mpc85xx master. Awaiting upstream.

York

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-05-05 16:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-20  3:16 [U-Boot] [PATCH] fsl/deepsleep: avoid the DDR restore from being optimized out Yuantian.Tang at freescale.com
2015-05-05 16:36 ` York Sun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox