Ariaboard Renesas RZ G2L/ RZ V2L Software Guide: Difference between revisions
No edit summary |
m (C2h2 moved page Ariaboard Renesas G2L Software Guide to Ariaboard Renesas RZ G2L/ RZ V2L Software Guide) |
||
(One intermediate revision by the same user not shown) | |||
Line 15: | Line 15: | ||
| External port || N/A | | External port || N/A | ||
|- | |- | ||
| Storage || eMMC | | Storage || eMMC 4/16G, SD Card slot | ||
|} | |} | ||
Latest revision as of 21:43, 7 November 2024
Spec
CPU | Dual Cortex®[email protected] |
GPU | Mali G31 |
RAM | 1024M/2048M/4096M DDR4 |
USB | 1xUSB 2.0 OTG, 1xUSB 2.0 |
Video Output | 1xHDMI(From RGB), 1xDSI-MIPI |
Ethernet | RGMII 1Gbps x2 |
External port | N/A |
Storage | eMMC 4/16G, SD Card slot |
Image Installation
Ubuntu 20.04 pre-install apts
apt install git build-essential flex bison
Fetch RZ/G2L Linux SDK
git clone https://git.g77k.com/supercatexpert/rzg2-linux-sdk.git -b rzg2l cd rzg2-linux-sdk git submodule update --init
or from Github
git clone https://github.com/ariaboard-com/renesas_rzg2l_linux_sdk cd renesas_rzg2l_linux_sdk git submodule update --init
Prepare Flash Writer and Bootloader
Use pre-built Flash Writer and bootloader
For G2L board with 1GB RAM:
Description | URL |
---|---|
Flash Writer | Download Link |
Loader (BL2) | Download Link |
Loader (BL31 + U-Boot) | Download Link |
For G2L board with 2GB RAM:
Description | URL |
---|---|
Flash Writer | Download Link |
Loader (BL2) | Download Link |
Loader (BL31 + U-Boot) | Download Link |
For G2L board with 4GB RAM:
Description | URL |
---|---|
Flash Writer | Download Link |
Loader (BL2) | Download Link |
Loader (BL31 + U-Boot) | Download Link |
For V2L board with 2GB RAM:
Description | URL |
---|---|
Flash Writer | Download Link |
Loader (BL2) | Download Link |
Loader (BL31 + U-Boot) | Download Link |
Build Flash Writer and bootloader
Build RZG2L Flash Writer
For G2L board:
cd rzg2-flash-writer ./build-g2l-emmc.sh cd ..
For V2L board:
cd rzg2-flash-writer ./build-v2l-emmc.sh cd ..
Build U-Boot
For G2L with 1GB RAM:
cd renesas-u-boot-cip ./build-g2l.sh cd ..
For G2L with 2GB RAM:
cd renesas-u-boot-cip ./build-g2l-2g.sh cd ..
For G2L with 4GB RAM:
cd renesas-u-boot-cip ./build-g2l-4g.sh cd ..
For V2L with 2GB RAM:
cd renesas-u-boot-cip ./build-v2l-2g.sh cd ..
Build ARM Trusted Firmware
ARM Trusted Firmware should be built after the u-boot one.
For G2L with 1GB RAM
cd arm-trusted-firmware ./build-1g.sh
For G2L with 2GB RAM
cd arm-trusted-firmware ./build-2g.sh
For G2L with 4GB RAM
cd arm-trusted-firmware ./build-4g.sh
For V2L with 2GB RAM
cd arm-trusted-firmware ./build-v2l-2g.sh
Boot Flash Burner from serial port
Set serial port of PC to 115200bps, 8N1. Set boot mode of board to download mode. Connect Debug port of board to the serial port of PC. Power on the board, then something like "please send !" will be printed on terminal.
Upload file rzg2-flash-writer/AArch64_output/Flash_Writer_SCIF_RZG2L_SMARC_DDR4_2GB.mot (or rzg2-flash-writer/AArch64_output/Flash_Writer_SCIF_RZV2L_SMARC_DDR4_4GB.mot for V2L SoC) with ASCII mode. After uploading, prompt ">" will appear in terminal.
Install ARM Trusted Firmware & U-Boot
For G2L:
Filename | Program Top Address | eMMC Save Partition | eMMC Save Sectors | Description |
---|---|---|---|---|
arm-trusted-firmware/deploy/g2l/bl2_bp.srec | 00011E00 | boot partition1 | 000001 | Loader (BL2) |
arm-trusted-firmware/deploy/g2l/fip.srec | 00000000 | boot partition1 | 000100 | Loader (BL31 + U-Boot) |
For V2L:
Filename | Program Top Address | eMMC Save Partition | eMMC Save Sectors | Description |
---|---|---|---|---|
arm-trusted-firmware/deploy/v2l/bl2_bp.srec | 00011E00 | boot partition1 | 000001 | Loader (BL2) |
arm-trusted-firmware/deploy/v2l/fip.srec | 00000000 | boot partition1 | 000100 | Loader (BL31 + U-Boot) |
Use EM_W command to write S-record file into eMMC. e.g:
>EM_W EM_W Start -------------- --------------------------------------------------------- Please select,eMMC Partition Area. 0:User Partition Area : 30535680 KBytes eMMC Sector Cnt : H'0 - H'03A3DFFF 1:Boot Partition 1 : 16384 KBytes eMMC Sector Cnt : H'0 - H'00007FFF 2:Boot Partition 2 : 16384 KBytes eMMC Sector Cnt : H'0 - H'00007FFF --------------------------------------------------------- Select area(0-2)>1 <<<< Enter "1" here -- Boot Partition 1 Program ----------------------------- Please Input Start Address in sector :1 <<<< Enter "1" here Please Input Program Start Address : 00011E00 <<<< Enter "00011E00" here Work RAM(H'50000000-H'50FFFFFF) Clear.... please send ! ('.' & CR stop load) SAVE -FLASH....... EM_W Complete!
eMMC Boot Settings
Please note that for eMMC booting, the following EXT_CSD registers need to be modified:
EXT_CSD[B1] = 0x02 EXT_CSD[B3] = 0x08
Use EM_SECSD command to modify EXT CSD registers:
>EM_SECSD Please Input EXT_CSD Index(H'00 - H'1FF) :b1 EXT_CSD[B1] = 0x00 Please Input Value(H'00 - H'FF) :2 EXT_CSD[B1] = 0x02 >EM_SECSD Please Input EXT_CSD Index(H'00 - H'1FF) :b3 EXT_CSD[B1] = 0x00 Please Input Value(H'00 - H'FF) :8 EXT_CSD[B1] = 0x08
Check Bootloader
Power off the board. Set boot mode to eMMC boot. Then power on. It should be able to boot into u-boot:
NOTICE: BL2: v2.5(release):v2.5/rzg2l-1.00-15-g9eb221438 NOTICE: BL2: Built : 17:28:47, Nov 2 2021 NOTICE: BL2: eMMC boot from partition 1 NOTICE: BL2: Load dst=0x1c7c0 src=(p:1)0x20000(256) len=0x10(1) NOTICE: BL2: eMMC boot from partition 1 NOTICE: BL2: Load dst=0x1c960 src=(p:1)0x20010(256) len=0x28(1) NOTICE: BL2: eMMC boot from partition 1 NOTICE: BL2: Load dst=0x44000000 src=(p:1)0x20090(256) len=0x6069(49) NOTICE: BL2: eMMC boot from partition 1 NOTICE: BL2: Load dst=0x1c7c0 src=(p:1)0x20000(256) len=0x10(1) NOTICE: BL2: eMMC boot from partition 1 NOTICE: BL2: Load dst=0x1c960 src=(p:1)0x20010(256) len=0x28(1) NOTICE: BL2: Load dst=0x1c960 src=(p:1)0x20038(256) len=0x28(1) NOTICE: BL2: eMMC boot from partition 1 NOTICE: BL2: Load dst=0x50000000 src=(p:1)0x26100(304) len=0xa2975(1302) NOTICE: BL2: Booting BL31 NOTICE: BL31: v2.5(release):v2.5/rzg2l-1.00-15-g9eb221438 NOTICE: BL31: Built : 17:28:50, Nov 2 2021 U-Boot 2020.10-g2579e8a259-dirty (Oct 25 2021 - 12:04:40 +0900) CPU: Renesas Electronics E rev 16.15 Model: rzg2l-novotech DRAM: 896 MiB MMC: sh-sdhi: 0, sh-sdhi: 1 Loading Environment from MMC... *** Warning - bad CRC, using default environment In: serial@1004b800 Out: serial@1004b800 Err: serial@1004b800 Net: Error: ethernet@11c20000 address not set. No ethernet found. Hit any key to stop autoboot: 0
Build Linux Kernel
cd linux-cip ./build-g2l.sh
Create Linux root filesystem
Prepare a SD card with capacity of 16GB or more. Use partition tool like fdisk, create 2 partitions on SD card: first partition should be FAT16/32, with size at least 64MiB, secord partition should be ext4, size should be at least 8GiB. Copy files below into first partition (replace /dev/sdb1 to the first partition of your real SD card device path):
For G2L with 1GB RAM:
sudo -s mount /dev/sdb1 /mnt cp -v linux-cip/deploy/g2l/Image /mnt cp -v linux-cip/deploy/g2l/r9a07g044l2-rzg2l-novotech.dtb /mnt/r9a07g044l2-rzg2l-novotech.dtb cp -v linux-cip/deploy/g2l/modules.tar.gz /mnt umount /dev/sdb1 exit
For G2L with 2GB RAM:
sudo -s mount /dev/sdb1 /mnt cp -v linux-cip/deploy/g2l/Image /mnt cp -v linux-cip/deploy/g2l/r9a07g044l2-rzg2l-novotech2.dtb /mnt/r9a07g044l2-rzg2l-novotech.dtb cp -v linux-cip/deploy/g2l/modules.tar.gz /mnt umount /dev/sdb1 exit
For G2L with 4GB RAM:
sudo -s mount /dev/sdb1 /mnt cp -v linux-cip/deploy/g2l/Image /mnt cp -v linux-cip/deploy/g2l/r9a07g044l2-rzg2l-novotech4.dtb /mnt/r9a07g044l2-rzg2l-novotech.dtb cp -v linux-cip/deploy/g2l/modules.tar.gz /mnt umount /dev/sdb1 exit
For V2L with 2GB RAM:
sudo -s mount /dev/sdb1 /mnt cp -v linux-cip/deploy/g2l/Image /mnt cp -v linux-cip/deploy/g2l/r9a07g054l2-rzv2l-novotech2.dtb /mnt/r9a07g054l2-rzv2l-novotech.dtb cp -v linux-cip/deploy/g2l/modules.tar.gz /mnt umount /dev/sdb1 exit
Then create Debian 12 (Bookworm) rootfs:
sudo -s apt-get install qemu-user-static debootstrap schroot mkdir debian-rootfs cd debian-rootfs export ROOTFS="$(pwd)" qemu-debootstrap --arch arm64 --variant buildd --include=ca-certificates,apt,wget,sudo,debootstrap,isc-dhcp-client,nano,network-manager bookworm "${ROOTFS}" http://deb.debian.org/debian chroot "${ROOTFS}" passwd root #Input your root password exit tar -xf ../linux-cip/deploy/g2l/modules.tar.gz tar -czpf ../debian-bookworm-rootfs.tar.gz . exit
Mount and extract rootfs to the second partition of your SD card (replace /dev/sdb2 to your one).
sudo -s mount /dev/sdb2 /mnt tar -xpzf debian-bookworm-rootfs.tar.gz -C /mnt # Copy rootfs to SD card so that you can install it to eMMC (Optional): cp -v debian-bookworm-rootfs.tar.gz /mnt umount /dev/sdb2 exit
Using pre-built system image
Debian 12 (Bookworm) pre-built SD card image (need at least 16GB capacity): http://dl.ariaboard.com/renesas_g2l/images/rzg2l-debian-bookworm-sd-20241010.img.gz
on PC:Pre-built system image can be used with both eMMC and SD card. Use commands below on PC to restore disk image to SD card (assume the SD card device is /dev/sdb and image file is emmc.img.gz):
#on a Linux PC: zcat emmc.img.gz | sudo dd of=/dev/sdb bs=1M status=progress sync #on the Linux PC: Copy image to SD card so that you can restore it to eMMC (Optional): sudo -s partprobe mount /dev/sdb2 /mnt cp -v emmc.img.gz /mnt umount /mnt
Boot kernel & rootfs from SD card
At u-boot auto booting count down, press Escape twice to break into u-boot command-line. Use commands below to boot from SD card:
run sdboot
The device path of SD card is /dev/mmcblk1, and the path of eMMC is /dev/mmcblk0. Kernel and rootfs can be written into eMMC with the same partition structure as SD card.
If you copied system image to SD card, you can restore it to eMMC with commands below:
zcat emmc.img.gz | sudo dd of=/dev/mmcblk0 bs=1M status=progress sync
Enable Audio AMP
Set GPIO 43-0 to High:
Kernel 4.19:
echo 464 >/sys/class/gpio/export echo out >/sys/class/gpio/gpio464/direction echo 1 >/sys/class/gpio/gpio464/value
Kernel 5.10:
echo 464 >/sys/class/gpio/export echo out >/sys/class/gpio/P43_0/direction echo 1 >/sys/class/gpio/P43_0/value
Power Control of Wireless
Set GPIO 4-1 to Low:
Kernel 4.19:
echo 153 >/sys/class/gpio/export echo out >/sys/class/gpio/gpio153/direction echo 0 >/sys/class/gpio/gpio153/value
Kernel 5.10:
echo 153 >/sys/class/gpio/export echo out >/sys/class/gpio/P4_1/direction echo 0 >/sys/class/gpio/P4_1/value
ALSA Volume Setup
amixer sset "PCM" 100% amixer sset "Line" 100% amixer sset "Line DAC" 100%