u-boot/arch
Siarhei Siamashka 1a9717cbb3 sunxi: dram: Configurable MBUS clock speed (use PLL5 or PLL6)
The sun5i hardware (Allwinner A13) introduced configurable MBUS clock
speed. Allwinner A13 uses only 16-bit data bus width to connect the
external DRAM, which is halved compared to the 32-bit data bus of sun4i
(Allwinner A10), so it does not make much sense to clock a wider
internal bus at a very high speed. The Allwinner A13 manual specifies
300 MHz MBUS clock speed limit and 533 MHz DRAM clock speed limit. Newer
sun7i hardware (Allwinner A20) has a full width 32-bit external memory
interface again, but still keeps the MBUS clock speed configurable.
Clocking MBUS too low inhibits memory performance and one has to find
the optimal MBUS/DRAM clock speed ratio, which may depend on many
factors:
    http://linux-sunxi.org/A10_DRAM_Controller_Performance

This patch introduces a new 'mbus_clock' parameter for the 'dram_para'
struct and uses it as a desired MBUS clock speed target. If 'mbus_clock'
is not set, 300 MHz is used by default to match the older hardcoded
settings.

PLL5P and PLL6 are both evaluated as possible clock sources. Preferring
the one, which can provide higher clock frequency that is lower or
equal to the 'mbus_clock' target. In the case of a tie, PLL5P has
higher priority.

Attempting to set the MBUS clock speed has no effect on sun4i, but does
no harm either.

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:33 +02:00
..
arc kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
arm sunxi: dram: Configurable MBUS clock speed (use PLL5 or PLL6) 2014-08-12 08:42:33 +02:00
avr32 kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
blackfin kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
m68k kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
microblaze kconfig: add board Kconfig and defconfig files 2014-07-30 08:48:01 -04:00
mips kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
nds32 kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
nios2 kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
openrisc kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
powerpc Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx 2014-08-06 08:38:18 -04:00
sandbox kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
sh kconfig: add board Kconfig and defconfig files 2014-07-30 08:48:01 -04:00
sparc kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
x86 kconfig: delete redundant CONFIG_${ARCH} definition 2014-07-30 14:42:02 -04:00
.gitignore .gitignore: drop include/asm/proc from ignore pattern 2014-06-19 11:18:54 -04:00
Kconfig kconfig: add basic Kconfig files 2014-07-30 08:48:02 -04:00