Introducing the Realtek RTL8954C Debug Board

  • Tutorial

Taiwanese company Realtek is known to numerous PC users for its network (Ethernet) and wireless (WiFi) card controllers, as well as for AC97 audio codec chips. However, Realtek has processors not only for PC applications, but also for network equipment.

In this article, we will get acquainted with the Realtek RTL8954C debug card and network processor, assemble and run the Linux base kernel, and also perform an Ethernet port throughput test.

The title picture shows the Realtek debug board for the RTL8954C processor, we used it in several projects to develop LAN / WAN / WiFi subscriber routers with support for VoIP telephony.

Technical Parameters of Realtek RTL8954C CPU:
    • SOC
       - Embedded CPU, MIPS architecture, frequency up to 620 MHz with integrated Radiax technology

    • L2
       - 6 Gigabit Ethernet MAC functions switch with five IEEE 802.3 transmitters 10/100 / 1000Mbps
       - 1 dedicated GMII / RGMII / MII port for connecting to an external network
       - VLAN support (VLAN table for 4096 value)

    • L3 functions
       - 8 simultaneous PPPoE sessions
       - Automatic PPPoE setup
       - Automatic verification and generation of IPv4 checksums

    • L4 functions
       - NAPT support for TCP / UDP protocols
       - Automatic verification and generation of control TCP / UDP Amounts
       - Automatic operation of L4 TCP / UDP, checking the generation of checksums

    • Firewall functions
       - Creating filters for Ethernet, PPPoE, TCP, UDP, ICMP, and IGMP protocols

    • QoS (quality of service)
       - Each port supports a 6-level traffic priority system. The priority of traffic can be provided by the following technologies: based on Port, 802.1p tag, DSCP, ACL-based priority and NAT-based priority
       - Serial peripheral interfaces
       - Support for one PCI Express Host and one PCI Express Slave
       - Built-in 2 PCI Express PHYs
       - 1 USB 2.0 host controller for access to USB peripherals
       - Built-in 1 USB PHY
       - 2 16550 UART
       - Up to 44 GPIO pins

    • Memory interface
       - Serial Flash (SPI type)
       - SDR DRAM
       - DDR1 DRAM
       - DDR2 DRAM
       - I2S interface


Realtek RTL8954C Board Kit


Getting started, we signed an NDA with Realtek and gained access to the Realtek SDK for RTL8954C. Using this SDK, it was possible to build the linux-2.6.30 kernel and basic rootfs without any problems. The whale is shown in the photo below: We



list the main components of the board (line by line, from left to right):
  1. Connector for DECT module
  2. Ethernet LED Panel
  3. VOIP LED Indication Panel (V400 / 401)
  4. PCI Express (IOH)
  5. JTAG male plug
  6. WIFI module
  7. Pin plug (UART)
  8. RTL8954C processor
  9. DECT Button
  10. WPS Button
  11. Reset button to default
  12. LE88221 module - SLIC with two FXS ports
  13. FXS1 Connector
  14. FXS0 Connector
  15. DC 12V (Power) external power supply connector
  16. USB drive connector
  17. Connectors for 4 LAN ports
  18. WAN Port Connectors

Here are the features that were built into the Realtek SDK:
  • OS Linux-2.6.30
  • Toolchain rsdk-1.3.6-5281-EB-2.6.30-0.9.30
  • SDK for implementing VOIP functionality
  • A small set of popular OpenSource software, including Samba

So, we proceed to build the full firmware for the Realtek RTL8954C board. To successfully complete this task, we need:

1. Install the Debian7 system on the PC.

2. Copy the archive with the Realtek SDK to the user directory:
sudo cp rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz ~/

3. Unzip the SDK:
tar -zxf rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz

4. Set up the configuration file for firmware assembly:
сd SDK
сd rtl89xxc-jungle-VoIP-1.6.1
make menuconfig

Configure the assembled firmware as described below (see screenshots):
Please select blow items:
Selected Target (rtl89xxC) --->
Selected Kernel (linux-2.6.30) --->
Selected Busybox (busybox-1.13) --->
Selected toolchain (rsdk-1.3.6-5281-EB-2.6.30-0.9.30) --->
Selected Board Configuration (V400_Ramfs + VE890HV_2S1O + 92C + SAMBA) --->
[*] Config kernel
[*] Load default settings

Do you wish to save your new configuration? 
to continue.  Please select .




RTK VoIP Suite --->
EV_Board version (RTL8954C_V400) --->




Build firmware:
make all

5. In the image folder, if the process was successful, the files fw.bin, webpages.bin will lie.

6. Copy the firmware files to the tftp server directory on the PC:
cp ~/SDK/ rtl89xxc-jungle-VoIP-1.6.1/image/fw.bin /srv/tftp 
cp ~/SDK/ rtl89xxc-jungle-VoIP-1.6.1/image/webpages.bin /srv/tftp

The following programs must be installed on the PC:
A) tftp-hpa - Linux TFTP client program, installation on Linux using the command:
apt-get install tftp-hpa

B) tftpd-hpa - Linux TFTP server program, installation on Linux using the command:
apt-get install tftpd-hpa

Firmware for Realtek RTL8954C


1. Connect via UART to the board as shown in the screenshot below.
The program for connecting is minicom (start command: minicom –s)



2. The bootloder bootloader program works by default on the board, not u-boot. To work with the network, the default address is 192.168.1.6/24. To update the firmware, you need to configure the address from the 192.168.1.1/24 subnet on the PC and connect the PC and our board to the switch.

3. Turn on the power of the board and immediately press “ESC” from the terminal.

4. Write the firmware to the board from the PC using the commands:
сd /srv/tftp
tftp 192.168.1.6 -m binary -c p fw.bin

After recording the firmware, the board will reboot, then you need to press the “ESC” button from the terminal and flash the web interface for the board
tftp 192.168.1.6 -m binary -c p webpages-gw.bin

5. Restart the board by turning the power off and on.

The result of the firmware of the board:
A) Access via minicom to the loaded system for working with files:



B) Access to the web interface of the board:



Testing the data transfer rate on the Realtek RTL8954C board on the LAN and WAN interface


Now let's see what this board can do in terms of network performance. Some network routers perform part of the LAN / LAN and LAN / WAN data transfer operations programmatically, so performance problems arise. Below, we present one test of network performance using a portable network analyzer of Ethernet traffic and two tests of the speed of data transfer from PC to PC.

Network performance test (LAN Bridge, NAT) based on a portable Ethernet network traffic analyzer

Purpose: To test the throughput of RTL8954C with packets of various sizes using a traffic generator.

Tasks:
  1. Connect the device for generating and measuring traffic to the RTL8954C board.
  2. Conduct a series of stress tests.
  3. Fill in the table.

Here are the results we got:

Measuring performance (Throughput: LAN Bridge)

Package Size (bit)


Packet type: TCP


Received packages


 


Received Mbps


 


1500


5317251


 


RX Framed Rate 986.829 Mbps


RX Data Rate 948.671 Mbps


RX Utilization 99.999% (1000.000 Mbps)


1024


5375917


 


RX Framed Rate 980.830 Mbps


RX Data Rate 925.275 Mbps


RX Utilization 99.999% (1000.000 Mbps)


512


12601894


 


RX Framed Rate 962.393 Mbps


RX Data Rate 853.372 Mbps


RX Utilization 99.999% (1000.000 Mbps)


88


43111510


 


RX Framed Rate 814.804 Mbps


RX Data Rate 277.774 Mbps


RX Utilization 99.999% (1000.000 Mbps)



Conclusion: the test revealed a maximum performance of 948.67 Mbps with a frame size of 1500 bytes.

Performance Measurement (Throughput: LAN to WAN (NAT))

Package Size (bit)


Packet type: UDP


Received packages


 


Received Mbps


 


1500


4957253


 


RX Framed Rate 986.829 Mbps


RX Data Rate 956.57 Mbps


RX Utilization 100.00% (1000,000 Mbps)


1024


8078375


 


RX Framed Rate 980.83 Mbps


RX Data Rate 936.77 Mbps


RX Utilization 100.00% (1000,000 Mbps)


512


5869635


 


RX Framed Rate 962.39 Mbps


RX Data Rate 875.93 Mbps


RX Utilization 100.00% (1000,000 Mbps)


88


8505488


 


RX Framed Rate 814.80 Mbps


RX Data Rate 277.77 Mbps


RX Utilization 100.00% (1000,000 Mbps)



Conclusion: the test revealed a maximum performance of 956.57 Mbps with a frame size of 1500 bytes.

LAN test - LAN

Tasks:
  1. Connect 2 PCs with 1 Gbit Ethernet network cards to the port of the LAN0 (IP_ADDR PC1 192.168.1.1) and LAN1 (IP_ADDR PC2 192.168.1.2) cards.
  2. On PC1, start the Iperf server:
    iperf –s
    
  3. On PC2, start the Iperf client: iperf –– from 192.168.1.1 –i 1

The result of the program will be the data transfer speed between ports.

Test results:



LAN Test - WAN

Tasks:

  1. Connect 2 PCs with 1 Gbit Ethernet network cards to the port of the LAN0 (IP_ADDR PC1 192.168.1.1) and WAN (IP_ADDR PC2 192.168.2.2) cards.
  2. Configure routing paths on PC1 and PC2, respectively: default route (Lan IP cards 192.168.1.254) and default route (Wan IP cards 192.168.2.1)
  3. On PC1, start the Iperf client:
    iperf – с 192.168.2.2 –i 1
    
  4. On PC2, start the Iperf server:
    iperf –s
    

The result of the program will be the data transfer speed between ports.

Test results:



The most interesting thing is that the processor load for all tests is almost zero. Those. everything is done in hardware, see screenshot:



Thus, we got a board for developing and debugging software for network and multimedia tasks.

Thanks for attention!

If you are interested in reading about the “oppinning” of another processor from the Taiwanese Realtek team, read our article “ Launching Linux on a Realtek RTL-1185 Media Processor ”.

Also popular now: