[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