Add new, common setup code for QC/A WiSoC DDR controllers
authorPiotr Dymacz <pepe2k@gmail.com>
Sun, 20 Mar 2016 14:09:33 +0000 (15:09 +0100)
committerPiotr Dymacz <pepe2k@gmail.com>
Sun, 20 Mar 2016 14:09:33 +0000 (15:09 +0100)
commit3527b8cc2a989e51197831eab1f941429f8ffeea
treeb92ec547d301740f884d74d1d3fa108f2fea9a9a
parenta623ffedbfb4ebc9257d358ead0fb8453f8ad7e8
Add new, common setup code for QC/A WiSoC DDR controllers

In old code, based on Qualcomm/Atheros (Q)SDK, most of the
DDR controller related registers where setup with static
values, based on selected PLL/clocks configuration or
chosen board type.

New setup code is universal and configures DDR controller
based on real hardware state (clocks, memory type).

For now, the code doesn't support SDRAM memory type,
as I don't have access to any QC/A based platform with
such type of memory chip. But it seems, that newer QC/A
WiSoCs don't support it (excluding QCA953x v1?) anyway.

New code contains also fixed DQS delay tap controller tune
for AR93xx WiSoCs, which for now is used only for AR933x,
as it turned out that DDR BITS is available also on AR934x.

In old code, tune routine starts with some hardcoded values,
which leads to an assumption that this starting value is
inside working tap range. As it turned out after some tests,
this assumption is wrong and on some real hardware platforms
gives wrong delay tap values, outside correct/working range.

New code was tested on many different QC/A platforms, but
will need changes and fixes in future, mostly because of
missing (at the moment) descriptions of DDR BIST registers.
u-boot/board/ar7240/ap143/ap143.c
u-boot/board/ar7240/db12x/db12x.c
u-boot/cpu/mips/ar7240/Makefile
u-boot/cpu/mips/ar7240/ar933x_dram.c [deleted file]
u-boot/cpu/mips/ar7240/meminit.c [deleted file]
u-boot/cpu/mips/ar7240/qca_dram.c
u-boot/include/soc/qca_dram.h
u-boot/include/soc/qca_soc_common.h