[PATCH v3 0/9] mips: Add Octeon DDR4 init code

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Sat Sep 19 22:04:48 CEST 2020


Am Mittwoch, den 02.09.2020, 08:29 +0200 schrieb Stefan Roese:
> This patch adds the DDR4 init code. It is ported from the 2013 Cavium /
> Marvell U-Boot version with no functional change. This was done
> intentionally, as this code is very large and complex and is known to
> work on many boards "as-is". So any functional change might have
> introduced (hidden) incompatibilities.
> 
> Please note that the code has undergone many hours (read many days) of
> code cleanup and restructuring. Unfortunately its still not 100%
> checkpatch clean, as some warnings and checks can practically not be
> removed / addresses, like these here:
> 
> CHECK: Prefer kernel type 's8' over 'int8_t'
> -> 's8' can't be used on MIPS platforms, as its a register macro
> 
> or:
> 
> WARNING: Too many leading tabs - consider code refactoring
> +                                               while (xor != 0) {
> -> I've restructured the code already and its very hard to remove all
>    these "Too many leading tabs" warnings.
> 
> or other warnings / checks.
> 
> But compared to the original code in much better shape (checkpatch
> wise). I would have liked to include a checkpatch summary in this cover-
> letter, showing the "before" (original code) and "after" (this code)
> numbers, but unfortunately currently running checkpatch on the really
> big file (octeon3_lmc.c) leads to many false errors. I can only suspect
> that checkpatch has an issue handling this big file because of its size.
> 
> This code is tested on the Octeon3 EBB7304 EVK and works without any
> known issues with 1 or 2 DDR4 DIMM configurations (8 & 16 GiB).
> 
> Thanks,
> Stefan
> 
> Changes in v3:
> - Remove "https://spdx.org/licenses" line
> - Move multiple comment blocks into one
> - Remove "https://spdx.org/licenses" line
> - Remove "https://spdx.org/licenses" line
> - Remove inclusion of "common.h"
> - Remove duplicate comment line
> - Remove "test-only" comment (leftover after cleanup)
> - Remove "https://spdx.org/licenses" line
> - Remove inclusion of "common.h"
> - Remove all internal defines that resulted in dead code, as they have
>   never been changed via external config files or Kconfig. This results
>   in a smaller (~13KiB of source code saved, > 450 lines removed) and
>   much cleaner code base.
> - Remove "https://spdx.org/licenses" line
> - Remove "https://spdx.org/licenses" line
> - Remove inclusion of "common.h"
> 
> Changes in v2:
> - Some unsupported Octeon families removed (only Octeon 2 & 3 supported
>   in general)
> - Some unsupported Octeon families removed (only Octeon 2 & 3 supported
>   in general)
> - Use readq/writeq in cvmx_read64_uint64/cvmx_write64_uint64 instead of
>   readl/writel
> - Don't re-init after relocation
> - Some unsupported Octeon families removed (only Octeon 2 & 3 supported
>   in general)
> - Only map 256MiB of RAM in U-Boot and print total size as well
> - Add year to copyright line
> 
> Aaron Williams (6):
>   mips: octeon: Add octeon-model.h header
>   mips: octeon Add cvmx/cvmx-lmcx-defs.h header
>   mips: octeon: Add octeon_ddr.h header
>   ram: octeon: Add MIPS Octeon3 DDR4 support (part 1/3)
>   ram: octeon: Add MIPS Octeon3 DDR4 support (part 2/3)
>   ram: octeon: Add MIPS Octeon3 DDR4 support (part 3/3)
> 
> Stefan Roese (3):
>   mips: octeon: dts: mrvl,cn73xx.dtsi: Add memory controller DT node
>   mips: octeon: dram.c: Add RAM driver support
>   mips: octeon: octeon_ebb7304: Add DDR4 support
> 
>  arch/mips/dts/mrvl,cn73xx.dtsi                |    17 +
>  arch/mips/mach-octeon/dram.c                  |    72 +-
>  .../include/mach/cvmx/cvmx-lmcx-defs.h        |  4574 +++++++
>  .../mach-octeon/include/mach/octeon-model.h   |   313 +
>  .../mach-octeon/include/mach/octeon_ddr.h     |   982 ++
>  board/Marvell/octeon_ebb7304/board.c          |    25 +-
>  board/Marvell/octeon_ebb7304/board_ddr.h      |   447 +
>  configs/octeon_ebb7304_defconfig              |     3 +
>  drivers/ram/Kconfig                           |     1 +
>  drivers/ram/Makefile                          |     2 +
>  drivers/ram/octeon/Kconfig                    |    17 +
>  drivers/ram/octeon/Makefile                   |     8 +
>  drivers/ram/octeon/dimm_spd_eeprom.c          |   407 +
>  drivers/ram/octeon/octeon3_lmc.c              | 11030 ++++++++++++++++
>  drivers/ram/octeon/octeon_ddr.c               |  2728 ++++
>  include/configs/octeon_common.h               |    11 +-
>  16 files changed, 20622 insertions(+), 15 deletions(-)
>  create mode 100644 arch/mips/mach-octeon/include/mach/cvmx/cvmx-lmcx-defs.h
>  create mode 100644 arch/mips/mach-octeon/include/mach/octeon-model.h
>  create mode 100644 arch/mips/mach-octeon/include/mach/octeon_ddr.h
>  create mode 100644 board/Marvell/octeon_ebb7304/board_ddr.h
>  create mode 100644 drivers/ram/octeon/Kconfig
>  create mode 100644 drivers/ram/octeon/Makefile
>  create mode 100644 drivers/ram/octeon/dimm_spd_eeprom.c
>  create mode 100644 drivers/ram/octeon/octeon3_lmc.c
>  create mode 100644 drivers/ram/octeon/octeon_ddr.c
> 

series applied to u-boot-mips/next, thanks.

-- 
- Daniel



More information about the U-Boot mailing list