Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1503603 > unrolled thread
| Started by | Alexandre Belloni <alexandre.belloni@free-electrons.com> |
|---|---|
| First post | 2016-10-19 16:20 +0200 |
| Last post | 2016-10-19 18:40 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH v2 0/2] ARM: at91: properly handle LPDDR poweroff Alexandre Belloni <alexandre.belloni@free-electrons.com> - 2016-10-19 16:20 +0200
Re: [PATCH v2 0/2] ARM: at91: properly handle LPDDR poweroff Geert Uytterhoeven <geert@linux-m68k.org> - 2016-10-19 16:30 +0200
Re: [PATCH v2 0/2] ARM: at91: properly handle LPDDR poweroff Nicolas Ferre <nicolas.ferre@atmel.com> - 2016-10-19 16:40 +0200
[PATCH v2 1/2] ARM: at91: define LPDDR types Alexandre Belloni <alexandre.belloni@free-electrons.com> - 2016-10-19 18:40 +0200
| From | Alexandre Belloni <alexandre.belloni@free-electrons.com> |
|---|---|
| Date | 2016-10-19 16:20 +0200 |
| Subject | [PATCH v2 0/2] ARM: at91: properly handle LPDDR poweroff |
| Message-ID | <stZSN-2nd-7@gated-at.bofh.it> |
Hi, This patch set improves LPDDR support on SoCs using the Atmel MPDDR controller. LPDDR memories can only handle up to 400 uncontrolled power offs in their life. The proper power off sequence has to be applied before shutting down the SoC. I'm not too happy with the code duplication but this is a design choice that has been made before because both shutdown controllers are really different apart from the shutdown itself. I guess it is still better than slowly killing the LPDDR. Changes in v2: - Fix typos - Add a comment for the dummy read access of AT91_SHDW_CR - Properly set up pm_power_off in at91_poweroff_probe() Alexandre Belloni (2): ARM: at91: define LPDDR types power/reset: at91-poweroff: timely shutdown LPDDR memories drivers/power/reset/at91-poweroff.c | 54 +++++++++++++++++++++++++++++++- drivers/power/reset/at91-sama5d2_shdwc.c | 49 ++++++++++++++++++++++++++++- include/soc/at91/at91sam9_ddrsdr.h | 3 ++ 3 files changed, 104 insertions(+), 2 deletions(-) -- 2.9.3
[toc] | [next] | [standalone]
| From | Geert Uytterhoeven <geert@linux-m68k.org> |
|---|---|
| Date | 2016-10-19 16:30 +0200 |
| Message-ID | <su02v-2rf-113@gated-at.bofh.it> |
| In reply to | #1503603 |
On Wed, Oct 19, 2016 at 1:44 PM, Alexandre Belloni
<alexandre.belloni@free-electrons.com> wrote:
> LPDDR memories can only handle up to 400 uncontrolled power offs in their
> life. The proper power off sequence has to be applied before shutting down the
> SoC.
Interesting. How many boards have been killed during kernelci.org
operation?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Ferre <nicolas.ferre@atmel.com> |
|---|---|
| Date | 2016-10-19 16:40 +0200 |
| Message-ID | <su0ca-2v4-61@gated-at.bofh.it> |
| In reply to | #1503684 |
Le 19/10/2016 à 16:07, Geert Uytterhoeven a écrit : > On Wed, Oct 19, 2016 at 1:44 PM, Alexandre Belloni > <alexandre.belloni@free-electrons.com> wrote: >> LPDDR memories can only handle up to 400 uncontrolled power offs in their >> life. The proper power off sequence has to be applied before shutting down the >> SoC. > > Interesting. How many boards have been killed during kernelci.org > operation? The reason given above is usually the one that prevent manufacturers from using LPDDR on "evaluation" boards. So all Atmel boards use SDRAM/DDR2/DDR3 not the LP variants. Final products (and internal validation boards, obviously) though use these type of RAM so we must be prepared to handle them. Best regards, -- Nicolas Ferre
[toc] | [prev] | [next] | [standalone]
| From | Alexandre Belloni <alexandre.belloni@free-electrons.com> |
|---|---|
| Date | 2016-10-19 18:40 +0200 |
| Subject | [PATCH v2 1/2] ARM: at91: define LPDDR types |
| Message-ID | <su24i-3OH-29@gated-at.bofh.it> |
| In reply to | #1503603 |
The Atmel MPDDR controller support LPDDR2 and LPDDR3 memories, add their types. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- include/soc/at91/at91sam9_ddrsdr.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/soc/at91/at91sam9_ddrsdr.h b/include/soc/at91/at91sam9_ddrsdr.h index dc10c52e0e91..393362bdb860 100644 --- a/include/soc/at91/at91sam9_ddrsdr.h +++ b/include/soc/at91/at91sam9_ddrsdr.h @@ -81,6 +81,7 @@ #define AT91_DDRSDRC_LPCB_POWER_DOWN 2 #define AT91_DDRSDRC_LPCB_DEEP_POWER_DOWN 3 #define AT91_DDRSDRC_CLKFR (1 << 2) /* Clock Frozen */ +#define AT91_DDRSDRC_LPDDR2_PWOFF (1 << 3) /* LPDDR Power Off */ #define AT91_DDRSDRC_PASR (7 << 4) /* Partial Array Self Refresh */ #define AT91_DDRSDRC_TCSR (3 << 8) /* Temperature Compensated Self Refresh */ #define AT91_DDRSDRC_DS (3 << 10) /* Drive Strength */ @@ -96,7 +97,9 @@ #define AT91_DDRSDRC_MD_SDR 0 #define AT91_DDRSDRC_MD_LOW_POWER_SDR 1 #define AT91_DDRSDRC_MD_LOW_POWER_DDR 3 +#define AT91_DDRSDRC_MD_LPDDR3 5 #define AT91_DDRSDRC_MD_DDR2 6 /* [SAM9 Only] */ +#define AT91_DDRSDRC_MD_LPDDR2 7 #define AT91_DDRSDRC_DBW (1 << 4) /* Data Bus Width */ #define AT91_DDRSDRC_DBW_32BITS (0 << 4) #define AT91_DDRSDRC_DBW_16BITS (1 << 4) -- 2.9.3
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web