From: Sonic Zhang <sonic.adi@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 11/11] blackfin: bf60x: add resume from hibernate
Date: Thu, 21 Feb 2013 19:06:49 +0800 [thread overview]
Message-ID: <1361444809-22035-12-git-send-email-sonic.adi@gmail.com> (raw)
In-Reply-To: <1361444809-22035-1-git-send-email-sonic.adi@gmail.com>
From: Steven Miao <realmz6@gmail.com>
Add Bf60x resume from hibernate support
Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>
---
Changes in v4: None
Changes in v3: None
Changes in v2:
- Fix checkpatch issues
arch/blackfin/cpu/initcode.c | 46 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/arch/blackfin/cpu/initcode.c b/arch/blackfin/cpu/initcode.c
index ce9a435..1a06680 100644
--- a/arch/blackfin/cpu/initcode.c
+++ b/arch/blackfin/cpu/initcode.c
@@ -509,6 +509,11 @@ maybe_self_refresh(ADI_BOOT_DATA *bs)
return false;
#ifdef __ADSPBF60x__
+ /* resume from hibernate, return false let ddr initialize */
+ if ((bfin_read32(DPM0_STAT) & 0xF0) == 0x50) {
+ serial_putc('b');
+ return false;
+ }
#else /* __ADSPBF60x__ */
@@ -827,6 +832,7 @@ program_memory_controller(ADI_BOOT_DATA *bs, bool put_into_srfs)
while (!(bfin_read_DMC0_STAT() & DLLCALDONE))
continue;
serial_putc('!');
+
#else /* __ADSPBF60x__ */
/* Program the external memory controller before we come out of
@@ -894,7 +900,46 @@ check_hibernation(ADI_BOOT_DATA *bs, u16 vr_ctl, bool put_into_srfs)
return;
serial_putc('b');
+#ifdef __ADSPBF60x__
+ if (bfin_read32(DPM0_RESTORE0) != 0) {
+ uint32_t reg = bfin_read_DMC0_CTL();
+ reg &= ~0x8;
+ bfin_write_DMC0_CTL(reg);
+
+ while ((bfin_read_DMC0_STAT() & 0x8))
+ continue;
+ while (!(bfin_read_DMC0_STAT() & 0x1))
+ continue;
+ serial_putc('z');
+ uint32_t *hibernate_magic = bfin_read32(DPM0_RESTORE4);
+ SSYNC(); /* make sure memory controller is done */
+ if (hibernate_magic[0] == 0xDEADBEEF) {
+ serial_putc('c');
+ SSYNC();
+ bfin_write_EVT15(hibernate_magic[1]);
+ bfin_write_IMASK(EVT_IVG15);
+ __asm__ __volatile__ (
+ /* load reti early to avoid anomaly 281 */
+ "reti = %2;"
+ /* clear hibernate magic */
+ "[%0] = %1;"
+ /* load stack pointer */
+ "SP = [%0 + 8];"
+ /* lower ourselves from reset ivg to ivg15 */
+ "raise 15;"
+ "nop;nop;nop;"
+ "rti;"
+ :
+ : "p"(hibernate_magic),
+ "d"(0x2000 /* jump.s 0 */),
+ "d"(0xffa00000)
+ );
+ }
+
+
+ }
+#else
/* Are we coming out of hibernate (suspend to memory) ?
* The memory layout is:
* 0x0: hibernate magic for anomaly 307 (0xDEADBEEF)
@@ -927,6 +972,7 @@ check_hibernation(ADI_BOOT_DATA *bs, u16 vr_ctl, bool put_into_srfs)
}
serial_putc('d');
}
+#endif
serial_putc('e');
}
--
1.7.0.4
next prev parent reply other threads:[~2013-02-21 11:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-21 11:06 [U-Boot] [PATCH v4 0/11] Add BF60x processor support to Blackfin architecture Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 01/11] blackfin: bf60x: new processor header files Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 02/11] blackfin: bf60x: Port blackfin core architecture code to boot on bf60x Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 03/11] blackfin: bf60x: add serial support Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 04/11] blackfin: bf60x: add dma support Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 05/11] blackfin: bf60x: support big cplb page Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 06/11] blackfin: bf60x: add gpio support Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 07/11] blackfin: bf60x: add board and headers files to support bf609 Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 08/11] blackfin: bf60x: add rsi/sdh support Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 09/11] blackfin: add bf6xx spi driver Sonic Zhang
2013-02-21 11:06 ` [U-Boot] [PATCH v4 10/11] blackfin: bf60x: add hw watchdog support Sonic Zhang
2013-02-21 11:06 ` Sonic Zhang [this message]
2013-02-28 21:22 ` [U-Boot] [PATCH v4 0/11] Add BF60x processor support to Blackfin architecture Tom Rini
2013-03-01 2:10 ` Sonic Zhang
2013-03-01 14:16 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1361444809-22035-12-git-send-email-sonic.adi@gmail.com \
--to=sonic.adi@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox