HummingBoard EU205 & RZ/G2L/G2LC SoM Quick Start Guide

HummingBoard EU205 & RZ/G2L/G2LC SoM Quick Start Guide

Revision and Notes

 

Purpose

This guide provides basic instructions for operating the SolidRun HummingBoard-EU205 with RZ-G2L SoM and booting into Linux. Advanced usage scenarios are covered by separate technical documentation.

Hardware Setup

Connections

  • 12V DC Power Adapter (12V recommended, supports up to 48V)

  • Type-C USB Cable for serial console

  • microSD Card

  • Ethernet

  • Configuration Jumpers

    • for G2L SoM: J5016 (4 pieces), J5026, J5027

    • for G2LC SoM: J5017, J5015, J5024, J5018, J5026, J5027

EU205 Layout Front.png
Board Connections: Front Side
EU205 Layout Back.png
Board Connections: Back Side
EU205 Layout I_Os no background.png

 

 

Boot Select

Configure the boot-mode for microSD using onboard DIP switches S3 & S4:

G2L SoM

S3-1 (MD0)

S3-2 (MD1)

S4-1 (MD2)

S4-2 (SD_DEV_SEL)

G2L SoM

S3-1 (MD0)

S3-2 (MD1)

S4-1 (MD2)

S4-2 (SD_DEV_SEL)

microSD

0

0

0

0

eMMC

1

0

0

1

Serial Download

1

0

1

X

G2LC SoM

S3-1 (MD0)

S3-2 (MD1)

S4-1 (MD2)

S4-2 (SD_DEV_SEL)

G2LC SoM

S3-1 (MD0)

S3-2 (MD1)

S4-1 (MD2)

S4-2 (SD_DEV_SEL)

microSD

0

0

0

1

eMMC

1

0

0

0

Serial Download

1

0

1

X

Note: 0 = OFF, 1 = ON, X = don't care.

Console

Start an application for serial console - such as PuTTY or tio. Configure it for baud rate 115200 and the COMx or ttyUSBy interface representing the micro-USB console connection. For details also see Serial Connection.

Note that the serial device only appears after powering up the board. On first use it is recommended to follow below procedure:

  1. connect console cable

  2. connect power

  3. find and connect to COMx / ttyUSBy interface with terminal application

  4. push in microSD

  5. press reset button

Software Setup

Prepare bootable microSD Card

  1. Download prebuilt sdcard image based on either Buildroot or Debian:
    rzg2l-solidrun-sd-debian-<hash>.img.xz
    rzg2l-solidrun-sd-buildroot-<hash>.img.xz

  2. uncompress downloaded image file

  3. write image file to microSD card to create a byte-for-byte copy. https://etcher.io/ is recommended, professionals may use unix “dd” command.

Attention: The SoM modules and carrier boards are programmed with critical identifying information, including the product name and SKU, stored in an EEPROMs at I2C bus 0, addresses 0x50 and 0x57. This data is structured according to the ONIE TLV standard and is essential for initializing the product and aligning the software accordingly. The tlv_eeprom command in U-Boot can be used to read this data.

Important: If this information is deleted or becomes corrupted, it will impact the correct initialization and functionality of the product. In such cases, please contact SolidRun support for assistance.

First Steps with Buildroot reference system

Log-In

On power-on with valid software on microSD the system should automatically boot to a login prompt displayed on the serial console:

Welcome to Buildroot rzg2l-solidrun login:

Log in with user-name “root”, password “root”.

Networking

Network interfaces are set to configure automatically using DHCP as soon as an ethernet link has been established.

ping, curl and wget are functional out of the box when connecting to a standard home network.

Show assigned IP:

# ip addr show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 ... inet 192.168.1.181/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0 ... # ip addr show dev eth1 ...

Log-In via SSH

SSH Log-In is active by default using the same insecure username and password.

First Steps with Debian reference system

Log-In

On power-on with valid software on microSD the system should automatically boot to a login prompt displayed on the serial console:

Debian GNU/Linux 12 rzg2l-solidrun ttySC0 rzg2l-solidrun login:

Log in with user-name “root”, no password.

Networking

By default networking is not configured. For advanced or persistent configurations please refer to the Debian Documentation.

For connecting the first RJ45 port (next to power connector) using automatic configuration, execute:

root@rzg2l-solidrun:~# dhclient end0 root@rzg2l-solidrun:~# ip addr show end0 2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether d0:63:b4:05:81:94 brd ff:ff:ff:ff:ff:ff inet 192.168.1.183/24 brd 192.168.1.255 scope global dynamic end0 valid_lft 43195sec preferred_lft 43195sec inet6 fd78:1be0:f231:0:d263:b4ff:fe05:8194/64 scope global dynamic mngtmpaddr valid_lft forever preferred_lft forever inet6 fe80::d263:b4ff:fe05:8194/64 scope link valid_lft forever preferred_lft forever

Log-In via SSH

To log in via SSH, an ssh key must be installed first. Copy your favourite public key, e.g. from ~/.ssh/id_ed25519.pub, into a new file in the root users home directory at ~/.ssh/authorized_keys:

root@rzg2l-solidrun:~# mkdir .ssh root@rzg2l-solidrun:~# cat > .ssh/authorized_keys << EOF ssh-ed25519 AAAAinsertyour pubkey@here EOF

Advanced Steps with Debian/Buildroot reference system

Expand Root Filesystem

After flashing the root filesystem is smaller than the eMMC. To utilize all space, resize both the rootfs partition - and then the filesystem:

  1. inspect partitions:

    Using fdisk, view the current partitions. Take note of the start sector for partition 2!

    root@rzg2l-solidrun:~# fdisk /dev/mmcblk0 Welcome to fdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. This disk is currently in use - repartitioning is probably a bad idea. It's recommended to umount all file systems, and swapoff all swap partitions on this disk. Command (m for help): p Disk /dev/mmcblk0: 14.68 GiB, 15758000128 bytes, 30777344 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa98926ac Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 16384 38911 22528 11M c W95 FAT32 (LBA) /dev/mmcblk0p2 * 38912 1730559 1691648 826M 83 Linux Command (m for help):
  2. resize partition 2:

    Drop and re-create partition 2 at the same starting sector noted before, keeping the ext4 signature when prompted and re-adding the bootable flag:

    Command (m for help): d Partition number (1,2, default 2): 2 Partition 2 has been deleted. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (2048-30777343, default 2048): 38912 Last sector, +/-sectors or +/-size{K,M,G,T,P} (38912-30777343, default 30777343): Created a new partition 2 of type 'Linux' and of size 14.7 GiB. Partition #2 contains a ext4 signature. Do you want to remove the signature? [Y]es/[N]o: N Command (m for help): a Partition number (1,2, default 2): 2 The bootable flag on partition 2 is enabled now. Command (m for help): p Disk /dev/mmcblk0: 14.68 GiB, 15758000128 bytes, 30777344 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa98926ac Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 * 16384 38911 22528 11M c W95 FAT32 (LBA) /dev/mmcblk0p2 * 38912 30777343 30738432 14.7G 83 Linux Command (m for help): w The partition table has been altered. Syncing disks.
  3. resize root filesystem:

    Linux supports online-resizing for the ext4 filesystem. Invoke resize2fs on partition 1 to do so:

    root@rzg2l-solidrun:~# resize2fs /dev/mmcblk0p2

Install to eMMC

eMMC and microSD are not usable at the same time but selected first by boot-select switches and then by software during boot.

Installation of software to the eMMC requires a special procedure:

  1. Download a prebuilt sdcard image based on either Buildroot and create a bootable microSD card.

  2. Format a USB flash drive with FAT32 (or ext4), and place on it the images that are to be installed to the eMMC, both Bootloader and OS - e.g.:
    - rzg2l-solidrun-sd-debian-<hash>.img.xz
    - rzg2l-solidrun-mmc-bootloader-<hash>.img

  3. Insert microSD, set boot-select switches for microSD, then power-on the board and stop in u-boot at the timeout prompt by pressing any key:

    ... Hit any key to stop autoboot: 0 =>
  4. Select eMMC and boot into a small rootfs in initramfs:

    => setenv sdio_select mmc => boot switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf 303 bytes read in 1 ms (295.9 KiB/s) RZ/G2* boot options 1: mmc boot 2: initrd boot Enter choice:

    Quickly type the number “2”, then press return:

    Enter choice: 2 2: initrd boot Retrieving file: /initrd.img 48479777 bytes read in 4013 ms (11.5 MiB/s) ... Welcome to Buildroot buildroot login:
  5. Log-in with user “root”, password “root”

  6. Confirm eMMC is available:

    # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk0 179:0 0 14.7G 0 disk mmcblk0boot0 179:8 0 4M 1 disk mmcblk0boot1 179:16 0 4M 1 disk zram0 253:0 0 0B 0 disk

    When the list includes “mmcblk0boot0” eMMC has been selected successfully.

  7. Connect USB flash drive, then find the images and install them to eMMC:

    # [ 165.516448] usb 2-1: new high-speed USB device number 2 using ehci-platform [ 165.691720] usb-storage 2-1:1.0: USB Mass Storage device detected [ 165.698778] scsi host0: usb-storage 2-1:1.0 [ 166.726993] scsi 0:0:0:0: Direct-Access TOSHIBA TransMemory 5.00 PQ: 0 ANSI: 0 CCS [ 168.358467] sd 0:0:0:0: [sda] 2013184 512-byte logical blocks: (1.03 GB/983 MiB) [ 168.366454] sd 0:0:0:0: [sda] Write Protect is off [ 168.371981] sd 0:0:0:0: [sda] No Caching mode page found [ 168.377329] sd 0:0:0:0: [sda] Assuming drive cache: write through [ 168.405783] sda: sda1 [ 168.411371] sd 0:0:0:0: [sda] Attached SCSI removable disk # # mount /dev/sda1 /mnt # cd /mnt # ls rzg2l-solidrun-mmc-bootloader-<hash>.img rzg2l-solidrun-sd-debian-<hash>.img.xz # # remove write-protection on boot partition # echo 0 > /sys/devices/platform/soc/11c00000.mmc/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0boot0/force_ro # # # write bootloader image # dd if=rzg2l-solidrun-mmc-bootloader-<hash>.img of=/dev/mmcblk0boot0 # # Ensure boot partition is configured # mmc bootpart enable 1 0 /dev/mmcblk0 # # # write OS image # xzcat rzg2l-solidrun-sd-debian-0bf2343.img.xz | dd of=/dev/mmcblk0 bs=4M conv=fsync
  8. power-off the board, remove microSD and change boot select switches for eMMC.

On next power-on the system will boot from eMMC.

Accessing Sensors, Ports and Peripherals

See below some minimal examples making use of various board features:

RGB LED

The 3-colour LED D7 is controlled using the Linux LED Framework. Each colour is controlled separately supporting On, Off and triggers. E.g.:

echo heartbeat > /sys/class/leds/d7:blue/trigger echo 1 > /sys/class/leds/d7:green/brightness echo 0 > /sys/class/leds/d7:red/brightness

Accelerometer

The accelerometer is using the Linux IIO Framework. Sensor data can be accessed using libIIO.

Temperature / Humidity Sensor

The temperature and humidity sensor has no Linux driver at this time. Sensor data can be read out from userspace 2ith i2c cli utilities:

# measure humidity and temperature i2ctransfer -y 0 w1@0x54 0xf5 # read measurement results: 2 byte humidity, 2 byte temperature, 1 byte crc i2ctransfer -y 0 r5@0x54

For further information see HS4003 product page.

Ambient Light Sensor

The light sensor has no Linux driver at this time. Sensor data can be read out from userspace with i2c cli utilities:

# setup sensor i2ctransfer -y 0 w2@0x44 0x00 0x80; i2ctransfer -y 0 w2@0x44 0x01 0x08 # read data: 2 byte lux, 2 byte timer i2ctransfer -y 0 w1@0x44 0x04 r4

For further information see ISL76683 product page.

Air Quality Sensor

The ZMOD4410 has no Linux driver at this time. See ZMOD4410 and ZMOD4410 Evaluation Kit product pages for further information.
The device responds on I2C Bus 0 at chip address 0x32.

GPS

UART

Note: Available only with G2L SoM

Raw NMEA records can be accessed directly via /dev/gnss0 device:

cat /dev/gnss0

Alternatively for a more friendly UI the gpsd package and its utilities may be used after configuring it to use /dev/gnss0 at 38400 baud (see e.g. /etc/default/gpsd).

I2C

Note: Available only with G2LC SoM

There is no Linux driver for I2C interface of U-Blox MIA-M10Q. Data may be polled at bus 1 chip 0x42 address 0xFD-0xFE (length) and 0xFF (data).
The access protocol should be implemented in a kernel driver as a single transaction must read 0xFD-0xFE plus N additional bytes or abort with a NAK.

For details see MIA-M10Q Integration Manual.

RS485

A Half-Duplex (2-wire) RS485 is available on J26-2 (A), J26-1 (B).

Normally the host should automatically switch the transceiver between RX and TX as needed, i.e. RX normally and TX while transmitting data. This is not (currently) supported by the Renesas G2L/C Linux uart driver, users must switch manually from userspace:

  1. Acquire TX/RX control GPIO:

    # for G2L only echo 144 > /sys/class/gpio/export cd /sys/class/gpio/P3_0 # for G2LC only echo 442 > /sys/class/gpio/export cd /sys/class/gpio/P40_2 # Both echo out > direction echo 0 > value
  2. Set UART speed as needed:

    # e.g. 9600 baud stty -F /dev/ttySC3 9600
  3. Transmit a message:

    echo 1 > value echo "Hello, World" > /dev/ttySC3 echo 0 > value
  4. Receive messages:

    cat /dev/ttySC3

CAN

Note: Available only with G2L SoM

Two full-duplex CAN interfaces are available on J26: J26-12 (CAN0H), J26-14 (CAN0L), J26-11 (CAN1L), J26-13 (CAN1H)

  1. configure interface:

    ip link set can0 up type can bitrate 125000 sample-point 0.75 dbitrate 1000000 dsample-point 0.8 fd on
  2. Transmit a message:

    cansend can0 "123#1234"
  3. Receive messages:

    candump -i can0

For second interface substitute can0 with can1.

Digital IO

Two digital inputs and two digital outputs operating at externally supplied voltage are available on J26: J26-5 (DIG_IN1), J26-7 (DIG_IN2), J26-6 (DIG_OUT1), J26-8 (DIG_OUT2)

The signals can be accessed using libgpiod example utilities:

# read inputs gpioget $(gpiofind bDIG_IN1) gpioget $(gpiofind bDIG_IN2) # set outputs low gpioset $(gpiofind DIG_OUT1)=0 gpioset $(gpiofind DIG_OUT2)=0 # set outputs high gpioset $(gpiofind DIG_OUT1)=1 gpioset $(gpiofind DIG_OUT2)=1

Note: The inputs are inverting, i.e. reading a 1 means logical 0 on the line.

WiFi

The Linux driver for DA16200 WiFi does not load automatically, but must be loaded manually after boot:

modprobe rswlan rfkill unblock phy0

After unblocking with rfkill the new wlan0 interface is operated like any standard Linux wifi device, see e.g. the Debian WiFi/HowToUse page.

Bluetooth

The DA14531 Bluetooth module is available by default as hci0 and may be used after unblocking using the standard bluez stack, e.g.:

rfkill unblock hci0 hciconfig hci0 hcitool -i hci0 lescan

LTE NB-IoT/M1 Cellular Modem

The LTE Module is not currently supported by ModemManager. Instead it should be operated manually or scripted using AT commands.

Access AT Interface

The AT interface is available at /dev/ttySC2 with hardware flow-control at 1843200 baudrate. It can be accessed using any serial terminal, for example picocom:

picocom -b 1843200 -y none -d 8 -p 1 -f h /dev/ttySC2

By default commands are not echoed but the terminal can be configured into a nicer mode with echo, auto-complete and history by executing AT+SMART=1.

To leave picocom press ctrl+a, then ctrl+x.

SIM Select

The Board supports either physical SIM via connector J3, and a soldered-on eSIM. The modem can switch between them using AT commands:

# first power off radio AT+CFUN=0 # select SIM 1 (removable) AT+CSUS=0 # select SIM 2 (eSIM) AT+CSUS=1 # return two either airplane mode (CFUN=4) or normal operation (CFUN=1) AT+CFUN=1

Cat-M1 / NB-IoT Select

The LTE module supports both Cat-M1 and NB-IoT. The choice is made in modem power-off state (AT+CFUN=0) using AT command AT+SQNMODEACTIVE (value 1 = LTE-M, value 2 = NB-IoT) followed with reset:

AT+CFUN=0 AT+SQNMODEACTIVE=1 AT^RESET

Automatic Power-On

Normally the modem radio stays off after boot (CFUN=0). It can be reconfigured for connecting to a network automatically (CFUN=1) using AT commands:

AT+SQNAUTOCONNECT=1

DATA Connection

Create file /etc/ppp/options:

/dev/ttySC2 1843200 nodetach noauth local noipdefault defaultroute usepeerdns crtscts lock debug dump -chap connect "/usr/sbin/chat -t6 -f /etc/chatscripts/connect" disconnect "/usr/sbin/chat -t6 -f /etc/chatscripts/disconnect"

Create file /etc/chatscripts/connect:

ABORT "NO CARRIER" TIMEOUT 30 ABORT ERROR "" AT OK AT+CGDATA="PPP",1 CONNECT ""

Create file /etc/chatscripts/disconnect:

"" "\d\d\d+++\c"

 

Ensure the modem is registering to a network, i.e. AT+CFUN=1 or automatic power-on above.

Finally execute ppp application to connect:

pppd

Note: pppd version 2.5.2 or later is required, older versions can' t cope with the non-standard 1843200 baudrate (“speed 1843200 not supported“).

CLPD Motor Driver (SLG47115)

Note: I2C Interface available only with G2LC SoM

The SLG47115 has no Linux driver at this time and comes unprogrammed. It responds on I2C Bus 1 at chip address 0x00.

For further information see SLG47115 product page.

SolidRun Ltd.