
The Taiwanese company Realtek is known to numerous PC users for its network (Ethernet) and wireless (WiFi) card controllers, as well as for AC97 audio codecs. However, Realtek has processors not only for PC applications, but also for network equipment.
In this article, we will introduce the debugging board and the Realtek RTL8954C network processor, build and run the base Linux kernel, and also perform a test of the throughput of the Ethernet ports.
The title picture shows the Realtek debug board for the RTL8954C processor, we used it in several projects for developing LAN / WAN / WiFi subscriber routers with support for VoIP telephony.
Technical parameters of CPU Realtek RTL8954C:• SOC
- Embedded CPU, MIPS architecture, frequency up to 620 MHz with built-in Radiax technology
')
• L2 functions
- 6 Gigabit Ethernet MAC switch with five IEEE 802.3 10/100 / 1000Mbps transmitters
- 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 configuration
- Automatic verification and generation of IPv4 checksums
• L4 functions
- NAPT support for TCP / UDP protocols
- Automatic verification and generation of TCP / UDP checksums
- Automatic operation of L4 TCP / UDP, check generation of checksums
• Firewall features
- Creating filters Ethernet, PPPoE, TCP, UDP, ICMP, and IGMP protocols
• QoS (Quality of Service)
- Each port supports 6-level traffic priority system. The traffic priority can be provided by the following technologies: based on Port, 802.1p tag, DSCP, ACL-based priority and NAT-based priority
- Serial Peripheral Interfaces
- Supports one PCI Express Host and one PCI Express Slave
- Built-in 2 PCI Express PHYs
- 1 USB 2.0 host controller for accessing 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
Board kit Realtek RTL8954C
Starting development, we signed NDA with Realtek and got access to Realtek SDK for RTL8954C. With the help of this SDK it was possible to build the linux-2.6.30 kernel and the base rootfs without any problems. The whale is pictured below:

We list the main components of the board (line by line, from left to right):
- Connector for DECT module
- Ethernet LED Indication Panel
- VOIP LED Display Panel (V400 / 401)
- PCI Express (IOH) slot
- JTAG male plug
- WIFI module
- Whip Plug (UART)
- RTL8954C processor
- DECT button
- WPS button
- Reset button to default
- Module LE88221 - SLIC with two FXS ports
- FXS1 connector
- FXS0 connector
- Connector for external power supply DC 12V (Power)
- USB drive connector
- Connectors for 4 LAN ports
- WAN port connectors
Here are the features that were incorporated in 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, let's proceed to the assembly of the full firmware for the Realtek RTL8954C card. To successfully complete this task, we need:
1. Install on the Debian7 PC system.
2. Copy the archive from the Realtek SDK to the user directory:
sudo cp rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz ~/
3. Run the unzip SDK:
tar -zxf rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz
4. Configure the configuration file to build the firmware:
d SDK d rtl89xxc-jungle-VoIP-1.6.1 make menuconfig
Perform configuration of 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 <Exit><Save> Do you wish to save your new configuration? <ESC><ESC> to continue. Please select <Yes>.

RTK VoIP Suite ---> EV_Board version (RTL8954C_V400) ---> <Exit><Save>

Build the firmware:
make all
5. In the image folder, if the process was successful, there will be fw.bin files, webpages.bin
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 should be installed on the PC:
A) tftp-hpa - a Linux TFTP client program, installing 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
Realtek RTL8954C firmware
1. Connect the UART to the board as shown in the screenshot below.
The connection program is minicom (startup command: minicom –s)

2. On the board, the bootloder loader program is running by default, 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. Power on the board and press “ESC” immediately 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 -cp 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 -cp webpages-gw.bin
5. Restart the board by turning the power off and on.
The result of the firmware board:
A) Minicom access 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 motherboard can do in terms of network performance. Some network routers perform part of the LAN / LAN and LAN / WAN data transfer operations in software, which is why performance problems arise. Below, we give one test of network performance using a portable network analyzer of Ethernet traffic and two tests of the speed of transferring data from PC to PC.
Network performance test (LAN Bridge, NAT) based on a portable Ethernet network traffic analyzer
Objective: To test the throughput of RTL8954C in packets of various sizes using a traffic generator.
Tasks:
- Connect to the RTL8954C board a traffic generation and measurement device.
- Conduct a series of stress tests.
- Fill in the table.
These are the results we got:
Performance Measurement (Throughput: LAN Bridge)Package size (bit)
Package Type: TCP
| Packets Received
| Accepted Mbps
|
1500
| 5317251
| RX Framed Rate 986.829 Mbps
RX Data Rate 948.671 Mbps
RX Utilization 99.999% (1000.000 Mbit / s)
|
1024
| 5375917
| RX Framed Rate 980.830 Mbps
RX Data Rate 925.275 Mbps
RX Utilization 99.999% (1000.000 Mbit / s)
|
512
| 12601894
| RX Framed Rate 962.393 Mbps
RX Data Rate 853.372 Mbps
RX Utilization 99.999% (1000.000 Mbit / s)
|
88
| 43111510
| RX Framed Rate 814.804 Mbps
RX Data Rate 277.774 Mbps
RX Utilization 99.999% (1000.000 Mbit / s)
|
Conclusion: the test revealed a maximum performance of 948.67 Mbit / s with a frame size of 1500 bytes.
Performance Measurement (Throughput: LAN to WAN (NAT))Package size (bit)
Package Type: UDP
| Packets Received
| Accepted Mbps
|
1500
| 4957253
| RX Framed Rate 986.829 Mbps
RX Data Rate 956.57 Mbps
RX Utilization 100.00% (1000.000 Mbit / s)
|
1024
| 8078375
| RX Framed Rate 980.83 Mbps
RX Data Rate 936.77 Mbps
RX Utilization 100.00% (1000.000 Mbit / s)
|
512
| 5869635
| RX Framed Rate 962.39 Mbps
RX Data Rate 875.93 Mbps
RX Utilization 100.00% (1000.000 Mbit / s)
|
88
| 8505488
| RX Framed Rate 814.80 Mbps
RX Data Rate 277.77 Mbps
RX Utilization 100.00% (1000.000 Mbit / s)
|
Conclusion: the test revealed a maximum performance of 956.57 Mbit / s with a frame size of 1500 bytes.
LAN Test - LAN
Tasks:
- Connect 2 PCs with 1 Gbit Ethernet network cards to the LAN0 (IP_ADDR PC1 192.168.1.1) and LAN1 (IP_ADDR PC2 192.168.1.2) card ports.
- On PC1, start the Iperf server:
iperf –s
- On PC2, start the Iperf client: iperf –c 192.168.1.1 –i 1
The result of the program will be the speed of data transfer between the ports.
Test results:

LAN Test - WAN
Tasks:
- Connect 2 PCs with 1 Gbit Ethernet network cards to the LAN0 (IP_ADDR PC1 192.168.1.1) and WAN (IP_ADDR PC2 192.168.2.2) card ports.
- Configure routing paths on PC1 and PC2, respectively: default route (Lan IP boards 192.168.1.254) and default route (Wan IP boards 192.168.2.1)
- On PC1 run the iperf client:
iperf – 192.168.2.2 –i 1
- On PC2, start the iperf server:
iperf –s
The result of the program will be the speed of data transfer between the ports.
Test results:

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

Thus, we received a fee for developing and debugging software for network and multimedia tasks.
Thanks for attention!
If you are interested in reading about “pinging” another processor from the Taiwanese team Realtek - read our article “
Launching Linux on the Realtek RTL-1185 media processor ”.