[PATCH v1 00/12] mips: add EcoNet/Airoha EN75xx (EN7512/EN7528) SoC support

AK Sharma <[email protected]>
Newsgroups org.u-boot-project.lists.u-boot
Message-ID <[email protected]>
This series adds U-Boot support for the EcoNet/Airoha EN75xx MIPS SoC
family: the big-endian MIPS34Kc EN7512/EN7521 and the little-endian
MIPS1004Kc EN7528, used in many GPON/XPON ONT home gateways. It extends
the existing Airoha SNFI SPI-NAND and GDM Ethernet drivers.

It brings up the SoC (TPL/SPL, cache/CM init), and adds the UART, the
EN75 BMT SPI-NAND bad-block mapping, weak bootm decompression hooks for
the coherent CM, and Ethernet. Reference boards for the EN7512 and EN7528
are included, plus the EN7528 R3-hook boot variant.

The DDR calibration stage is a vendor artifact and is not shipped
in-tree. The reference board packages it as a binman "blob-ext"; build
those configs with BINMAN_ALLOW_MISSING=1 and supply the blob to run
(see arch/mips/mach-en75xx/README.ddr-blob). A native DDR-init
implementation is a known TODO.

Tested on a Nokia G-2425G-A (EN7528, MT29F2G01 SPI-NAND): boots to the
prompt with correct 256 MiB DRAM, working Ethernet/TFTP and SPI-NAND.

AK Sharma (12):
  mips: en75xx: add EcoNet/Airoha EN75xx SoC support
  mips: en75xx: add TPL and SPL early boot stages
  serial: en75xx: add EcoNet/Airoha EN75xx UART driver
  spi: airoha-snfi: add EN7528 SPI-NAND controller support
  mtd: spi-nand: add EN75 BMT bad-block management support
  net: airoha-eth: add EN7528 Ethernet support
  mtd: env, cmd: add EN75 NAND remap handling
  boot: image: add weak hooks for the decompression buffer and flush
  mips: dts: add EcoNet EN75xx device trees
  board: econet: add EN7512 reference board
  board: econet: add EN7528 board support
  doc: board: econet: add EN75xx documentation

 arch/mips/Kconfig                             |  21 +
 arch/mips/Makefile                            |   2 +
 arch/mips/cpu/start.S                         |   2 +
 arch/mips/dts/Makefile                        |   2 +
 .../dts/econet,en7512-reference-u-boot.dtsi   |  58 ++
 arch/mips/dts/econet,en7512-reference.dts     |  27 +
 arch/mips/dts/econet,en7512.dtsi              |  88 ++
 arch/mips/dts/econet,en7528-ram-u-boot.dtsi   |   6 +
 arch/mips/dts/econet,en7528-ram.dts           |  72 ++
 .../dts/econet,en7528-reference-u-boot.dtsi   |  62 ++
 arch/mips/dts/econet,en7528-reference.dts     |  25 +
 arch/mips/dts/econet,en7528.dtsi              | 164 ++++
 arch/mips/mach-en75xx/Kconfig                 | 118 +++
 arch/mips/mach-en75xx/Makefile                |  17 +
 arch/mips/mach-en75xx/README.ddr-blob         |  21 +
 arch/mips/mach-en75xx/cache.c                 | 121 +++
 arch/mips/mach-en75xx/cpu.c                   |  95 ++
 arch/mips/mach-en75xx/early_sfc.c             | 352 ++++++++
 arch/mips/mach-en75xx/include/mach/en75xx.h   | 104 +++
 arch/mips/mach-en75xx/spl/Makefile            |   2 +
 arch/mips/mach-en75xx/spl/spl.c               |  47 +
 arch/mips/mach-en75xx/tpl/Makefile            |   3 +
 arch/mips/mach-en75xx/tpl/start.S             | 101 +++
 arch/mips/mach-en75xx/tpl/tpl.c               | 158 ++++
 board/econet/en7512/MAINTAINERS               |   8 +
 board/econet/en7512/Makefile                  |   2 +
 board/econet/en7512/board.c                   |  34 +
 board/econet/en7528/MAINTAINERS               |  13 +
 board/econet/en7528/Makefile                  |   2 +
 board/econet/en7528/board.c                   | 110 +++
 board/econet/en7528/mk_tclinux_uboot.py       | 112 +++
 board/econet/en7528/tclinux_stub.S            |  65 ++
 boot/image.c                                  |  34 +-
 cmd/mtd.c                                     |  30 +-
 configs/en7512_reference_defconfig            |  93 ++
 configs/en7528_jcow414_r3hook_defconfig       |  76 ++
 configs/en7528_ram_defconfig                  |  62 ++
 configs/en7528_reference_defconfig            |  40 +
 defenvs/en7528_jcow414_r3hook_env             |   5 +
 doc/board/econet/en7512.rst                   |  70 ++
 doc/board/econet/en7528.rst                   |  39 +
 doc/board/econet/index.rst                    |  10 +
 doc/board/index.rst                           |   1 +
 drivers/mtd/nand/spi/Kconfig                  |   8 +
 drivers/mtd/nand/spi/Makefile                 |   1 +
 drivers/mtd/nand/spi/core.c                   |   9 +-
 drivers/mtd/nand/spi/en75_bmt.c               | 665 ++++++++++++++
 drivers/mtd/nand/spi/en75_bmt.h               |  24 +
 drivers/net/Kconfig                           |   8 +-
 drivers/net/airoha_eth.c                      | 850 +++++++++++++++++-
 drivers/phy/Kconfig                           |   2 +-
 drivers/serial/Kconfig                        |   7 +
 drivers/serial/Makefile                       |   1 +
 drivers/serial/serial_en75xx.c                | 170 ++++
 drivers/spi/Kconfig                           |   3 +-
 drivers/spi/airoha_snfi_spi.c                 | 409 +++++++--
 drivers/usb/host/Kconfig                      |   2 +-
 env/Kconfig                                   |   2 +-
 env/mtd.c                                     |  98 +-
 include/configs/en7512.h                      |   8 +
 include/configs/en7528.h                      |   9 +
 include/image.h                               |   5 +
 62 files changed, 4578 insertions(+), 177 deletions(-)
 create mode 100644 arch/mips/dts/econet,en7512-reference-u-boot.dtsi
 create mode 100644 arch/mips/dts/econet,en7512-reference.dts
 create mode 100644 arch/mips/dts/econet,en7512.dtsi
 create mode 100644 arch/mips/dts/econet,en7528-ram-u-boot.dtsi
 create mode 100644 arch/mips/dts/econet,en7528-ram.dts
 create mode 100644 arch/mips/dts/econet,en7528-reference-u-boot.dtsi
 create mode 100644 arch/mips/dts/econet,en7528-reference.dts
 create mode 100644 arch/mips/dts/econet,en7528.dtsi
 create mode 100644 arch/mips/mach-en75xx/Kconfig
 create mode 100644 arch/mips/mach-en75xx/Makefile
 create mode 100644 arch/mips/mach-en75xx/README.ddr-blob
 create mode 100644 arch/mips/mach-en75xx/cache.c
 create mode 100644 arch/mips/mach-en75xx/cpu.c
 create mode 100644 arch/mips/mach-en75xx/early_sfc.c
 create mode 100644 arch/mips/mach-en75xx/include/mach/en75xx.h
 create mode 100644 arch/mips/mach-en75xx/spl/Makefile
 create mode 100644 arch/mips/mach-en75xx/spl/spl.c
 create mode 100644 arch/mips/mach-en75xx/tpl/Makefile
 create mode 100644 arch/mips/mach-en75xx/tpl/start.S
 create mode 100644 arch/mips/mach-en75xx/tpl/tpl.c
 create mode 100644 board/econet/en7512/MAINTAINERS
 create mode 100644 board/econet/en7512/Makefile
 create mode 100644 board/econet/en7512/board.c
 create mode 100644 board/econet/en7528/MAINTAINERS
 create mode 100644 board/econet/en7528/Makefile
 create mode 100644 board/econet/en7528/board.c
 create mode 100644 board/econet/en7528/mk_tclinux_uboot.py
 create mode 100644 board/econet/en7528/tclinux_stub.S
 create mode 100644 configs/en7512_reference_defconfig
 create mode 100644 configs/en7528_jcow414_r3hook_defconfig
 create mode 100644 configs/en7528_ram_defconfig
 create mode 100644 configs/en7528_reference_defconfig
 create mode 100644 defenvs/en7528_jcow414_r3hook_env
 create mode 100644 doc/board/econet/en7512.rst
 create mode 100644 doc/board/econet/en7528.rst
 create mode 100644 doc/board/econet/index.rst
 create mode 100644 drivers/mtd/nand/spi/en75_bmt.c
 create mode 100644 drivers/mtd/nand/spi/en75_bmt.h
 create mode 100644 drivers/serial/serial_en75xx.c
 create mode 100644 include/configs/en7512.h
 create mode 100644 include/configs/en7528.h

-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.