Message ID | 20200421072850.4970-1-sr@denx.de |
---|---|
Headers | show |
Series | Refactor the architecture parts of mt7628 | expand |
Am 21.04.20 um 09:28 schrieb Stefan Roese: > This patch series are divided into two parts: > > The main part is to rewrite the whole architecture code of mt7628: > * Lock parts of the d-cache for initial stack so the rest of the code can > be reimplemented in C. > * Memory controller & DDR initialization have been fully written to support > detecting DDR size automatically. > * DDR calibration has also been reimplemented with a clear logic. > * 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: > * 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. > * Generate compressed u-boot.bin image for SPL to reduce size of final > combined binary. > * Enable DM support for SPL for a more flexible device probing. > * Add a demo board (mt7628_rfb) aims at router application. > > Changes since v2: > * Dropped a patch which removes unused parts of mt7628a.dtsi > * Move lzma decompression support to common spl_nor.c > * Move u-boot,dm-pre-reloc to u-boot-mt7628.dtsi > > Changes since v3: > * Rebased on newest master branch > * Add a test for binman etype u-boot-lzma-img to make sure binman passes 100% > code coverage > * Use u-boot-with-spl.bin for SPL-enabled output file > * Remove unused code from spl_nor loader. > > Changes since v5: > * Rebased on newest master branch > * Made lzma decompressing support for legacy U-Boot images more generic, so > that it can be easily integrated into other devices loaders as well > > Changes since v6: > * Add spl_image_get_comp() to enable the compiler to optimize > the switch/case statement away due to Dead Code Elimination > as suggested by Daniel > * Moved cache flush to MIPS specific file as suggested by Daniel > > Stefan Roese (6): > spl: Extract legacy image handling into separate file > spl: spl_legacy: Use IS_ENABLED() to remove #ifdef > spl: spl_nor: Move legacy image loading into spl_legacy.c > spl: spl_nor: Remove unused variable 'ret' warning > mips: spl: Flush cache before jumping to U-Boot proper > mips: mtmips: Increase CONFIG_SPL_SYS_MALLOC_F_LEN > > Weijie Gao (20): > 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 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: make use of sysreset-resetctrl for mt7628 soc > configs: enable CONFIG_RESTORE_EXCEPTION_VECTOR_BASE for all mtmips > boards > mips: add a mtmips-specific field to architecture-specific global data > mips: add a option to support not reserving malloc space on initial > stack > mips: mtmips: rewrite lowlevel codes of mt7628 > dts: mtmips: add alternative pinmux node for uart2 > mips: enable support for appending dtb to spl binary > mips: add an option to enable u_boot_list section for SPL loaders 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 > spl: spl_legacy: Add lzma decompression support for legacy image > mips: mtmips: add SPL support > mips: mtmips: enable SPL for all boards > mips: mtmips: add support for mt7628-rfb > > Makefile | 19 + > arch/mips/Kconfig | 66 ++++ > arch/mips/cpu/start.S | 16 +- > arch/mips/cpu/u-boot-spl.lds | 4 +- > arch/mips/dts/Makefile | 1 + > arch/mips/dts/mediatek,mt7628-rfb.dts | 67 ++++ > arch/mips/dts/mt7628-u-boot.dtsi | 56 +++ > arch/mips/dts/mt7628a.dtsi | 17 +- > arch/mips/include/asm/global_data.h | 3 + > arch/mips/include/asm/u-boot-mips.h | 2 + > arch/mips/lib/Makefile | 1 + > arch/mips/lib/bootm.c | 3 + > arch/mips/lib/spl.c | 21 ++ > arch/mips/lib/traps.c | 19 + > arch/mips/mach-mtmips/Kconfig | 135 +++---- > 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/include/mach/serial.h | 13 + > arch/mips/mach-mtmips/lowlevel_init.S | 328 ------------------ > arch/mips/mach-mtmips/mt7628/Makefile | 6 + > arch/mips/mach-mtmips/mt7628/ddr.c | 173 +++++++++ > arch/mips/mach-mtmips/mt7628/init.c | 109 ++++++ > arch/mips/mach-mtmips/mt7628/lowlevel_init.S | 161 +++++++++ > arch/mips/mach-mtmips/mt7628/mt7628.h | 104 ++++++ > arch/mips/mach-mtmips/mt7628/serial.c | 34 ++ > arch/mips/mach-mtmips/mt76xx.h | 32 -- > arch/mips/mach-mtmips/spl.c | 44 +++ > board/gardena/smart-gateway-mt7688/board.c | 2 + > board/mediatek/mt7628/Kconfig | 12 + > board/mediatek/mt7628/MAINTAINERS | 7 + > board/mediatek/mt7628/Makefile | 3 + > board/mediatek/mt7628/board.c | 8 + > common/spl/Makefile | 1 + > common/spl/spl.c | 56 +-- > common/spl/spl_legacy.c | 131 +++++++ > common/spl/spl_nor.c | 27 +- > ...gardena-smart-gateway-mt7688-ram_defconfig | 74 ---- > .../gardena-smart-gateway-mt7688_defconfig | 14 +- > configs/linkit-smart-7688-ram_defconfig | 65 ---- > configs/linkit-smart-7688_defconfig | 14 +- > configs/mt7628_rfb_defconfig | 46 +++ > drivers/sysreset/Kconfig | 6 + > drivers/sysreset/Makefile | 1 + > drivers/sysreset/sysreset_resetctl.c | 48 +++ > .../configs/gardena-smart-gateway-mt7688.h | 21 +- > include/configs/linkit-smart-7688.h | 22 +- > include/configs/mt7628.h | 56 +++ > include/spl.h | 13 + > lib/Kconfig | 5 + > lib/Makefile | 1 + > tools/binman/README.entries | 15 + > tools/binman/etype/u_boot_lzma_img.py | 28 ++ > tools/binman/ftest.py | 7 + > tools/binman/test/156_u_boot_lzma_img.dts | 11 + > 59 files changed, 2108 insertions(+), 1032 deletions(-) > create mode 100644 arch/mips/dts/mediatek,mt7628-rfb.dts > create mode 100644 arch/mips/dts/mt7628-u-boot.dtsi > create mode 100644 arch/mips/lib/spl.c > 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 > create mode 100644 arch/mips/mach-mtmips/include/mach/serial.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 > create mode 100644 arch/mips/mach-mtmips/mt7628/serial.c > 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 common/spl/spl_legacy.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 > create mode 100644 tools/binman/test/156_u_boot_lzma_img.dts > series applied to u-boot-mips/next with some reordering of patches and some minor fixups. The binman patch was left out because binman wasn't used anymore since v4.