Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  • This page is to discuss things about commonly used communication interfaces of RZ/G2 MPU.

RS-485 half-duplex communication

Kernel Networking Configurations

Add iptables support

When using iptables command on RZ/G2L series board and RZ/Five, below error occurs.

...

# start the system build with bitbake command
$ bitbake core-image-<minimal/bsp/weston/qt>

Add ip6tables support

If the below error happened when using ip6tables command on RZ/G2L series board and RZ/Five, users can fix it by changing kernel configuration.

...

[*] Networking support  --->
    Networking options  --->
      <*>The IPv6 protocol --->
        [*] Network packet filtering framework (Netfilter)  --->
              IPv6: Netfilter Configuration  --->
                  <*> IP6 tables support (required for filtering)
                      <*>   Packet filtering
                      <*>   ip6tables NAT support
                      <*>     MASQUERADE target support

Add VLAN support

When using ip command to configure the VLAN on RZ/G device, the below error message may occur.

...

[*] Networking support  --->
        Networking options  --->
            <*> 802.1Q/802.1ad VLAN Support
            [*]   GVRP (GARP VLAN Registration Protocol) support
            [*]   MVRP (Multiple VLAN Registration Protocol) support

Helpful Networking Packages

Following packages can be installed in the system to improve the functionality of networking

bridge-utils

The bridge-utils package contains a utility needed to create and manage bridge devices on RZ/G2 boards.

...

# set a bridge br0
$ brctl addbr br0

# Add port eth0 and eth1 to bridge br0
$ brctl addif br0 eth0 eth1

# set ip address for br0
$ ifconfig br0 192.168.10.200

rp-pppoe and rp-pppoe-server

RP-PPPoE is a PPPoE client, relay and server for Linux. It can run completely in user-mode or used the Linux kernel's built-in PPPoE support. Here is the homepage of RP-PPPoE project.

...

  Device Drivers  --->
      [*] Network device support  --->
          <*>   PPP (point-to-point protocol) support
          <*>     PPP over Ethernet
          <*>     PPP support for async serial ports
          <*>     PPP BSD-Compress compression
          <*>     PPP Deflate compression
          <*>     PPP support for sync tty ports
      Character devices  --->
          [*]   Non-standard serial port support
              <*>     HDLC line discipline support

Network Manager

NetworkManager is a system service that manages network interfaces and connections based on user or automatic configuration. It supports Ethernet, Bridge, VLAN, Wi-Fi, PPPoE and other devices, and supports a variety of different VPN services.

...

# add networkmaneger
IMAGE_INSTALL_append = " networkmanager "

# Exclude packages for networkmanager
PACKAGE_EXCLUDE = " connman connman-client connman-tests connman-tools connman-t-online "

# Comment out the restriction on GPLv3 and GPLv3+ license
#INCOMPATIBLE_LICENSE = "GPLv3 GPLv3+"

vlan

VLAN (Virtual LAN) is a technology that creates a virtual LAN segment independent of the physical connection form. VLANs are used to logically divide LAN segments inside the switch. By using VLAN broadcast domains can be divided with L2 switches in the same way as with routers and L3 switches.

...

# Enable ip forward to enable routing between vlans
$ echo 1 > /proc/sys/net/ipv4/ip_forward

tcpdump

tcpdump is a powerful command-line packet analyzer. It allows the user to display TCP/IP and other packets being transmitted or received over a network.

...

IMAGE_INSTALL_append = " tcpdump "

WiFi Support

The following packages are for the Wifi support on RZ/G board. Packages listed in this section are required by RZ/G2L series board and RZ/Five, if user wants the corresponding Wifi support. For RZ/G2 series board, these packages are not necessary due to they already have Wifi enabled by default.

Enable Wireless in Kernel

On RZ/G2L series board, user will need WiFi adapter the WiFi adapter used by us is BUFFALO WLI-UC-G301N. Wifi adapters requires support from kernel. Please enable the below kernel configuration.

...

Networking support --->
    [*] Wireless --->
        <*>   cfg80211 - wireless configuration API
        [*]     nl80211 testmode command
        [*]     enable developer warnings
        [*]     enable powersave by default (NEW)
        [*]     cfg80211 DebugFS entries
        [*]     cfg80211 wireless extensions compatibility
        <*>   Generic IEEE 802.11 Networking Stack (mac80211)
              Default rate control algorithm (Minstrel)  --->
        [*]   Enable mac80211 mesh networking support
        [*]   Enable LED triggers
        [*]   Export mac80211 internals in DebugFS
        [*]   Trace all mac80211 debug messages
        [*]   Select mac80211 debugging features  --->   

crda

This is the Central Regulatory Domain Agent for Linux. It serves one purpose: tell Linux kernel what regulatory rules to enforce for 802.11. CRDA searches for available frequency bands in the regulatory information database provided by the wireless-regdb package.

...

  IMAGE_INSTALL_append = " crda "

hostapd

hostapd (host access point daemon) is a user space daemon software enabling a network interface card to act as an access point and authentication server.

...

# Start the hostapd service
$ systemctl start hostapd

# Stop the hostapd service
$ systemctl stop hostapd

iw (wireless tools)

To offer support for 802.11 standard WLAN settings, iw package is provided as wireless tool and can be installed with the code below in local.conf:

  IMAGE_INSTALL_append = " iw "

linux-firmware

linux-firmware is a package distributed together with the Linux kernel that contains the firmware binary blobs necessary for the functioning of a particular hardware device.

...

  IMAGE_INSTALL_append = " linux-firmware "

wpa-supplicant

wpa_supplicant is a cross-platform supplicant that supports WEP, WPA, WPA2 (IEEE 802.11i / RSN (Robust Secure Network)). It targets desktops, laptops and embedded systems.

...

  IMAGE_INSTALL_append = " wpa-supplicant "

Bluetooth Support

Packages for supporting the bluetooth function on RZ/G board. We have tested with bluetooth adapter TP-Link UB500 Bluetooth 5.0.

Bluez5

bluez5: bluetooth protocol stack for Linux system.

...

  # Start bluetoothctl 
  root@smarc-rzfive:~# bluetoothctl
  Agent registered
  [CHG] Controller E8:48:B8:C8:20:00 Pairable: yes

  [bluetooth]# power on
  Changing power on succeeded
  [CHG] Controller E8:48:B8:C8:20:00 Powered: yes

  # Scan bluetooth devices
  [bluetooth]# devices
  Device 10:30:25:EB:6B:xx <Deivce 1>
  Device 10:30:25:F1:28:yy <Device 2>
  Device E4:70:B8:FD:1C:zz <Device 3>
  Device <Device Mac> <Deivce name>

  # Pair device with device Mac
  [bluetooth]# pair 10:30:25:EB:6B:xx
  Attempting to pair with 10:30:25:EB:6B:xx 
  [CHG] Device 10:30:25:EB:6B:xx Connected: yes
  Request confirmation
  [agent] Confirm passkey 028937 (yes/no): yes
  [CHG] Device 10:30:25:EB:6B:xx Connected: no
  [CHG] Device 10:30:25:EB:6B:xx Paired: yes
  Pairing successful
  [bluetooth]#

CAN/CAN-FD

Below an example to check the basic CAN functionality in Linux. It refers to RZ/G2L but it should work as is also for RZ/G2LC-UL and RZ/V2L.

Inter-channel communication test

devmem2 is used to configure the relevant registers.

...

root@smarc-rzg2l:~# cansend can1 18ff6228##1aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55
  can1  18FF6228  [32]  AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
  can0  18FF6228  [32]  AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55

External loopback test

image external loopback test.png

Note: obviously this test works only if the CAN transceiver is fitted. Many EVKs shipped recently do not have the transceiver populated. First check that IC15 is soldered on the board.

...

candump can1 &
cansend can1 18ff6228#55aa55aa55aa55aa
can1  18FF6228   [8]  55 AA 55 AA 55 AA 55 AA
can1  18FF6228   [8]  55 AA 55 AA 55 AA 55 AA

Internal loopback test

image internal loopback test.png

Exactly same as External loopback test, the only difference is the CTMS[1:0] configuration (0x3):

...