mbox series

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

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

Message

Ralph Siemsen April 24, 2023, 1:15 a.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 v5:
- rebase to u-boot v2023.04-1037-gb646e1f69f
- many small changes in response to reviewer comments
- move rzn1 into mach-rmobile (similar to existing rza1)
- move board-specific DDR init to board dir

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 R-Car clock drivers
  clk: renesas: add R906G032 driver
  pinctrl: renesas: add R906G032 driver
  ram: cadence: add driver for Cadence EDAC
  ARM: dts: add devicetree for Renesas RZ/N1 SoC
  ARM: rmobile: Add 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/cpu/armv7/Kconfig                    |    5 +
 arch/arm/dts/r9a06g032-ddr.dtsi               |  512 ++++++++
 arch/arm/dts/r9a06g032-rzn1-snarc-u-boot.dtsi |   23 +
 arch/arm/dts/r9a06g032-rzn1-snarc.dts         |   92 ++
 arch/arm/dts/r9a06g032.dtsi                   |  477 +++++++
 arch/arm/mach-rmobile/Kconfig                 |   19 +
 arch/arm/mach-rmobile/Kconfig.rzn1            |   20 +
 arch/arm/mach-rmobile/cpu_info.c              |    8 +
 board/schneider/rzn1-snarc/Kconfig            |   18 +
 board/schneider/rzn1-snarc/Makefile           |    3 +
 board/schneider/rzn1-snarc/ddr_async.c        |  377 ++++++
 board/schneider/rzn1-snarc/rzn1.c             |   40 +
 board/schneider/rzn1-snarc/spkgimage.cfg      |   26 +
 boot/image.c                                  |    1 +
 configs/rzn1_snarc_defconfig                  |   24 +
 doc/board/index.rst                           |    1 +
 doc/board/renesas/index.rst                   |   10 +
 doc/board/renesas/renesas.rst                 |   45 +
 doc/board/renesas/rzn1.rst                    |   77 ++
 doc/mkimage.1                                 |   45 +
 drivers/clk/renesas/Kconfig                   |   15 +-
 drivers/clk/renesas/Makefile                  |    3 +-
 drivers/clk/renesas/r9a06g032-clocks.c        | 1091 +++++++++++++++++
 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_ctrl.c                |  414 +++++++
 include/configs/rzn1-snarc.h                  |   13 +
 include/dt-bindings/clock/r9a06g032-sysctrl.h |  149 +++
 include/dt-bindings/pinctrl/rzn1-pinctrl.h    |  141 +++
 include/image.h                               |    1 +
 include/renesas/ddr_ctrl.h                    |  175 +++
 include/renesas/is43tr16256a_125k_CTL.h       |  419 +++++++
 .../renesas/jedec_ddr3_2g_x16_1333h_500_cl8.h |  399 ++++++
 tools/Makefile                                |    1 +
 tools/renesas_spkgimage.c                     |  338 +++++
 tools/renesas_spkgimage.h                     |   87 ++
 42 files changed, 5471 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/dts/r9a06g032-ddr.dtsi
 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-rmobile/Kconfig.rzn1
 create mode 100644 board/schneider/rzn1-snarc/Kconfig
 create mode 100644 board/schneider/rzn1-snarc/Makefile
 create mode 100644 board/schneider/rzn1-snarc/ddr_async.c
 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 doc/board/renesas/rzn1.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_ctrl.c
 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 include/renesas/ddr_ctrl.h
 create mode 100644 include/renesas/is43tr16256a_125k_CTL.h
 create mode 100644 include/renesas/jedec_ddr3_2g_x16_1333h_500_cl8.h
 create mode 100644 tools/renesas_spkgimage.c
 create mode 100644 tools/renesas_spkgimage.h