[PATCH v2 00/10] sunxi: Update H616 DRAM driver

Jernej Skrabec
2023-04-10T08:21:25Z

Current H616 DRAM driver is completely customized to Orange Pi Zero2
board, which is only one of two H616 boards supported by U-Boot.
Needless to say, this is not ideal for adding new boards. With changes
in this series, all DDR3 boards are supported and all that is needed is
just vendor DRAM values extracted from Android image. New DRAM types
should also be easier to support, since a lot of constants used before
are not really DRAM type dependent.

Changes were verified by decompiling driver and generated values were
compared to previous, hard coded ones. This was done without dram_para
structures, so compiler was able to heavily optimize code and produce
constants.

Please take a look.

Best regards,
Jernej

Changes from v1:
- added tags
- updated dram config macros to have 8 or 4 nibbles
- renamed unknown macros to something useful when known
- removed unknown macro when not known what it does
- added patch 9 and 10 which introduces TPR2 (needed on one h313 board)
- update commit subjects

Jernej Skrabec (10):
sunxi: Fix write to H616 DRAM CR register
sunxi: cosmetic: Fix H616 DRAM driver code style
sunxi: parameterize H616 DRAM ODT values
sunxi: Convert H616 DRAM options to single setting
sunxi: Always configure ODT on H616 DRAM
sunxi: Make bit delay function in H616 DRAM code void
sunxi: Parameterize bit delay code in H616 DRAM driver
sunxi: Parameterize "unknown feature" in H616 DRAM driver
sunxi: Parameterize some of H616 DDR3 timings
sunxi: Add TPR2 parameter for H616 DRAM driver

.../include/asm/arch-sunxi/dram_sun50i_h616.h | 17 +
arch/arm/mach-sunxi/Kconfig | 83 +--
arch/arm/mach-sunxi/dram_sun50i_h616.c | 530 ++++++++++++------
.../mach-sunxi/dram_timings/h616_ddr3_1333.c | 20 +-
configs/orangepi_zero2_defconfig | 8 +-
configs/x96_mate_defconfig | 7 +
6 files changed, 442 insertions(+), 223 deletions(-)

--
2.40.0