[U-Boot] [PATCH] arm: omap: emif: Support for ddr3 after warm reset
Lokesh Vutla
lokeshvutla at ti.com
Wed Mar 27 06:43:55 CET 2013
On Wednesday 27 March 2013 10:41 AM, Sricharan R wrote:
> On Wednesday 27 March 2013 09:55 AM, Lokesh Vutla wrote:
>> EMIF supports a global warm reset mode, during which the
>> EMIF keeps the SDRAM content. But if leveling is enabled
>> at the time of warm reset for DDR3, the following steps
>> needs to be done after warm reset:
>> 1) Keep EMIF in self refresh mode.
>> 2) Reset PHY to bring back the PHY to a known state.
>> 3) Start Levelling procedure.
>> Doing the same.
>> And also enabling DLL lock and code output after warm reset.
>>
>
> Should the $subject be something like
> Fix DDR3 initialisation after warm reset ?
Ok I ll change it.
>
>> Tested on OMAP5432 ES2.0
>>
>> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
>> ---
>> arch/arm/cpu/armv7/omap-common/emif-common.c | 12 +++++++++---
>> 1 file changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/cpu/armv7/omap-common/emif-common.c b/arch/arm/cpu/armv7/omap-common/emif-common.c
>> index 9eb1279..8811958 100644
>> --- a/arch/arm/cpu/armv7/omap-common/emif-common.c
>> +++ b/arch/arm/cpu/armv7/omap-common/emif-common.c
>> @@ -1072,6 +1072,12 @@ static void do_sdram_init(u32 base)
>> else
>> ddr3_init(base, regs);
>> }
>> + if (!in_sdram && warm_reset() &&
>> + (emif_sdram_type() == EMIF_SDRAM_TYPE_DDR3)) {
>> + set_lpmode_selfrefresh(base);
>> + emif_reset_phy(base);
>> + ddr3_leveling(base, regs);
>> + }
>>
>
> Why do we need !in_sdram check here ?. Otherwise, good..
DDR3 leveling cannot happen from SDRAM. So I kept a check here.
Thanks and Regards,
Lokesh
>
> Reviewed-by: R Sricharan <r.sricharan at ti.com>
>
>
> Regards,
> Sricharan
>
More information about the U-Boot
mailing list