mbox series

[v12,0/8] Add FU740 chip and HiFive Unmatched board support

Message ID 20210527135215.370524-1-green.wan@sifive.com
Headers show
Series Add FU740 chip and HiFive Unmatched board support | expand

Message

Green Wan May 27, 2021, 1:52 p.m. UTC
This patch set is to add SiFive fu740 chip and HiFive Unmatched board
support. Patches are split into several parts:

  - [PATCH v12 1/8] support for fu740 cpu
  - [PATCH v12 2/8] support for fu740 clk driver
  - [PATCH v12 3/8] rename and support for fu740 ram driver
  - [PATCH v12 4/8] add pcie driver
  - [PATCH v12 5/8] dts for SiFive fu740
  - [PATCH v12 6/8] dts for SiFive Unmatched board
  - [PATCH v12 7/8] add Unmatched board support
  - [PATCH v12 8/8] clear feature disable CSR

Description

  - For fu740 cpu support, reuse most of fu540 cpu.
  - For prci driver, add one abstract layer to separate fu540 and
    fu740. Move orignal fu540 code to separate files.
  - For pcie driver, it depends on gpio, prci, clk and reset drivers
    to do init&reset works. Also based on pcie_dw_common.c
  - Align with Linux DT file.

Tests and patch checks

  - Able to boot both unmatched and unleashed boards.
  - PCIe tests
    . M.2 NVMe SSD
    . e1000 compatibale ethernet adapter (ping&tftpboot)
    . pci-to-usb adapter(usb mass storage)
  - checkpatch is performed. To keep code derived from other boards
    the same.

Changlogs
  - v12
    . Remove fdt_high and initrd_high environment in [PATCH v11 7/8] to
      avoid fdt and initrd relocation are disabled.
  - v11
    . squash 'binman change' patch into [PATH v11 6/8] and
      [PATCH v11 7/8]
  - v10
    . on top of 2 patchset below,
      http://patchwork.ozlabs.org/project/uboot/patch/20210511120412.25065-1-bmeng.cn@gmail.com/
      http://patchwork.ozlabs.org/project/uboot/list/?series=242992
    . appends patch 'clear feature disable CSRs' and 'binman change for
      unmatched'
  - v9
    . applied http://patchwork.ozlabs.org/project/uboot/patch/20210511120412.25065-1-bmeng.cn@gmail.com/
    . append clear feature disable CSR patch to the last
  - v8
    . Add #include <asm/global_data.h> back to sifive_clint.c in
      [PATCH v8 1/7]
    . Remove unused CLK_SIFIVE_FU540_PRCI from Kconfig [PATCH v8 2/8]
      and remove CONFIG_CLK_SIFIVE_PRCI=y from unleashed config in
      [PATCH v8 7/7]
    . Remove ECAM compatible string to align with Linux pcie driver
      and add Reviewed-by to [PATCH v8 4/7]
    . Drop last patch [PATCH v7 8/8] for drivers/net/macb.c and use
      the same compatible string, 'sifive,fu540-c000-gem', to align with
      Linux driver.
  - v7
    . Rebase to latest master branch
    . Moved dts for fu740 patch [v6 1/7] to [v7 5/8] and seperate dts of
      Unmatched board from [v6 6/7] into [v7 6/8]
    . Applied PCIe refactoring patch to base on the common code in
      pcie_dw_common.c
  - v6
    . Remove redundant DT string for 1.2GHz CPU clock and squash to
      [1/7]
  - v5
    . Fix unleashed build error in patch [6/8]
    . Append one more set for 1.2GHz CPU speed
    . Add "#include <asm/global_data.h>" back to sifive_ddr.c
    . Add Reviewed-by to [4/8] and [7/8]
  - v4
    . fixed incorrect file name in ./board/sifive/unmatched/Makefile
    . fixed link in doc/board/sifive/index.rst, passed 'make htmldocs'
  - v3
    . Rebase to unleashed rename v2 patch
    . Rename
      doc/board/sifive/unmatched.rst
      board/sifive/unmatched/unmatched.c
    . Fix tail whitespace
    . Add 'git mv' info to ram driver and merge patch back to one
    . Add comment to macb driver for PLL hardware quirk
    . Add reviewed-by to patch [6/7] 
    . Add 'gpio-poweroff' node for upcoming opensbi integration
  - v2
    . Rebase to unleashed rename patch
    . remove unnessaary fu540 changes
    . split ram driver patch into 2 to keep 'git mv' info
    . use a shorter name for unmatched support
    . Remove redundant&incorrect temperature-sensor in DT
    . Remove unnecessary USB EHCI & OHCI from defconfig
    . Revised fu740 doc
    . Fixed year of copyright
    . Add reviewed-by received in v1 patch

Green Wan (8):
  riscv: cpu: fu740: Add support for cpu fu740
  drivers: clk: add fu740 support
  drivers: ram: sifive: rename fu540_ddr and add fu740 support
  drivers: pci: add pcie support for fu740
  riscv: dts: add fu740 support
  riscv: dts: add SiFive Unmatched board support
  board: sifive: add HiFive Unmatched board support
  riscv: cpu: fu740: clear feature disable CSR

 arch/riscv/Kconfig                            |    5 +
 arch/riscv/cpu/fu540/Kconfig                  |    2 +-
 arch/riscv/cpu/fu740/Kconfig                  |   37 +
 arch/riscv/cpu/fu740/Makefile                 |   12 +
 arch/riscv/cpu/fu740/cache.c                  |   55 +
 arch/riscv/cpu/fu740/cpu.c                    |   22 +
 arch/riscv/cpu/fu740/dram.c                   |   38 +
 arch/riscv/cpu/fu740/spl.c                    |   38 +
 arch/riscv/dts/Makefile                       |    1 +
 arch/riscv/dts/fu740-c000-u-boot.dtsi         |  105 ++
 arch/riscv/dts/fu740-c000.dtsi                |  329 ++++
 .../dts/fu740-hifive-unmatched-a00-ddr.dtsi   | 1489 +++++++++++++++++
 .../dts/hifive-unmatched-a00-u-boot.dtsi      |   41 +
 arch/riscv/dts/hifive-unmatched-a00.dts       |  259 +++
 arch/riscv/include/asm/arch-fu740/cache.h     |   14 +
 arch/riscv/include/asm/arch-fu740/clk.h       |   14 +
 arch/riscv/include/asm/arch-fu740/gpio.h      |   38 +
 arch/riscv/include/asm/arch-fu740/reset.h     |   13 +
 arch/riscv/include/asm/arch-fu740/spl.h       |   14 +
 board/sifive/unleashed/Kconfig                |    1 +
 board/sifive/unmatched/Kconfig                |   51 +
 board/sifive/unmatched/MAINTAINERS            |    9 +
 board/sifive/unmatched/Makefile               |    9 +
 board/sifive/unmatched/spl.c                  |   85 +
 board/sifive/unmatched/unmatched.c            |   24 +
 common/spl/Kconfig                            |    4 +-
 configs/sifive_unmatched_defconfig            |   54 +
 doc/board/sifive/index.rst                    |    1 +
 doc/board/sifive/unmatched.rst                |  536 ++++++
 drivers/clk/sifive/Kconfig                    |    8 +-
 drivers/clk/sifive/Makefile                   |    4 +-
 drivers/clk/sifive/fu540-prci.c               |  769 +--------
 drivers/clk/sifive/fu540-prci.h               |   22 +
 drivers/clk/sifive/fu740-prci.c               |  158 ++
 drivers/clk/sifive/fu740-prci.h               |   22 +
 drivers/clk/sifive/sifive-prci.c              |  733 ++++++++
 drivers/clk/sifive/sifive-prci.h              |  323 ++++
 drivers/pci/Kconfig                           |   10 +
 drivers/pci/Makefile                          |    1 +
 drivers/pci/pcie_dw_sifive.c                  |  507 ++++++
 drivers/ram/sifive/Kconfig                    |    8 +-
 drivers/ram/sifive/Makefile                   |    2 +-
 .../ram/sifive/{fu540_ddr.c => sifive_ddr.c}  |   89 +-
 drivers/reset/Kconfig                         |    2 +-
 include/configs/sifive-unmatched.h            |   83 +
 include/dt-bindings/clock/sifive-fu740-prci.h |   25 +
 include/dt-bindings/reset/sifive-fu740-prci.h |   19 +
 47 files changed, 5279 insertions(+), 806 deletions(-)
 create mode 100644 arch/riscv/cpu/fu740/Kconfig
 create mode 100644 arch/riscv/cpu/fu740/Makefile
 create mode 100644 arch/riscv/cpu/fu740/cache.c
 create mode 100644 arch/riscv/cpu/fu740/cpu.c
 create mode 100644 arch/riscv/cpu/fu740/dram.c
 create mode 100644 arch/riscv/cpu/fu740/spl.c
 create mode 100644 arch/riscv/dts/fu740-c000-u-boot.dtsi
 create mode 100644 arch/riscv/dts/fu740-c000.dtsi
 create mode 100644 arch/riscv/dts/fu740-hifive-unmatched-a00-ddr.dtsi
 create mode 100644 arch/riscv/dts/hifive-unmatched-a00-u-boot.dtsi
 create mode 100644 arch/riscv/dts/hifive-unmatched-a00.dts
 create mode 100644 arch/riscv/include/asm/arch-fu740/cache.h
 create mode 100644 arch/riscv/include/asm/arch-fu740/clk.h
 create mode 100644 arch/riscv/include/asm/arch-fu740/gpio.h
 create mode 100644 arch/riscv/include/asm/arch-fu740/reset.h
 create mode 100644 arch/riscv/include/asm/arch-fu740/spl.h
 create mode 100644 board/sifive/unmatched/Kconfig
 create mode 100644 board/sifive/unmatched/MAINTAINERS
 create mode 100644 board/sifive/unmatched/Makefile
 create mode 100644 board/sifive/unmatched/spl.c
 create mode 100644 board/sifive/unmatched/unmatched.c
 create mode 100644 configs/sifive_unmatched_defconfig
 create mode 100644 doc/board/sifive/unmatched.rst
 create mode 100644 drivers/clk/sifive/fu540-prci.h
 create mode 100644 drivers/clk/sifive/fu740-prci.c
 create mode 100644 drivers/clk/sifive/fu740-prci.h
 create mode 100644 drivers/clk/sifive/sifive-prci.c
 create mode 100644 drivers/clk/sifive/sifive-prci.h
 create mode 100644 drivers/pci/pcie_dw_sifive.c
 rename drivers/ram/sifive/{fu540_ddr.c => sifive_ddr.c} (81%)
 create mode 100644 include/configs/sifive-unmatched.h
 create mode 100644 include/dt-bindings/clock/sifive-fu740-prci.h
 create mode 100644 include/dt-bindings/reset/sifive-fu740-prci.h