Re: [PATCH v5 00/20] Refactor the architecture parts of mt7628

2020-02-13 Thread Simon Goldschmidt
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

2020-02-13 Thread Weijie Gao
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

2020-02-12 Thread Simon Goldschmidt
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

2020-02-12 Thread Weijie Gao
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