mbox series

[v2,00/10] ARM: clearfog: add run-time board detect

Message ID cover.1579522639.git.baruch@tkos.co.il
Headers show
Series ARM: clearfog: add run-time board detect | expand

Message

Baruch Siach Jan. 20, 2020, 12:20 p.m. UTC
Newer revisions of SolidRun Clearfog Base/Pro carriers and Armada 388 SOM add 
EEPROM storage for board detection. This patch series adds support for reading 
EEPROM stored board information, and using it to set RAM training parameters, 
serdes configuration, and kernel DT selection.

The information is stored in EEPROM in TLV format defined for the ONIE project.

  https://opencomputeproject.github.io/onie/design-spec/hw_requirements.html

This series add the sys_eeprom command from ONIE carried U-Boot patch, with a 
number for changes as described in the patch log. The TLV format is unchanged.

This series also adds support for the newly introduced single board, Aramda 385 
based Clearfog GTR system. RAM configuration on that system requires both 
Armada 38x DDR clocks to be enabled. The first patch in this series adds the 
necessary code to allow per-board selection of DDR clock.

Changes in v2:

  * Fix checkpatch issues in TLV EEPROM code

  * Make TLV EEPROM API independent of static storage for compatibility with
    pre-relocation code

  * Rename sys_eeprom to less generic tlv_eeprom throughout the code

  * Drop typedefs

  * Move board level TLV parse code to the common/ sub-directory for easier
    reuse in other SolidRun platforms

  * Integrate fixes from Joel Johnson: add missing u-boot/crc.h include;
    select SPL_DRIVERS_MISC_SUPPORT; fix build with CMD_TLV_EEPROM unset

  * Add review tags from Stefan Roese

Baruch Siach (10):
  ddr: marvell: a38x: allow board specific clock out setup
  arm: mvebu: clearfog: enable both DDR clocks
  cmd: add tlv_eeprom command
  ARM: mvebu: clearfog: add EEPROM devices
  ARM: mvebu: clearfog: add support for EEPROM TLV info
  ARM: mvebu: clearfog: read basic TLV data
  ARM: mvebu: clearfog: print TLV stored product name
  ARM: mvebu: clearfog: run-time selection of DT file
  ARM: mvebu: clearfog: add Clearfog GTR support
  ARM: mvebu: clearfog: add Clearfog Base serdes configuration

 arch/arm/dts/armada-388-clearfog-u-boot.dtsi  |   12 +
 arch/arm/dts/armada-388-clearfog.dts          |    6 +
 .../arm/dts/armada-38x-solidrun-microsom.dtsi |    8 +
 arch/arm/mach-mvebu/Kconfig                   |    1 +
 board/solidrun/clearfog/clearfog.c            |   72 +-
 board/solidrun/common/Makefile                |    5 +
 board/solidrun/common/tlv_data.c              |  102 ++
 board/solidrun/common/tlv_data.h              |   18 +
 cmd/Kconfig                                   |   14 +
 cmd/Makefile                                  |    2 +
 cmd/tlv_eeprom.c                              | 1105 +++++++++++++++++
 configs/clearfog_defconfig                    |    4 +
 drivers/ddr/marvell/a38x/ddr3_training.c      |   10 +-
 drivers/ddr/marvell/a38x/ddr_topology_def.h   |    3 +
 include/tlv_eeprom.h                          |  164 +++
 15 files changed, 1522 insertions(+), 4 deletions(-)
 create mode 100644 board/solidrun/common/Makefile
 create mode 100644 board/solidrun/common/tlv_data.c
 create mode 100644 board/solidrun/common/tlv_data.h
 create mode 100644 cmd/tlv_eeprom.c
 create mode 100644 include/tlv_eeprom.h

Comments

Stefan Roese Jan. 21, 2020, 1 p.m. UTC | #1
On 20.01.20 13:20, Baruch Siach wrote:
> Newer revisions of SolidRun Clearfog Base/Pro carriers and Armada 388 SOM add
> EEPROM storage for board detection. This patch series adds support for reading
> EEPROM stored board information, and using it to set RAM training parameters,
> serdes configuration, and kernel DT selection.
> 
> The information is stored in EEPROM in TLV format defined for the ONIE project.
> 
>    https://opencomputeproject.github.io/onie/design-spec/hw_requirements.html
> 
> This series add the sys_eeprom command from ONIE carried U-Boot patch, with a
> number for changes as described in the patch log. The TLV format is unchanged.
> 
> This series also adds support for the newly introduced single board, Aramda 385
> based Clearfog GTR system. RAM configuration on that system requires both
> Armada 38x DDR clocks to be enabled. The first patch in this series adds the
> necessary code to allow per-board selection of DDR clock.
> 
> Changes in v2:
> 
>    * Fix checkpatch issues in TLV EEPROM code
> 
>    * Make TLV EEPROM API independent of static storage for compatibility with
>      pre-relocation code
> 
>    * Rename sys_eeprom to less generic tlv_eeprom throughout the code
> 
>    * Drop typedefs
> 
>    * Move board level TLV parse code to the common/ sub-directory for easier
>      reuse in other SolidRun platforms
> 
>    * Integrate fixes from Joel Johnson: add missing u-boot/crc.h include;
>      select SPL_DRIVERS_MISC_SUPPORT; fix build with CMD_TLV_EEPROM unset
> 
>    * Add review tags from Stefan Roese
> 
> Baruch Siach (10):
>    ddr: marvell: a38x: allow board specific clock out setup
>    arm: mvebu: clearfog: enable both DDR clocks
>    cmd: add tlv_eeprom command
>    ARM: mvebu: clearfog: add EEPROM devices
>    ARM: mvebu: clearfog: add support for EEPROM TLV info
>    ARM: mvebu: clearfog: read basic TLV data
>    ARM: mvebu: clearfog: print TLV stored product name
>    ARM: mvebu: clearfog: run-time selection of DT file
>    ARM: mvebu: clearfog: add Clearfog GTR support
>    ARM: mvebu: clearfog: add Clearfog Base serdes configuration

Complete series:

Applied to u-boot-marvell/master

Thanks,
Stefan