Re: [PATCH v5 00/20] Refactor the architecture parts of mt7628
On Thu, Feb 13, 2020 at 9:42 AM Weijie Gao wrote: > > On Thu, 2020-02-13 at 08:48 +0100, Simon Goldschmidt wrote: > > On Wed, Feb 12, 2020 at 10:43 AM Weijie Gao wrote: > > > > > > 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. > > > > No changes for v5 (since v4)? > > v5 is based on v3, for replacing v4. Because v4 has an obvious mistake. > Modifying based on v3 is more clear than on v4. Hm, ok, you probably should have mentioned that somewhere. I got confused. Regards, Simon > > > > > Regards, > > Simon > > > > > > > > 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: nor: 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/bootm.c | 3 + > > > 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
Re: [PATCH v5 00/20] Refactor the architecture parts of mt7628
On Thu, 2020-02-13 at 08:48 +0100, Simon Goldschmidt wrote: > On Wed, Feb 12, 2020 at 10:43 AM Weijie Gao wrote: > > > > 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. > > No changes for v5 (since v4)? v5 is based on v3, for replacing v4. Because v4 has an obvious mistake. Modifying based on v3 is more clear than on v4. > > Regards, > Simon > > > > > 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: nor: 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/bootm.c | 3 + > > 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 --
Re: [PATCH v5 00/20] Refactor the architecture parts of mt7628
On Wed, Feb 12, 2020 at 10:43 AM Weijie Gao wrote: > > 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. No changes for v5 (since v4)? Regards, Simon > > 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: nor: 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/bootm.c | 3 + > 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/spl_nor.c
[PATCH v5 00/20] Refactor the architecture parts of mt7628
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. 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: nor: 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/bootm.c | 3 + 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/spl_nor.c | 51 ++- ...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