mbox series

[v4,00/10] Renesas RZ/N1 SoC initial support

Message ID 20230308202653.1926303-1-ralph.siemsen@linaro.org
Headers show
Series Renesas RZ/N1 SoC initial support | expand

Message

Ralph Siemsen March 8, 2023, 8:26 p.m. UTC
The RZ/N1 is a family of SoC devices from Renesas [1], featuring ARM
Cortex-A7 and/or Cortex-M3 CPU, industrial ethernet protocols,
integrated Ethernet switch, and numerous peripherals.

This is a first step in upstreaming support for the RZ/N1 family.
Currently it contains just enough to boot to the u-boot prompt.
Additional patches will follow to support flash, SD, USB, Ethernet, etc.

This work is based on a vendor-supplied u-boot 2017.01 tree [2],
which supports several eval boards, none of which I have access to.
Instead development has been done on a Schneider RZN1 board, which
is fairly similar to the Renesas RZ/N1D-DB Demo board.

[1] https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rz-mpus/rzn1
[2] https://github.com/renesas-rz/rzn1_u-boot/tree/rzn1-stable

Changes in v4:
- rebase to u-boot v2023.04-rc3
- remove RFC prefix
- cc entire series to Marek by request
- clock tables synced with linux (pending patches)
- documentation and comment improvements

Changes in v3:
- many tweaks to clock driver based on reviewer feedback
- rebased to u-boot v2023.04-rc2
- reviewer suggestions added to spkgimage.c
- many small cleanups, checkpatch, FIXMEs resolved

Changes in v2:
- rewrote the stand-alone spkg_utility to integrate into mkimage

Ralph Siemsen (10):
  ARM: armv7: add non-SPL enable for Cortex SMPEN
  clk: renesas: prepare for non-RCAR clock drivers
  clk: renesas: add R906G032 driver
  pinctrl: renesas: add R906G032 driver
  ram: cadence: add driver for Cadence EDAC
  dts: basic devicetree for Renesas RZ/N1 SoC
  ARM: rzn1: basic support for Renesas RZ/N1 SoC
  board: schneider: add RZN1 board support
  tools: spkgimage: add Renesas SPKG format
  doc: renesas: add Renesas board docs

 arch/arm/Kconfig                              |   17 +
 arch/arm/Makefile                             |    1 +
 arch/arm/cpu/armv7/Kconfig                    |    5 +
 arch/arm/dts/r9a06g032-rzn1-snarc-u-boot.dtsi |   23 +
 arch/arm/dts/r9a06g032-rzn1-snarc.dts         |   51 +
 arch/arm/dts/r9a06g032.dtsi                   |  226 ++++
 arch/arm/mach-rzn1/Kconfig                    |   32 +
 arch/arm/mach-rzn1/Makefile                   |    3 +
 arch/arm/mach-rzn1/cpu_info.c                 |   19 +
 board/schneider/rzn1-snarc/Kconfig            |   18 +
 board/schneider/rzn1-snarc/Makefile           |    3 +
 board/schneider/rzn1-snarc/ddr_timing.c       |  140 +++
 .../jedec_ddr3_2g_x16_1333h_500_cl8.h         |  399 ++++++
 board/schneider/rzn1-snarc/rzn1.c             |   39 +
 board/schneider/rzn1-snarc/spkgimage.cfg      |   26 +
 boot/image.c                                  |    1 +
 configs/rzn1_snarc_defconfig                  |   21 +
 doc/board/renesas/index.rst                   |    9 +
 doc/board/renesas/renesas.rst                 |  115 ++
 doc/mkimage.1                                 |   45 +
 drivers/clk/renesas/Kconfig                   |    8 +-
 drivers/clk/renesas/Makefile                  |    6 +-
 drivers/clk/renesas/r9a06g032-clocks.c        | 1096 +++++++++++++++++
 drivers/pinctrl/Makefile                      |    1 +
 drivers/pinctrl/renesas/Kconfig               |    7 +
 drivers/pinctrl/renesas/Makefile              |    1 +
 drivers/pinctrl/renesas/pinctrl-rzn1.c        |  379 ++++++
 drivers/ram/Kconfig                           |    1 +
 drivers/ram/Makefile                          |    2 +
 drivers/ram/cadence/Kconfig                   |   12 +
 drivers/ram/cadence/Makefile                  |    1 +
 drivers/ram/cadence/ddr_async.c               |  311 +++++
 drivers/ram/cadence/ddr_ctrl.c                |  414 +++++++
 drivers/ram/cadence/ddr_ctrl.h                |  175 +++
 include/configs/rzn1-snarc.h                  |   17 +
 include/dt-bindings/clock/r9a06g032-sysctrl.h |  148 +++
 include/dt-bindings/pinctrl/rzn1-pinctrl.h    |  141 +++
 include/image.h                               |    1 +
 tools/Makefile                                |    1 +
 tools/spkgimage.c                             |  330 +++++
 tools/spkgimage.h                             |   87 ++
 41 files changed, 4328 insertions(+), 4 deletions(-)
 create mode 100644 arch/arm/dts/r9a06g032-rzn1-snarc-u-boot.dtsi
 create mode 100644 arch/arm/dts/r9a06g032-rzn1-snarc.dts
 create mode 100644 arch/arm/dts/r9a06g032.dtsi
 create mode 100644 arch/arm/mach-rzn1/Kconfig
 create mode 100644 arch/arm/mach-rzn1/Makefile
 create mode 100644 arch/arm/mach-rzn1/cpu_info.c
 create mode 100644 board/schneider/rzn1-snarc/Kconfig
 create mode 100644 board/schneider/rzn1-snarc/Makefile
 create mode 100644 board/schneider/rzn1-snarc/ddr_timing.c
 create mode 100644 board/schneider/rzn1-snarc/jedec_ddr3_2g_x16_1333h_500_cl8.h
 create mode 100644 board/schneider/rzn1-snarc/rzn1.c
 create mode 100644 board/schneider/rzn1-snarc/spkgimage.cfg
 create mode 100644 configs/rzn1_snarc_defconfig
 create mode 100644 doc/board/renesas/index.rst
 create mode 100644 doc/board/renesas/renesas.rst
 create mode 100644 drivers/clk/renesas/r9a06g032-clocks.c
 create mode 100644 drivers/pinctrl/renesas/pinctrl-rzn1.c
 create mode 100644 drivers/ram/cadence/Kconfig
 create mode 100644 drivers/ram/cadence/Makefile
 create mode 100644 drivers/ram/cadence/ddr_async.c
 create mode 100644 drivers/ram/cadence/ddr_ctrl.c
 create mode 100644 drivers/ram/cadence/ddr_ctrl.h
 create mode 100644 include/configs/rzn1-snarc.h
 create mode 100644 include/dt-bindings/clock/r9a06g032-sysctrl.h
 create mode 100644 include/dt-bindings/pinctrl/rzn1-pinctrl.h
 create mode 100644 tools/spkgimage.c
 create mode 100644 tools/spkgimage.h