Многочисленным пользователям PС тайваньская компания Realtek известна по своим контроллерам сетевых (Ethernet) и беспроводных (WiFi) карт, а также по микросхемам AC97-аудиокодеков. Однако у Realtek есть процессоры не только для применения в PC, но также для сетевого оборудования.
В рамках данной статьи мы познакомимся с отладочной платой и сетевым процессором Realtek RTL8954C, соберём и запустим базовое ядро Linux, а также выполним тест пропускной способности Ethernet-портов.
На заглавном рисунке представлена отладочная плата Realtek для процессора RTL8954C, мы использовали её в нескольких проектах по разработке абонентских роутеров LAN/WAN/WiFi c поддержкой VoIP-телефонии.
— Встраиваемый центральный процессор, архитектура MIPS, частота до 620 МГц с встроенной технологией Radiax
• Функции L2
— 6 Gigabit Ethernet MAC свитч с пятью передатчиками IEEE 802.3 10/100/1000Mbps
— 1 выделенный порт GMII/RGMII/MII для соединения с внешней сетью
— Поддержка VLAN (таблица VLAN на 4096 значение)
• Функции L3
— 8 одновременных PPPoE-сессий
— Автоматическая настройка PPPoE
— Автоматическая проверка и генерация контрольных сумм IPv4
• Функции L4
— Поддержка NAPT для TCP/UDP-протоколов
— Автоматическая проверка и генерация контрольных сумм TCP/UDP
— Автоматическая работа L4 TCP/UDP, проверка генерация контрольных сумм
• Функции Firewall
— Создание фильтров Ethernet, PPPoE, TCP, UDP, ICMP, и IGMP-протоколов
• QoS (качество обслуживания)
— Каждый порт поддерживает 6-уровневую систему приоритета трафика. Приоритет трафика может быть обеспечен следующими технологиями: based on Port, 802.1p tag, DSCP, ACL-based priority и NAT-based priority
— Последовательные периферийные интерфейсы
— Поддержка одного PCI Express Host и одного PCI Express Slave
— Встроено 2 PCI Express PHYs
— 1 USB 2.0 host controller для доступа к USB-периферии
— Встроен 1 USB PHY
— 2 16550 UART
— До 44 GPIO-пинов
• Memory-интерфейс
— Serial Flash (тип SPI)
— SDR DRAM
— DDR1 DRAM
— DDR2 DRAM
— I2S-интерфейс
Комплект платы Realtek RTL8954C
Приступая к разработке, мы подписали NDA с Realtek и получили доступ к Realtek SDK для RTL8954C. C помощью этого SDK получилось без проблем собрать ядро linux-2.6.30 и базовую rootfs. Кит изображен на фотографии ниже:
Перечислим основные компоненты платы (построчно, слева направо):
- Разъем для DECT-модуля
- Панель LED-индикации Ethernet
- Панель LED-индикации VOIP (V400/401)
- Разъем PCI Express (IOH)
- Штыревая вилка для подключения JTAG
- Модуль WIFI
- Штыревая вилка (UART)
- Процессор RTL8954C
- Кнопка DECT
- Кнопка WPS
- Кнопка сброса настроек к по умолчанию
- Модуль LE88221 — SLIC с двумя FXS-портами
- Разъем FXS1
- Разъем FXS0
- Разъем подключения внешнего источника питания DC 12V (Power)
- Разъем подключения USB-накопителя
- Разъемы подключения 4-х LAN-портов
- Разъемы подключения WAN-порта
Вот какие функции были заложены в SDK Realtek:
- OS Linux-2.6.30
- Toolchain rsdk-1.3.6-5281-EB-2.6.30-0.9.30
- SDK для реализации VOIP-функциональности
- Небольшой набор популярного OpenSource ПО, включая Samba
Итак, приступаем к сборке полной прошивки для платы Realtek RTL8954C. Для успешного выполнения этой задачи нам понадобится:
1. Выполнить установку на ПК системы Debian7.
2. Скопировать архив с SDK от Realtek в пользовательский каталог:
sudo cp rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz ~/
3. Выполнить разархивирование SDK:
tar -zxf rtl89xxc-jungle-VoIP-1.6.1_20120711.tgz
4. Выполнить настройку конфигурационного файла для сборки прошивки:
сd SDK
сd rtl89xxc-jungle-VoIP-1.6.1
make menuconfig
Выполнить настройку собираемой прошивки, как описано ниже (см. скриншоты):
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>
Выполнить сборку прошивки:
make all
5. В папке image, если процесс прошел успешно, будут лежать файлы fw.bin, webpages.bin
6. Выполнить копирование файлов прошивки в директорию tftp server на ПК:
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
На ПК должны быть установлены следующие программы:
А) tftp-hpa — программа Linux TFTP-клиент, установка в Linux с помощью команды:
apt-get install tftp-hpa
Б) tftpd-hpa — программа Linux TFTP-сервер, установка в Linux с помощью команды:
apt-get install tftpd-hpa
Прошивка платы Realtek RTL8954C
1. Выполнить подключение по UART к плате как показано на скриншоте ниже.
Программа для подключения — minicom (команда запуска: minicom –s)
2. На плате по умолчанию работает программа-загрузчик bootloder, а не u-boot. Для работы с сетью по умолчанию настроен адрес 192.168.1.6/24. Для обновления прошивки нужно настроить на ПК адрес из подсети 192.168.1.1/24 и подключить ПК и нашу плату в свитч.
3. Включить питание платы и нажать сразу «ESC» из терминала.
4. Выполнить запись прошивки на плату с ПК с помощью команд:
сd /srv/tftp
tftp 192.168.1.6 -m binary -c p fw.bin
После записи прошивки плата перегрузится, далее нужно нажать кнопку «ESC» из терминала и прошить веб-интерфейс для платы
tftp 192.168.1.6 -m binary -c p webpages-gw.bin
5. Выполнить перезапуск платы, отключив и включив питание.
Результат работы прошивки платы:
А) Доступ по minicom к загруженной системе для работы с файлами:
Б) Доступ к веб-интерфейсу платы:
Тестирование скорости передачи данных на плате Realtek RTL8954C на интерфейсе LAN и WAN
Теперь посмотрим, что умеет эта плата в плане сетевой производительности. Некоторые сетевые роутеры выполняют часть операций по пересылке данных LAN/LAN и LAN/WAN программно, поэтому возникают проблемы с производительностью. Ниже по тексту приводим один тест производительности сети с помощью портативного сетевого анализатора Ethernet-трафика и два теста скорости пересылки данных с ПК на ПК.
Тест производительности сети (LAN Bridge, NAT) на базе портативного сетевого анализатора Ethernet-трафика
Цель: протестировать пропускную способность RTL8954C пакетами различного размера, используя генератор трафика.
Задачи:
- Подключить к плате RTL8954C устройство генерации и измерения трафика.
- Провести серию нагрузочных тестов.
- Заполнить таблицу.
Вот такие у нас получились результаты:
Замер производительности (Throughput: LAN Bridge)
Размер пакета (bit) Тип пакета:TCP |
Получено пакетов |
Принято Мбит/с |
1500 | 5317251 |
TX Framed Rate 986.829 Мбит/с TX Data Rate 948.671 Мбит/с TX Utilization 99.999% (1000.000 Мбит/с) |
1024 | 5375917 |
TX Framed Rate 980.830 Мбит/с TX Data Rate 925.275 Мбит/с TX Utilization 99.999% (1000.000 Мбит/с) |
512 | 12601894 |
TX Framed Rate 962.393 Мбит/с TX Data Rate 853.372 Мбит/с TX Utilization 99.999% (1000.000 Мбит/с) |
88 | 43111510 |
TX Framed Rate 814.804 Мбит/с TX Data Rate 277.774 Мбит/с TX Utilization 99.999% (1000.000 Мбит/с) |
Вывод: испытание выявило максимальную производительность в 948,67 Мбит/с при размере фрейма в 1500 байт.
Замер производительности (Throughput: LAN to WAN (NAT))
Размер пакета (bit) Тип пакета:UDP |
Получено пакетов |
Принято Мбит/с |
1500 | 4957253 |
TX Framed Rate 986.829 Мбит/с TX Data Rate 956.57 Мбит/с TX Utilization 100.00% (1000.000 Мбит/с) |
1024 | 8078375 |
TX Framed Rate 980.83 Мбит/с TX Data Rate 936.77 Мбит/с TX Utilization 100.00% (1000.000 Мбит/с) |
512 | 5869635 |
TX Framed Rate 962.39 Мбит/с TX Data Rate 875.93 Мбит/с TX Utilization 100.00% (1000.000 Мбит/с) |
88 | 8505488 |
TX Framed Rate 814.80 Мбит/с TX Data Rate 277.77 Мбит/с TX Utilization 100.00% (1000.000 Мбит/с) |
Вывод: испытание выявило максимальную производительность в 956,57 Мбит/с при размере фрейма в 1500 байт.
Тест LAN – LAN
Задачи:
- Выполнить подключение 2-х ПК с сетевыми картами 1 Gbit Ethernet в порт платы LAN0 (IP_ADDR ПК1 192.168.1.1) и LAN1(IP_ADDR ПК2 192.168.1.2).
- На ПК1 запустить сервер Iperf:
iperf –s
- На ПК2 запустить клиент Iperf: iperf –с 192.168.1.1 –i 1
Результатом работы программы будет скорость передачи данных между портами.
Результаты теста:
Тест LAN – WAN
Задачи:
- Выполнить подключение 2-х ПК с сетевыми картами 1 Gbit Ethernet в порт платы LAN0 (IP_ADDR ПК1 192.168.1.1) и WAN(IP_ADDR ПК2 192.168.2.2).
- Выполнить настройку путей маршрутизации на ПК1 и ПК2 соответственно: default route (Lan IP платы 192.168.1.254) и default route (Wan IP платы 192.168.2.1)
- На ПК1 запустить клиент Iperf:
iperf – с 192.168.2.2 –i 1
- На ПК2 запустить сервер Iperf:
iperf –s
Результатом работы программы будет скорость передачи данных между портами.
Результаты теста:
Самое интересное, что загрузка процессора при всех тестах почти нулевая. Т.е. все делается аппаратно, см скриншот:
Таким образом, мы получили плату для разработки и отладки программного обеспечения для сетевых и мультимедийных задач.
Спасибо за внимание!
Если вам интересно прочитать про «опингвинивание» другого процессора от тайваньской команды Realtek — читайте нашу статью «Запуск Linux на медиапроцессоре Realtek RTL-1185».
Автор: Promwad