u-boot/arch/arm/cpu
Siarhei Siamashka f8e88b6837 sunxi: dram: Fix CKE delay handling for sun4i/sun5i
Before driving the CKE pin (Clock Enable) high, the DDR3 spec requires
to wait for additional 500 us after the RESET pin is de-asserted.

The DRAM controller takes care of this delay by itself, using a
configurable counter in the SDR_IDCR register. This works in the same
way on sun4i/sun5i/sun7i hardware (even the default register value
0x00c80064 is identical). Except that the counter is ticking a bit
slower on sun7i (3 DRAM clock cycles instead of 2), resulting in
longer actual delays for the same settings.

This patch configures the SDR_IDCR register for all sun4i/sun5i/sun7i
SoC variants and not just for sun7i alone. Also an explicit udelay(500)
is added immediately after DDR3 reset for extra safety. This is a
duplicated functionality. But since we don't have perfect documentation,
it may be reasonable to play safe. Half a millisecond boot time increase
is not that significant. Boot time can be always optimized later.
Preferebly by the people, who have the hardware equipment to check the
actual signals on the RESET and CKE lines and verify all the timings.

The old code did not configure the SDR_IDCR register for sun4i/sun5i,
but performed the DDR3 reset very early for sun4i/sun5i. This resulted
in a larger time gap between the DDR3 reset and the DDR3 initialization
steps and reduced the chances of CKE delay timing violation to cause
real troubles.

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2014-08-12 08:42:32 +02:00
..
arm720t spl: consolidate arch/arm/include/asm/arch-*/spl.h 2014-06-06 10:05:34 +02:00
arm920t arm: ep9315: Return back Cirrus Logic EDB9315A board support 2014-07-04 23:45:48 +02:00
arm926ejs ARM: kirkwood: add mvsdio driver 2014-08-01 18:44:56 +03:00
arm946es arm: move exception handling out of start.S files 2014-05-15 16:24:53 +02:00
arm1136 arm: move exception handling out of start.S files 2014-05-15 16:24:53 +02:00
arm1176 arm: move exception handling out of start.S files 2014-05-15 16:24:53 +02:00
arm_intcm arm: move exception handling out of start.S files 2014-05-15 16:24:53 +02:00
armv7 sunxi: dram: Fix CKE delay handling for sun4i/sun5i 2014-08-12 08:42:32 +02:00
armv8 ARMv8/ls2085a_emu: Add LS2085A emulator and simulator board support 2014-07-04 19:48:41 +02:00
at91-common ARM: atmel: switch to main crystal osc for SPL boot 2014-05-27 00:10:40 +02:00
pxa arm: move exception handling out of start.S files 2014-05-15 16:24:53 +02:00
sa1100 arm: move exception handling out of start.S files 2014-05-15 16:24:53 +02:00
tegra-common ARM: tegra: add function to enable input clamping on tristate 2014-05-13 10:41:31 -07:00
tegra20-common Merge branch 'u-boot/master' 2014-05-09 11:50:14 +02:00
tegra30-common ARM: tegra: Tegra30 pinmux cleanup 2014-04-17 08:41:05 -07:00
tegra114-common ARM: tegra: Tegra114 pinmux cleanup 2014-04-17 08:41:06 -07:00
tegra124-common ARM: tegra: Tegra124 pinmux cleanup 2014-04-17 08:41:06 -07:00
Makefile kbuild: use boolean macros to select tegra*-common directory 2014-04-17 17:44:35 -04:00
u-boot-spl.lds arm: move exception handling out of start.S files 2014-05-15 16:24:53 +02:00
u-boot.lds ARM: HYP/non-sec: add separate section for secure code 2014-07-28 17:07:23 +02:00