
This patch series are divided into two parts:
The main part is to rewrite the whole architecture code of mt7628: 1. Lock parts of the d-cache for initial stack so the rest of the code can be reimplemented in C. 2. Memory controller & DDR initialization have been fully written to support detecting DDR size automatically. 3. DDR calibration has also been reimplemented with a clear logic. 4. Implemented a new sysreset driver to take advantage of the reset controller so we can drop the use of syscon-based sysreset to reduce size.
The second part is to add SPL support for mt7628: 1. With SPL enabled we can build the ROM-bootable and RAM-bootable binary simultaneously, and we can drop RAM boot related configs and defconfig files. 2. Generate compressed u-boot.bin image for SPL to reduce size of final combined binary. 3. Add a demo board (mt7628_rfb) to make use of the compressed image.
Weijie Gao (16): configs: mtmips: add missing board selection for gardena-smart-gateway-mt7688 mips: add support to restore exception vector base before booting linux mips: mtmips: add predefined i-cache/d-cache size and linesize mips: add an option to support customized get_tbclk() mips: add an option to support initialize SRAM for initial stack mips: start.S: avoid overwriting outside gd when clearing global data in stack sysreset: add reset controller based reboot driver mips: mtmips: rewrite lowlevel codes of mt7628 mips: dts: rename mt7628a.dtsi to mt7628.dtsi mips: unconditionally enable u_boot_list section in u-boot-spl.lds lib: enable lzma decompression support for SPL build Makefile: add support to generate LZMA compressed u-boot image tools: binman: add etype file for u-boot-lzma-img mips: mtmips: add SPL support mips: mtmips: enable SPL for all boards mips: mtmips: add support for mt7628-rfb
Makefile | 22 ++ arch/mips/Kconfig | 32 ++ arch/mips/cpu/start.S | 10 +- arch/mips/cpu/time.c | 2 + arch/mips/cpu/u-boot-spl.lds | 2 - arch/mips/dts/Makefile | 1 + .../mips/dts/gardena-smart-gateway-mt7688.dts | 2 +- arch/mips/dts/linkit-smart-7688.dts | 2 +- arch/mips/dts/mediatek,mt7628-rfb-u-boot.dtsi | 24 ++ arch/mips/dts/mediatek,mt7628-rfb.dts | 67 ++++ arch/mips/dts/mt7628-u-boot.dtsi | 25 ++ arch/mips/dts/{mt7628a.dtsi => mt7628.dtsi} | 78 +---- arch/mips/include/asm/global_data.h | 3 + arch/mips/lib/bootm.c | 9 + arch/mips/mach-mtmips/Kconfig | 122 ++----- arch/mips/mach-mtmips/Makefile | 8 +- arch/mips/mach-mtmips/cpu.c | 58 +--- arch/mips/mach-mtmips/ddr_cal.c | 211 +++++++++++ arch/mips/mach-mtmips/ddr_calibrate.c | 309 ----------------- arch/mips/mach-mtmips/ddr_init.c | 194 +++++++++++ arch/mips/mach-mtmips/include/mach/ddr.h | 52 +++ arch/mips/mach-mtmips/include/mach/mc.h | 180 ++++++++++ arch/mips/mach-mtmips/lowlevel_init.S | 328 ------------------ arch/mips/mach-mtmips/mt7628/Makefile | 5 + arch/mips/mach-mtmips/mt7628/ddr.c | 173 +++++++++ arch/mips/mach-mtmips/mt7628/init.c | 109 ++++++ arch/mips/mach-mtmips/mt7628/lowlevel_init.S | 155 +++++++++ arch/mips/mach-mtmips/mt7628/mt7628.h | 90 +++++ arch/mips/mach-mtmips/mt76xx.h | 32 -- arch/mips/mach-mtmips/spl.c | 23 ++ board/gardena/smart-gateway-mt7688/board.c | 2 + board/mediatek/mt7628/Kconfig | 12 + board/mediatek/mt7628/MAINTAINERS | 8 + board/mediatek/mt7628/Makefile | 4 + board/mediatek/mt7628/board.c | 25 ++ board/mediatek/mt7628/spl_load.c | 102 ++++++ ...gardena-smart-gateway-mt7688-ram_defconfig | 74 ---- .../gardena-smart-gateway-mt7688_defconfig | 12 +- configs/linkit-smart-7688-ram_defconfig | 65 ---- configs/linkit-smart-7688_defconfig | 11 +- configs/mt7628_rfb_defconfig | 47 +++ drivers/sysreset/Kconfig | 6 + drivers/sysreset/Makefile | 1 + drivers/sysreset/sysreset_resetctl.c | 48 +++ .../configs/gardena-smart-gateway-mt7688.h | 18 +- include/configs/linkit-smart-7688.h | 18 +- include/configs/mt7628.h | 57 +++ lib/Kconfig | 5 + lib/Makefile | 1 + tools/binman/etype/u_boot_lzma_img.py | 27 ++ 50 files changed, 1826 insertions(+), 1045 deletions(-) create mode 100644 arch/mips/dts/mediatek,mt7628-rfb-u-boot.dtsi create mode 100644 arch/mips/dts/mediatek,mt7628-rfb.dts create mode 100644 arch/mips/dts/mt7628-u-boot.dtsi rename arch/mips/dts/{mt7628a.dtsi => mt7628.dtsi} (81%) create mode 100644 arch/mips/mach-mtmips/ddr_cal.c delete mode 100644 arch/mips/mach-mtmips/ddr_calibrate.c create mode 100644 arch/mips/mach-mtmips/ddr_init.c create mode 100644 arch/mips/mach-mtmips/include/mach/ddr.h create mode 100644 arch/mips/mach-mtmips/include/mach/mc.h delete mode 100644 arch/mips/mach-mtmips/lowlevel_init.S create mode 100644 arch/mips/mach-mtmips/mt7628/Makefile create mode 100644 arch/mips/mach-mtmips/mt7628/ddr.c create mode 100644 arch/mips/mach-mtmips/mt7628/init.c create mode 100644 arch/mips/mach-mtmips/mt7628/lowlevel_init.S create mode 100644 arch/mips/mach-mtmips/mt7628/mt7628.h delete mode 100644 arch/mips/mach-mtmips/mt76xx.h create mode 100644 arch/mips/mach-mtmips/spl.c create mode 100644 board/mediatek/mt7628/Kconfig create mode 100644 board/mediatek/mt7628/MAINTAINERS create mode 100644 board/mediatek/mt7628/Makefile create mode 100644 board/mediatek/mt7628/board.c create mode 100644 board/mediatek/mt7628/spl_load.c delete mode 100644 configs/gardena-smart-gateway-mt7688-ram_defconfig delete mode 100644 configs/linkit-smart-7688-ram_defconfig create mode 100644 configs/mt7628_rfb_defconfig create mode 100644 drivers/sysreset/sysreset_resetctl.c create mode 100644 include/configs/mt7628.h create mode 100644 tools/binman/etype/u_boot_lzma_img.py