mbox series

[v2,0/7] add support for Enclustra Mercury AA1 SoMs

Message ID 20240917062157.3181-1-l.rubusch@gmail.com
Headers show
Series add support for Enclustra Mercury AA1 SoMs | expand

Message

Lothar Rubusch Sept. 17, 2024, 6:21 a.m. UTC
Introduce the support for three variants of Enclustra's Intel Mercury AA1 (with
Intel Arria10) SoMs and additional configs. This is supposed to be the first
step to upstream several of Enclustras SoC FPGA Modules. There are still things
to be modified. So, this is supposed to start the discussion and also to
clarify some of my open issues. 

On the DT approach: I can agree that in parallel I may go for upstreaming
the kernel DT. There is a fundamental difference, still: In order to
represent the combination of module + baseboard + bootmode for the kernel
DT we have to use a mechanism like DTO. For u-boot this can be simpler.
Currently the few adjustments needed will be represented by the DT files as
are. I propose to keep them, and in case remove them later, which I doubt,
since the full DT for the kernel will cover more details. In case
refactoring is needed I can update the DT also in u-boot.

---
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 (7):
  doc: board: enclustra: add Enclustra Intel AA1 SoM
  ARM: dts: socfpga: add Enclustra Intel AA1
  ARM: socfpga: add Enclustra AA1 SoM support
  ARM: socfpga: add Enclustra AA1 extra env settings
  ARM: socfpga: add Enclustra AA1 demo env files
  ARM: socfpga: add Enclustra AA1 boot scripts
  ARM: socfpga: AA1: support MAC from secure eeprom

 arch/arm/dts/ME-AA1-270-2I2-D11E-NFX3.dtsi    |  14 +
 arch/arm/dts/ME-AA1-270-3E4-D11E-NFX3.dtsi    |  14 +
 arch/arm/dts/ME-AA1-480-2I3-D12E-NFX3.dtsi    |  15 +
 arch/arm/dts/Makefile                         |   2 +
 arch/arm/dts/enclustra-aa1.dts                |  32 ++
 .../dts/socfpga_arria10_mercury_aa1_handoff.h | 307 ++++++++++++++++++
 .../dts/socfpga_enclustra_mercury_aa1.dtsi    | 179 ++++++++++
 ...cfpga_enclustra_mercury_aa1_qspi_boot.dtsi |  18 +
 ...fpga_enclustra_mercury_aa1_sdmmc_boot.dtsi |  18 +
 .../dts/socfpga_enclustra_mercury_pe1.dtsi    |   7 +
 .../dts/socfpga_enclustra_mercury_pe3.dtsi    |   8 +
 .../dts/socfpga_enclustra_mercury_st1.dtsi    |   8 +
 arch/arm/mach-socfpga/Kconfig                 |   9 +
 board/enclustra/bootscripts/qspi-aa1.cmd      |  12 +
 board/enclustra/bootscripts/sd-aa1.cmd        |  10 +
 board/enclustra/common/Kconfig                |  24 ++
 board/enclustra/common/Makefile               |   7 +
 board/enclustra/common/enclustra_mac.h        |  48 +++
 board/enclustra/common/mac_atsha204.c         |  97 ++++++
 board/enclustra/common/mac_common.c           |  54 +++
 board/enclustra/common/mac_ds28.c             |  88 +++++
 board/enclustra/mercury_aa1/Kconfig           |  15 +
 board/enclustra/mercury_aa1/MAINTAINERS       |  11 +
 board/enclustra/mercury_aa1/Makefile          |  10 +
 .../mercury_aa1/aa1_board_late_init.c         |  17 +
 .../mercury_aa1/aa1_set_storage_cmd.c         | 177 ++++++++++
 board/enclustra/mercury_aa1/bitstream.its     |  32 ++
 board/enclustra/mercury_aa1/mercury_aa1.env   |  65 ++++
 .../socfpga_enclustra_mercury_aa1_defconfig   |  79 +++++
 doc/board/enclustra/index.rst                 |   9 +
 doc/board/enclustra/mercury-aa1.rst           | 207 ++++++++++++
 doc/board/index.rst                           |   1 +
 drivers/misc/Kconfig                          |   2 +-
 include/configs/socfpga_mercury_aa1.h         |  68 ++++
 34 files changed, 1663 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/ME-AA1-270-2I2-D11E-NFX3.dtsi
 create mode 100644 arch/arm/dts/ME-AA1-270-3E4-D11E-NFX3.dtsi
 create mode 100644 arch/arm/dts/ME-AA1-480-2I3-D12E-NFX3.dtsi
 create mode 100644 arch/arm/dts/enclustra-aa1.dts
 create mode 100644 arch/arm/dts/socfpga_arria10_mercury_aa1_handoff.h
 create mode 100644 arch/arm/dts/socfpga_enclustra_mercury_aa1.dtsi
 create mode 100644 arch/arm/dts/socfpga_enclustra_mercury_aa1_qspi_boot.dtsi
 create mode 100644 arch/arm/dts/socfpga_enclustra_mercury_aa1_sdmmc_boot.dtsi
 create mode 100644 arch/arm/dts/socfpga_enclustra_mercury_pe1.dtsi
 create mode 100644 arch/arm/dts/socfpga_enclustra_mercury_pe3.dtsi
 create mode 100644 arch/arm/dts/socfpga_enclustra_mercury_st1.dtsi
 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 board/enclustra/mercury_aa1/bitstream.its
 create mode 100644 board/enclustra/mercury_aa1/mercury_aa1.env
 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