# RZ/G Family (/integration/chip_vendors/renesas/rzg_family)



Supported boards in the RZ/G Family:

* **RZ/G2L-EVKIT**
* **RZ/G2UL-EVKIT**
* **RZ/G3E-EVKIT**
* **RZ/G3L-EVKIT**

G2L and G2UL [#g2l-and-g2ul]

The RZ/G2L and RZ/G2UL are MPUs with support for running Linux. Projects are built for them
using a cross-compiler CLI toolchain SDK in a Linux PC environment (WSL, Docker,
etc. can be used on Windows).

The G2L has a Wayland desktop and the project appears as a Wayland window. The G2UL
does not have a desktop so the project is fullscreen and uses the `fbdev` driver.

<Callout type="info">
  The SDK currently uses LVGL v8.3 so this project uses this version to mirror the SDK
  version, even though LVGL is statically linked. You may try using newer versions of LVGL.
  See the [v8-to-v9 Migration Guide](https://docs.lvgl.io/9.0/CHANGELOG.html#migration-guide)
  for things you will need to address.
</Callout>

<Callout type="tip" title="Prefer Ubuntu on the G2L?">
  Canonical publishes Ubuntu images for the RZ/G2L, and LVGL publishes prebuilt Ubuntu packages.
  That path needs no cross-compiler and gives you current LVGL with GPU-accelerated DRM/EGL rendering:
  see [LVGL on the RZ/G2L with Ubuntu](/integration/embedded_linux/distros/ubuntu/rzg2l).
</Callout>

Run the Project [#run-the-project]

<Steps>
  <Step>
    **Clone the project**: Clone the ready-to-use repository for your selected board:

    ```bash title="bash" lineNumbers=1
    git clone https://github.com/lvgl/lv_port_renesas_rz-g2l-evkit --recurse-submodules
    ```

    Downloading the `.zip` from GitHub doesn't work as it doesn't download the submodules.
  </Step>

  <Step>
    **Build and upload**: Follow the instructions in the project's `README.md` to obtain the SD Card
    image and toolchain installer, build, and upload the project to the board.
  </Step>

  <Step>
    **Free up the display**: Stop any automatically started demos. On the G2UL run
    `systemctl stop demo-launcher` in the terminal.
  </Step>

  <Step>
    **Run the project**:

    ```bash title="bash" lineNumbers=1
    ./lvgl_demo_benchmark
    ```
  </Step>
</Steps>

Modify the Project [#modify-the-project]

Open a demo [#open-a-demo]

The entry point is contained in `src/main.c`.

You can disable the LVGL demos (`lv_demo_benchmark()`) (or just comment them out)
and call some `lv_example_...()` functions, or add your own custom code.

Configuration [#configuration]

Edit `lv_conf.h` and `lv_drv_conf.h` to configure LVGL. The board image
contains LVGL and lv\_drivers as dynamically linkable libraries. This project builds
LVGL statically for customizability and to port the LVGL v9 benchmark from LVGL v8.3.

G3E [#g3e]

The RZ/G3E is a high-performance quad-core MPU. Projects are built for it using an
SDK that was generated with Yocto. You can customize a Yocto image+SDK or use the
pre-built ones. The SDK is intended for a Linux PC environment (WSL, Docker,
etc. can be used on Windows).

The G3E has a Wayland desktop but it should be stopped with `systemctl stop weston`
before running the default project, since that runs in fullscreen using the OpenGL EGL+DRM driver.

LVGL is not included in the SDK so you should build whichever version you need. Later
versions of LVGL include the optimal OpenGL driver.

Run the Project [#run-the-project-1]

<Steps>
  <Step>
    **Clone the project**: Clone the ready-to-use repository:

    ```bash title="bash" lineNumbers=1
    git clone https://github.com/lvgl/lv_port_renesas_rz-g3e-evkit --recurse-submodules
    ```

    Downloading the `.zip` from GitHub doesn't work as it doesn't download the submodules.
  </Step>

  <Step>
    **Build and upload**: Follow the instructions in the project's `README.md` to flash the board
    bootloader and obtain the Yocto SD Card image and SDK (pre-built or custom-built), build, and
    upload the project to the board.
  </Step>

  <Step>
    **Free up the display**: Stop the Wayland desktop if using the OpenGL, DRM, or fbdev drivers.
    Run `systemctl stop weston` in the terminal.
  </Step>

  <Step>
    **Run the project**:

    ```bash title="bash" lineNumbers=1
    ./lvglsim
    ```
  </Step>
</Steps>

Modify the Project [#modify-the-project-1]

Open a demo [#open-a-demo-1]

The entry point is contained in `lv_port_linux/src/main.c`.

You can disable the LVGL demos (`lv_demo_benchmark()`) (or just comment them out)
and call some `lv_example_...()` functions, or add your own custom code.

Configuration [#configuration-1]

Edit `lv_conf.h` to configure LVGL. You can edit `lv_conf.defaults` — a sparse
version of `lv_conf.h` which you can use to regenerate `lv_conf.h` by running

```bash title="bash" lineNumbers=1
python3 lv_port_linux/lvgl/scripts/generate_lv_conf.py
```

G3L [#g3l]

The RZ/G3L is a quad-core Cortex-A55 MPU with an Arm Mali GPU, on a SMARC 2.1.1 module
paired with the Common Carrier Board II. Unlike the other boards in this family, it needs
no Yocto build and no bootloader flashing: Renesas' **RZ/G HMI SDK** ships a prebuilt
bootable image and a matching cross-compilation toolchain in a single download, and the
board boots straight from the microSD card.

The project lives in the `lv_port_linux` repository rather than a board-specific one, under
[`boards/renesas_rz-g3l-evkit`](https://github.com/lvgl/lv_port_linux/tree/master/boards/renesas_rz-g3l-evkit),
with two ready-made Kconfig defconfigs: `sw.defconfig` for NEON software rendering over the
Wayland DMABUF backend, and `nanovg.defconfig` for GPU rendering through NanoVG on OpenGL ES,
which also enables glTF for 3D content.

The image boots into a Weston desktop, so the project runs as a Wayland client by default.
The DRM driver is also compiled in and can be used by stopping weston.

See the board's [README](https://github.com/lvgl/lv_port_linux/blob/master/boards/renesas_rz-g3l-evkit/README.md)
for the full guide.

Support [#support]

In case of any problems or questions open an issue in the corresponding repository.
