blob: e442a836ee447113a2789fdda63df40080db4f85 [file] [log] [blame]
.. zephyr:board:: rzg3s_smarc
Overview
********
The Renesas RZ/G3S SMARC Evaluation Board Kit (RZ/G3S-EVKIT) consists of a SMARC v2.1 module board and a carrier board.
* Device: RZ/G3S R9A08G045S33GBG
* Cortex-A55 Single, Cortex-M33 x 2
* BGA 359-pin, 14mmSq body, 0.5mm pitch
* SMARC v2.1 Module Board Functions
* LPDDR4 SDRAM: 1GB x 1pc
* QSPI flash memory: 128Mb x 1pc
* eMMC memory: 64GB x 1pc
* PMIC power supply RAA215300A2GNP#HA3 implemented
* microSD card x2
* I3C connector
* JTAG connector
* ADC x8 channels
* Current monitor (USB Micro B)
* Carrier Board Functions
* Gigabit Ethernet x2
* USB2.0 x2ch (OTG x1ch, Host x1ch)
* CAN-FD x2
* microSD card x1
* Mono speaker, Stereo headphone, Mic., and Aux..
* PMOD x2
* USB-Type C for power input
* PCIe Gen2 4-lane slot (G3S supports only 1-lane)
* M.2 Key E
* M.2 Key B and SIM card
* Coin cell battery holder (3.0V support)
Hardware
********
The Renesas RZ/G3S MPU documentation can be found at `RZ/G3S Group Website`_
.. figure:: rzg3s_block_diagram.webp
:width: 600px
:align: center
:alt: RZ/G3S group feature
RZ/G3S block diagram (Credit: Renesas Electronics Corporation)
Supported Features
==================
The ``rzg3s_smarc/r9a08g045s33gbg/cm33`` board target supports the ARM Cortex-M33 System Core without FPU
and the following hardware features:
+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component |
+===========+============+=====================================+
| NVIC | on-chip | arch/arm |
+-----------+------------+-------------------------------------+
| SYSTICK | on-chip | arch/arm |
+-----------+------------+-------------------------------------+
| PINCTRL | on-chip | pinctrl |
+-----------+------------+-------------------------------------+
| GPIO | on-chip | gpio |
+-----------+------------+-------------------------------------+
| UART | on-chip | serial |
+-----------+------------+-------------------------------------+
Other hardware features are currently not supported by the port.
Programming and Debugging
*************************
RZ/G3S-EVKIT is designed to start different systems on different cores.
It uses Yocto as the build system to build Linux system and boot loaders
to run BL2 TF-A on Cortex-A55 System Core before starting Zephyr. The minimal steps are described below.
1. Follow ''2.2 Building Images'' of `SMARC EVK of RZ/G3S Linux Start-up Guide`_ to prepare the build environment.
2. Before build, add ``PLAT_M33_BOOT_SUPPORT=1`` to meta-renesas/meta-rzg3s/recipes-bsp/trusted-firmware-a/trusted-firmware-a.bbappend.
.. code-block:: bash
:emphasize-lines: 6
require trusted-firmware-a.inc
COMPATIBLE_MACHINE_rzg3s = "(rzg3s-dev|smarc-rzg3s)"
PLATFORM_rzg3s-dev = "g3s"
EXTRA_FLAGS_rzg3s-dev = "BOARD=dev14_1_lpddr PLAT_SYSTEM_SUSPEND=vbat"
PLATFORM_smarc-rzg3s = "g3s"
EXTRA_FLAGS_smarc-rzg3s = "BOARD=smarc PLAT_SYSTEM_SUSPEND=vbat PLAT_M33_BOOT_SUPPORT=1"
3. Start the build:
.. code-block:: bash
MACHINE=smarc-rzg3s bitbake core-image-minimal
The below necessary artifacts will be located in the build/tmp/deploy/images
+---------------+-----------------------------+
| Artifacts | File name |
+===============+=============================+
| Boot loader | bl2_bp_spi-smarc-rzg3s.srec |
| | |
| | fip-smarc-rzg3s.srec |
+---------------+-----------------------------+
| Flash Writer | FlashWriter-smarc-rzg3s.mot |
+---------------+-----------------------------+
4. Follow ''4.2 Startup Procedure'' of `SMARC EVK of RZ/G3S Linux Start-up Guide`_ for power supply and board setting
at SCIF download (SW_MODE[1:4] = OFF, ON, OFF, ON) and Cortex-A55 cold boot (SW_CONFIG[1:6] = OFF, OFF, ON, OFF, OFF, OFF)
5. Follow ''4.3 Download Flash Writer to RAM'' of `SMARC EVK of RZ/G3S Linux Start-up Guide`_ to download Flash Writer to RAM
6. Follow ''4.4 Write the Bootloader'' of `SMARC EVK of RZ/G3S Linux Start-up Guide`_ to write the boot loader
to the target board by using Flash Writer.
Applications for the ``rzg3s_smarc`` board can be built in the usual way as
documented in :ref:`build_an_application`.
Console
=======
The UART port for Cortex-M33 System Core can be accessed by connecting `Pmod USBUART <https://store.digilentinc.com/pmod-usbuart-usb-to-uart-interface/>`_
to the upper side of ``PMOD1_3A``.
Debugging
=========
It is possible to load and execute a Zephyr application binary on
this board on the Cortex-M33 System Core from
the internal SRAM, using ``JLink`` debugger (:ref:`jlink-debug-host-tools`).
.. note::
Currently it's required Renesas BL2 TF-A to be started on Cortex-A55 System Core
before starting Zephyr as it configures clocks and the Cortex-M33 System Core before starting it.
Here is an example for building and debugging with the :zephyr:code-sample:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: rzg3s_smarc/r9a08g045s33gbg/cm33
:goals: build debug
Flashing
========
Zephyr application can be flashed to QSPI storage and then loaded by
Renesas BL2 TF-A running on the Cortex-A55 System Core and starting binary on the Cortex-M33 System Core.
The Zephyr application binary has to be converted to Motorolla S-record `SREC`_ format
which is generated automatically in Zephyr application build directory with the extension ``s19``.
.. _SREC: https://en.wikipedia.org/wiki/SREC_(file_format)
.. _Flashing on QSPI:
Flashing on QSPI using Flash Writer
---------------------------------------
Zephyr binary has to be converted to **srec** format.
* Download and start **Flash Writer** as described in ''4.3 Download Flash Writer to RAM'' of `SMARC EVK of RZ/G3S Linux Start-up Guide`_
* Use **XLS2** command to flash Zephyr binary
* Input when asked:
.. code-block:: console
===== Please Input Program Top Address ============
Please Input : H'23000
===== Please Input Qspi Save Address ===
Please Input : H'200000
* Then send Zephyr **s19** file from terminal (use ''ascii'' mode)
* Reboot the board in the **QSPI Boot Mode**
.. code-block:: console
-- Load Program to SRAM ---------------
Flash writer for RZ/G3S Series V0.60 Jan.26,2023
Product Code : RZ/G3S
>XLS2
===== Qspi writing of RZ/G2 Board Command =============
Load Program to Spiflash
Writes to any of SPI address.
Program size & Qspi Save Address
===== Please Input Program Top Address ============
Please Input : H'23000
===== Please Input Qspi Save Address ===
Please Input : H'200000
please send ! ('.' & CR stop load)
I Flash memory...
Erase Completed
Write to SPI Flash memory.
======= Qspi Save Information =================
SpiFlashMemory Stat Address : H'00200000
SpiFlashMemory End Address : H'002098E6
===========================================================
Flashing on QSPI using west
---------------------------
Before using ``flash`` command, the board must be set to Cortex-M33 cold boot (SW_CONFIG[1:6] = OFF, OFF, ON, OFF, OFF, ON).
After flashing, it must be set back to Cortex-A55 cold boot to run.
The minimal version of SEGGER JLink SW which can perform flashing of QSPI memory is v7.96.
**Note:** It's verified that we can perform flashing successfully with SEGGER JLink SW v7.98g so please use this or later
version.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: rzg3s_smarc/r9a08g045s33gbg/cm33
:goals: build flash
:compact:
References
**********
.. target-notes::
.. _RZ/G3S Group Website:
https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rz-mpus/rzg3s-general-purpose-microprocessors-single-core-arm-cortex-a55-11-ghz-cpu-and-dual-core-cortex-m33-250
.. _RZG3S-EVKIT Website:
https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rz-mpus/rzg3s-evkit-evaluation-board-kit-rzg3s-mpu
.. _SMARC EVK of RZ/G3S Linux Start-up Guide:
https://www.renesas.com/us/en/document/gde/smarc-evk-rzg3s-linux-start-guide-rev104