[U-Boot] [PATCH 0/7] sunxi: Add H6 DDR3 DRAM support

hex dump hexdump0815 at gmail.com
Sat Jun 22 22:28:16 UTC 2019


On Fri, Jun 21, 2019 at 3:54 PM Andre Przywara <andre.przywara at arm.com> wrote:
>
> So far the SPL DRAM driver for the Allwinner H6 SoC only supports
> LPDDR3 DRAM chips, which are used on most single board computers with
> this SoC.
> There are some TV boxes with the H6 out now, but most of them are
> using DDR3 DRAM instead of LPDDR3.
>
> This series extends the existing H6 DRAM driver to cover DDR3 DRAMs
> as well. The information used in these patches is from:
> - register dumps after Allwinner's boot0 (libdram) has initialised
>   the DRAM
> - some disassembly of the libdram library
> - timing parameters as found in the boot0 binary
> - comparison with Xilinx ZynqMP DRAM controller documentation
>
> The box I played with (Eachlink H6 Mini) has 3GB of DDR3-1600 chips and
> runs at 840 MHz, however I couldn't get it to work with these parameters.
> Instead Jernej suggested to use a lower clock and adjust some timing
> parameters, which made it work for me as well.
>
> Many thanks to Jernej Skrabec for his help, also to others who helped
> with testing and experiments.
>
> The first two patches contain some fixes for the existing driver.
> Patch 3 moves the existing LPDDR3 timing parameters into a separate file,
> patch 5 introduces the respective DDR3 timings, patch 6 adds some
> generic delay lines values.
> Patch 4 enhances the DRAM controller driver to program DDR3 specific
> registers as well and use different settings on other registers.
> The final patch introduces support for the Eachlink H6 Mini TV box, with
> the usual device tree and defconfig file.
>
> Please have a look and comment!
>
> Cheers,
> Andre.
>
> Andre Przywara (6):
>   sunxi: H6: DRAM: avoid memcpy() on MMIO registers
>   sunxi: H6: DRAM: follow recommended PHY init algorithm
>   sunxi: H6: move LPDDR3 timing definition into separate file
>   sunxi: H6: Add DDR3 support to DRAM controller driver
>   sunxi: H6: Add DDR3-1333 timings
>   sunxi: H6: Add basic Eachlink H6 Mini support
>
> Jernej Skrabec (1):
>   sunxi: H6: Add DDR3 DRAM delay values
>
>  arch/arm/dts/Makefile                             |   1 +
>  arch/arm/dts/sun50i-h6-eachlink-h6-mini.dts       | 116 +++++++++++
>  arch/arm/include/asm/arch-sunxi/dram_sun50i_h6.h  |  35 ++++
>  arch/arm/mach-sunxi/Kconfig                       |  18 +-
>  arch/arm/mach-sunxi/Makefile                      |   1 +
>  arch/arm/mach-sunxi/dram_sun50i_h6.c              | 240 +++++++---------------
>  arch/arm/mach-sunxi/dram_timings/Makefile         |   2 +
>  arch/arm/mach-sunxi/dram_timings/h6_ddr3_1333.c   | 144 +++++++++++++
>  arch/arm/mach-sunxi/dram_timings/h6_lpddr3_1333.c | 132 ++++++++++++
>  configs/eachlink_h6_mini_defconfig                |  17 ++
>  configs/orangepi_one_plus_defconfig               |   1 +
>  configs/pine_h64_defconfig                        |   1 +
>  12 files changed, 537 insertions(+), 171 deletions(-)
>  create mode 100644 arch/arm/dts/sun50i-h6-eachlink-h6-mini.dts
>  create mode 100644 arch/arm/mach-sunxi/dram_timings/h6_ddr3_1333.c
>  create mode 100644 arch/arm/mach-sunxi/dram_timings/h6_lpddr3_1333.c
>  create mode 100644 configs/eachlink_h6_mini_defconfig
>
> --
> 2.14.5
>
Tested-by: hexdump <hexdump0815 at googlemail.com>

BEFORE (no patches from this series applied):
my qplus (Q+) h6 tv box (seems to be the same hardware as the eachlink
h6 mini of andre) did hang early on in the spl during the memory setup
with mainline uboot

AFTER (the patch applied):
my qplus (Q+) h6 tv box boots perfectly fine with mainline uboot - no
more problems with the memory setup - thanks a lot for this patrch
series

best wishes - hexdump


More information about the U-Boot mailing list