Знакомство с отладочной платой Realtek RTL8954C
Многочисленным пользователям PС тайваньская компания Realtek известна по своим контроллерам сетевых (Ethernet) и беспроводных (WiFi) карт, а также по микросхемам AC97-аудиокодеков. Однако у Realtek есть процессоры не только для применения в PC, но также для сетевого оборудования.В рамках данной статьи мы познакомимся с отладочной платой и сетевым процессором Realtek RTL8954C, соберём и запустим базовое ядро Linux, а также выполним тест пропускной способности Ethernet-портов.На заглавном рисунке представлена отладочная плата Realtek для процессора RTL8954C, мы использовали её в нескольких проектах по разработке абонентских роутеров LAN/WAN/WiFi c поддержкой VoIP-телефонии.
Технические параметры CPU Realtek RTL8954C: • SOC — Встраиваемый центральный процессор, архитектура 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
RTK VoIP Suite --->
EV_Board version (RTL8954C_V400) --->
Выполнить сборку прошивки:
make all 5. В папке image, если процесс прошел успешно, будут лежать файлы fw.bin, webpages.bin6. Выполнить копирование файлов прошивки в директорию 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».