[PATCH v2 00/21] Refactor the architecture parts of mt7628
Weijie Gao
weijie.gao at mediatek.com
Fri Jan 17 08:45:43 CET 2020
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. Enable DM support for SPL for a more flexible device probing.
4. Add a demo board (mt7628_rfb) aims at router application.
Changes since v1:
1. Split 'mips: mtmips: rewrite lowlevel codes of mt7628' into multiple patches.
2. Dropped a patch which tried to use customized get_tbclk().
3. Dropped a patch which tried to rename mt7628a.dtsi to mt7628.dtsi
4. Refactor the patch which restores exception vector base before booting linux.
5. Define a new option to enable u_boot_list in SPL.
6. Enable compressed spl payload for all boards.
7. Enable DM and DT support for linkit and gardena-smart-gateway.
8. Complete pinmux for all three UARTs for SPL.
9. Rewrite u_boot_lzma_img.py.
Weijie Gao (21):
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: remove all unusable nodes and properties from
mt7628s.dtsi
dts: mtmips: add u-boot,dm-pre-reloc for some nodes in mt7628a.dtsi
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
mips: mtmips: add SPL support
mips: mtmips: enable SPL for all boards
mips: mtmips: add support for mt7628-rfb
Makefile | 22 ++
arch/mips/Kconfig | 60 ++++
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 | 24 ++
arch/mips/dts/mt7628a.dtsi | 93 ++---
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 | 133 +++----
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/include/mach/spl.h | 14 +
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 | 35 ++
arch/mips/mach-mtmips/spl_load.c | 121 +++++++
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 +
...gardena-smart-gateway-mt7688-ram_defconfig | 74 ----
.../gardena-smart-gateway-mt7688_defconfig | 15 +-
configs/linkit-smart-7688-ram_defconfig | 65 ----
configs/linkit-smart-7688_defconfig | 15 +-
configs/mt7628_rfb_defconfig | 45 +++
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 | 19 +-
include/configs/mt7628.h | 52 +++
lib/Kconfig | 5 +
lib/Makefile | 1 +
tools/binman/README.entries | 15 +
tools/binman/etype/u_boot_lzma_img.py | 28 ++
52 files changed, 1987 insertions(+), 1041 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/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
create mode 100644 arch/mips/mach-mtmips/include/mach/spl.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 arch/mips/mach-mtmips/spl_load.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
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
--
2.17.1
More information about the U-Boot
mailing list