(6 intermediate revisions by the same user not shown) Line 2:
Line 2:
{{#vardefine:URL_PEEDI|[https://ronetix.at/product/peedi-jtag-swd-bdm-emulator-and-flash-programmer/ PEEDI]}}
{{#vardefine:URL_PEEDI|[https://ronetix.at/product/peedi-jtag-swd-bdm-emulator-and-flash-programmer/ PEEDI]}}
[[File:RNX-RZG2UL-OSM_top.png|thumb]]
[[File:RNX-RZG2UL-OSM_top.png|thumb]]
= Overview =
= = Overview = =
The Yocto Project is an open source collaboration project that helps developers create custom Linux-based systems for embedded products, regardless of the hardware architecture.<br>
The Yocto Project is an open source collaboration project that helps developers create custom Linux-based systems for embedded products, regardless of the hardware architecture.<br>
This article show how to build Yocto Image for {{#var:HARDWARE_NAME}} CPU module using:<br>
This article show how to build Yocto Image for {{#var:HARDWARE_NAME}} CPU module using:<br>
Line 18:
Line 18:
[https://www.yoctoproject.org/docs/ Learn more about Yocto]
[https://www.yoctoproject.org/docs/ Learn more about Yocto]
= Installing required packages =
= = Installing required packages = =
Please make sure your host PC is running Ubuntu 20.04+ 64-bit and install the following packages:
Please make sure your host PC is running Ubuntu 20.04+ 64-bit and install the following packages:
Line 24:
Line 24:
$ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \
$ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping libsdl1.2-dev xterm
xz-utils debianutils iputils-ping libsdl1.2-dev xterm python-is-python3
$ sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev python-git-doc \
$ sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev python-git-doc \
Line 34:
Line 34:
More details about the Yocto Environment Setup can be found
More details about the Yocto Environment Setup can be found
[https://www.yoctoproject.org/docs/2.6/brief-yoctoprojectqs/brief-yoctoprojectqs.html#brief-build-system-packages on the Yocto official site]
[https://docs .yoctoproject.org/brief-yoctoprojectqs/index .html on the Yocto official site]
= Download Yocto based on Renesas Verified Linux Package =
= = Download Yocto based on Renesas Verified Linux Package v3.0.5 = =
$ git config --global user.name "Your Name"
$ git config --global user.name "Your Name"
Line 48:
Line 48:
$ cd rzg_vlp
$ cd rzg_vlp
= Setup and build Yocto =
= = Setup and build Yocto = =
$ TEMPLATECONF=$PWD/meta-renesas/meta-rzg2l/docs/template/conf/ source poky/oe-init-build-env build
$ TEMPLATECONF=$PWD/meta-ronetix /conf /templates /default source poky/oe-init-build-env build
$ MACHINE=rnx-rzg2ul-osm bitbake core-image-bsp
$ MACHINE=rnx-rzg2ul-osm bitbake core-image-bsp
== Build Results ==
== Build Results ==
The resulted images are located in tmp/deploy/images/rnx-rzg2ul-osm
The resulted images are located in ./ tmp/deploy/images/rnx-rzg2ul-osm
= Programming images =
= = Programming Images = =
The bootloaders (BL2, BL3 and U-BOOT) and the Linux Kernel can be programmed on the QSPI Flash or on the eMMC.<br>
* [[RNX -RZG2UL-OSM_Programming_Images|Programming Images]]
The RoorFS can be programmed on the eMMC or on a SD card (J41 on the carrier board).
More information can be found in "r01us0616ej0100-rz-g(Linux Start-up Guide RZG2L,LC,UL).pdf" which is part of
<!-- use template -->
the Renesas RZG Verified Linux Package: <br>
{{SeeAlso }}
* https://www.renesas.com/us/en/document/swo/rzg-verified-linux-package-v305rtk0ef0045z0021azj-v305zip?r=1597481 <br>
or <br>
* http://download.ronetix.at/boards/doc/RNX-RZG2UL-OSM/RTK0EF0045Z0021AZJ-v3.0.5.zip
== Serial terminal connection ==
A serial terminal connection through USB to UART bridge is required.
On the carrier board, set the boot mode to "SCIF Download mode".
{| class="wikitable"
|-
!
! J31, pin 1-2
! J31, pin 3-4
|-
| SCIF Download mode
| close
| open
|-
| QSPI Boot mode
| open
| close
|-
| eMMC Boot mode
| close
| close
|}
* Connect a USB Type-microAB cable to J3 (UART DBG).
* Start a terminal app (for example minicom) and configure to use the second FTDI port.
* After power up, the CPU reports:
(C) Renesas Electronics Corp.
-- Load Program to System RAM ---------------
please send !
== Programming Bootloaders and Linux Kernel on the QSPI Flash ==
=== Download Flash Writer to RAM ===
In minicom, press Ctrl-A S and then select "ascii" upload protocol.<br>
Select the file tmp/deploy/images/rnx-rzg2ul-osm/Flash_Writer_SCIF_RZG2UL_SMARC_DDR4_1GB_1PCS.mot
After successfully downloading the binary, Flash Writer starts automatically and shows a message
like below on the terminal.
DDR init done.
=== DDR R/W CHECK ====
Check: 41000000, Length: 01000000
Pass!
Flash writer for RZ/G2 Series V1.06 Aug.10,2022
Product Code : RZ/G2UL Type1
>
=== Programming Bootloaders ===
For the boot operation, two bootloader files need to be written to the target board:<br>
* tmp/deploy/images/rnx-rzg2ul-osm/bl2_bp-rnx-rzg2ul-osm.srec (BL2 bootloader + boot parameters)
* tmp/deploy/images/rnx-rzg2ul-osm/fip-rnx-rzg2ul-osm.srec (BL3 + U-BOOT)
“XLS2” command of Flash Writer is used to write bootloader binary files. This command receives binary data from the
serial port and writes the data to a specified address of the Flash ROM with information where the data should be
loaded on the address of the main memory.
>xls2
===== Qspi writing of RZ/G2 Board Command =============
Load Program to Spiflash
Writes to any of SPI address.
Dialog : AT25QL128A
Program Top Address & Qspi Save Address
===== Please Input Program Top Address ============
Please Input : H''''''11E00'''''
===== Please Input Qspi Save Address ===
Please Input : H''''''0'''''
Work RAM(H'50000000-H'53FFFFFF) Clear....
please send ! ('.' & CR stop load)
* Send the data of '''bl2_bp-rnx-rzg2ul-osm.srec''' from terminal software after the message “please send !” is shown.<br>
After successfully download the binary, messages like below are shown on the terminal.<br>
OK
SAVE SPI-FLASH.......
======= Qspi Save Information =================
SpiFlashMemory Stat Address : H'00000000
SpiFlashMemory End Address : H'0000CA38
===========================================================
Next, write another loader file by using XLS2 command again.<br>
>xls2
===== Qspi writing of RZ/G2 Board Command =============
Load Program to Spiflash
Writes to any of SPI address.
Dialog : AT25QL128A
Program Top Address & Qspi Save Address
===== Please Input Program Top Address ============
Please Input : H''''''0'''''
===== Please Input Qspi Save Address ===
Please Input : H''''''1D200'''''
Work RAM(H'50000000-H'53FFFFFF) Clear....
please send ! ('.' & CR stop load)
* Send the data of '''fip-rnx-rzg2ul-osm.srec''' from terminal software after the message "please send !" is shown.<br>
After successfully download the binary, messages like below are shown on the terminal.<br>
OK
SAVE SPI-FLASH.......
======= Qspi Save Information =================
SpiFlashMemory Stat Address : H'0001D200
SpiFlashMemory End Address : H'000D19DF
===========================================================
== Write Linux Kernel and RootFS to a uSD card ==
The simplest way to write Linux Kernel and RootFS is using the bmaptool:<br>
$ sudo bmaptool copy tmp/deploy/images/rnx-rzg2ul-osm/core-image-bsp-rnx-rzg2ul-osm.wic.gz /dev/sdX
* Select QSPI Boot mode and reset the board:
NOTICE: BL2: v2.9(release):215afc594-dirty
NOTICE: BL2: Built : 14:25:58, Oct 31 2023
NOTICE: BL2: Booting BL31
NOTICE: BL31: v2.9(release):215afc594-dirty
NOTICE: BL31: Built : 14:25:58, Oct 31 2023
U-Boot 2021.10 (Oct 30 2023 - 16:04:05 +0000)
CPU: Renesas Electronics K rev 8.7
Model: rnx-rzg2ul-osm
DRAM: 896 MiB
WDT: watchdog@0000000012800800
WDT: Started with servicing (60s timeout)
MMC: sd@11c00000: 0, sd@11c10000: 1
Loading Environment from MMC... OK
In: serial@1004b800
Out: serial@1004b800
Err: serial@1004b800
U-boot WDT started!
Net: eth0: ethernet@11c20000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
17699328 bytes read in 1461 ms (11.6 MiB/s)
27809 bytes read in 4 ms (6.6 MiB/s)
Moving Image from 0x48080000 to 0x48200000, end=49350000
## Flattened Device Tree blob at 48000000
Booting using the fdt blob at 0x48000000
Loading Device Tree to 0000000057ff6000, end 0000000057fffca0 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[ 0.000000] Linux version 5.10.184-cip36-yocto-standard (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 8.3.01
[ 0.000000] Machine model: Ronetix RNX-RZG2UL-OSM based on r9a07g043u11
= See also =
* [[{{#var:HARDWARE_NAME}} Yocto Linux | Yocto Linux]]
* [[{{#var:HARDWARE_NAME}} Linux|Building Linux Kernel]]
* [[{{#var:HARDWARE_NAME}} U-Boot|Building U-Boot]]
* [[{{#var:HARDWARE_NAME}} ARM_Trusted_Firmware|ARM_Trusted_Firmware]]
* [[{{#var:HARDWARE_NAME}} Flash_Writer|Flash Writer]]
Overview
The Yocto Project is an open source collaboration project that helps developers create custom Linux-based systems for embedded products, regardless of the hardware architecture.
This article show how to build Yocto Image for RNX-RZG2UL-OSM CPU module using:
Yocto
Linux Kernel
U-BOOT
Poky
5.10.184
2021.10
Learn more about Yocto
Installing required packages
Please make sure your host PC is running Ubuntu 20.04+ 64-bit and install the following packages:
$ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping libsdl1.2-dev xterm python-is-python3
$ sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev python-git-doc \
sed cvs subversion coreutils texi2html docbook-utils \
help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev \
mercurial automake groff curl lzop asciidoc u-boot-tools dos2unix mtd-utils pv \
libncurses5 libncurses5-dev libncursesw5-dev libelf-dev zlib1g-dev bmap-tools
More details about the Yocto Environment Setup can be found
on the Yocto official site
Download Yocto based on Renesas Verified Linux Package v3.0.5
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ mkdir ~/yocto-renesas
$ cd ~/yocto-renesas
Download the Renesas Verified Linux Package
$ git clone https://github.com/ronetix/rzg_vlp.git
$ cd rzg_vlp
Setup and build Yocto
$ TEMPLATECONF=$PWD/meta-ronetix/conf/templates/default source poky/oe-init-build-env build
$ MACHINE=rnx-rzg2ul-osm bitbake core-image-bsp
Build Results
The resulted images are located in ./tmp/deploy/images/rnx-rzg2ul-osm
Programming Images
See also