
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.
- 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):
- Connector for DECT module
- Ethernet LED Panel
- VOIP LED Indication Panel (V400 / 401)
- PCI Express (IOH)
- JTAG male plug
- WIFI module
- Pin plug (UART)
- RTL8954C processor
- DECT Button
- WPS Button
- Reset button to default
- LE88221 module - SLIC with two FXS ports
- FXS1 Connector
- FXS0 Connector
- DC 12V (Power) external power supply connector
- USB drive connector
- Connectors for 4 LAN ports
- 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:
- Connect the device for generating and measuring traffic to the RTL8954C board.
- Conduct a series of stress tests.
- 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:
- 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.
- On PC1, start the Iperf server:
iperf –s
- 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:
- 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.
- 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)
- On PC1, start 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 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 ”.