[PATCH v4 v5 00/10] add support for Enclustra Mercury AA1 SoMs

Lothar Rubusch l.rubusch at gmail.com
Tue Nov 19 23:46:33 CET 2024


Introduce the support for three variants of Enclustra's Intel Mercury AA1 (with
Intel Arria10) SoMs and additional configs.

The DT approach is partly based on dts/upstream, which are (going to be)
upstreamed to the linux kernel.

Signed-off-by: Lothar Rubusch <l.rubusch at gmail.com>
---
v4 -> v5:
- exclude typo / wording fixes for binman.rst, gdb.rst and binman/entries.rst
- implicitely builds using binman
v3 -> v4:
- fix wrong mail address in v2 and author
- update scripts for stdboot and generic load
- clean up patch organization (patch 7/10 was malformed and almost empty,
  added and removed stances,..)
- fix binding used for "enclustra,altera_set_storage"
- separate u-boot specific part of .dts to a
  socfpga_arria10_mercury_aa1-u-boot.dtsi file
- integrate fpga.itb build with binman in the -u-boot.dtsi file
  note:
  1. due to binman, now the build will need binman build (i.e. requirements)
     and is build then with "make NO_PYTHON=1"
  2. the fpga bitstream files bitstream.core.rbf and bitstream.periph.rbf
     are generated by a particular Quartus design, so they can't be committed
     here. This makes the build fail, if build with binman.
     For testing, thus build with
     "make CONFIG_BINMAN=n"
- fix some typos in binman and gdb documentation (additional patch)

v2 -> v3:
- update of DT concept to work with dts/upstream
- update of DT parts in arch/arm/dts, because of:
  -- the handoff initialization of the Arria10 SoC
  -- the fpga loader for the bitstream in the DTS
  -- the adjustments to access the boot media, from where to load the fpga.itb
  -- and to mux media for booting, e.g. QSPI off, when booting from MMC
- implementation of kconfig options to combine SoM .dtsi file, carrier board
  .dtsi files, boot-mode parts, and so on resulting in a single .dts
  file located in arch/arm/dts because of the above mentioned reasons
- adjustents to (better) satisfy dtb checks
- updated MAINTAINERS
- updated documentation
- update to use standard boot and environment as only environment, removal of
  explicit variables and environment files
- removal of duplicate codes
- cleanup and implement altera_set_storage (boot media switch command in
  u-boot shell) based on DM
- fix spansion flash access to allow flashing from off the u-boot shell,
  this patch was already presented separately, the fix is actively needed for
  the AA1 SoM
- sort lists in several files alfabetically
- update boot commands using && instead of ;

v1 -> v2:
- removal si5338 driver
- removal si5338 driver usage
- rename .c file for the boot cmd, build conditionally
- add separate .c file for late boot init to read MAC address from eeprom
- keep DT approach for u-boot under discussion
- fix issues in doc
- update MAINTAINERS to cover doc

---
Lothar Rubusch (10):
  doc: board: enclustra: add Enclustra Mercury+ AA1
  ARM: socfpga: add Mercury+ AA1 SoM support
  ARM: dts: socfpga: add Mercury+ AA1 for u-boot dts
  ARM: socfpga: add Enclustra storage switch
  ARM: socfpga: add Mercury+ AA1 boot scripts
  ARM: socfpga: AA1: support MAC from secure eeprom
  misc: atsha204a: update kconfig description
  ARM: dts: arria10: update according to DTSpec
  ARM: socfpga: update function call to modern API
  ARM: socfpga: apply binman approach to fpga parts

 arch/arm/dts/socfpga_arria10.dtsi             |  42 ++-
 ..._arria10_enclustra_mercury_aa1-u-boot.dtsi |  89 +++++
 .../socfpga_arria10_enclustra_mercury_aa1.dts |  62 ++++
 .../socfpga_arria10_mercury_aa1-u-boot.dtsi   |  19 ++
 .../dts/socfpga_arria10_mercury_aa1_handoff.h | 305 ++++++++++++++++++
 arch/arm/mach-socfpga/Kconfig                 |  10 +
 arch/arm/mach-socfpga/misc_arria10.c          |   2 -
 board/enclustra/bootscripts/qspi-aa1.cmd      |  12 +
 board/enclustra/bootscripts/sd-aa1.cmd        |   9 +
 board/enclustra/common/Kconfig                |  25 ++
 board/enclustra/common/Makefile               |   7 +
 board/enclustra/common/enclustra_mac.h        |  48 +++
 board/enclustra/common/mac_atsha204.c         | 102 ++++++
 board/enclustra/common/mac_common.c           |  52 +++
 board/enclustra/common/mac_ds28.c             |  93 ++++++
 board/enclustra/mercury_aa1/Kconfig           |  52 +++
 board/enclustra/mercury_aa1/MAINTAINERS       |  12 +
 board/enclustra/mercury_aa1/Makefile          |  10 +
 .../mercury_aa1/aa1_board_late_init.c         |  17 +
 .../mercury_aa1/aa1_set_storage_cmd.c         | 190 +++++++++++
 .../socfpga_enclustra_mercury_aa1_defconfig   |  86 +++++
 doc/board/enclustra/index.rst                 |   9 +
 doc/board/enclustra/mercury-aa1.rst           | 230 +++++++++++++
 doc/board/index.rst                           |   1 +
 drivers/misc/Kconfig                          |   2 +-
 include/configs/socfpga_mercury_aa1.h         |  23 ++
 26 files changed, 1497 insertions(+), 12 deletions(-)
 create mode 100644 arch/arm/dts/socfpga_arria10_enclustra_mercury_aa1-u-boot.dtsi
 create mode 100644 arch/arm/dts/socfpga_arria10_enclustra_mercury_aa1.dts
 create mode 100644 arch/arm/dts/socfpga_arria10_mercury_aa1_handoff.h
 create mode 100644 board/enclustra/bootscripts/qspi-aa1.cmd
 create mode 100644 board/enclustra/bootscripts/sd-aa1.cmd
 create mode 100644 board/enclustra/common/Kconfig
 create mode 100644 board/enclustra/common/Makefile
 create mode 100644 board/enclustra/common/enclustra_mac.h
 create mode 100644 board/enclustra/common/mac_atsha204.c
 create mode 100644 board/enclustra/common/mac_common.c
 create mode 100644 board/enclustra/common/mac_ds28.c
 create mode 100644 board/enclustra/mercury_aa1/Kconfig
 create mode 100644 board/enclustra/mercury_aa1/MAINTAINERS
 create mode 100644 board/enclustra/mercury_aa1/Makefile
 create mode 100644 board/enclustra/mercury_aa1/aa1_board_late_init.c
 create mode 100644 board/enclustra/mercury_aa1/aa1_set_storage_cmd.c
 create mode 100644 configs/socfpga_enclustra_mercury_aa1_defconfig
 create mode 100644 doc/board/enclustra/index.rst
 create mode 100644 doc/board/enclustra/mercury-aa1.rst
 create mode 100644 include/configs/socfpga_mercury_aa1.h

-- 
2.39.2



More information about the U-Boot mailing list