Знакомство с отладочной платой Realtek RTL8954C

d3f39c1aad0f493c99d1a8f8e23d8590.jpgМногочисленным пользователям 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. Кит изображен на фотографии ниже: b38ef9603768499195767abae0c02ed3.png

Перечислим основные компоненты платы (построчно, слева направо):

Разъем для 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 Do you wish to save your new configuration? to continue. Please select . a6a63314e5ed417b98e490572c25a802.png

RTK VoIP Suite ---> EV_Board version (RTL8954C_V400) ---> eebb4f8cfbd644d08c5c284cffa746f9.png

Выполнить сборку прошивки:

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)137851cf302e4b8a9448bdf39468b12a.png

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 к загруженной системе для работы с файлами:

2af8620ec9a84507ae74016136d83300.png

Б) Доступ к веб-интерфейсу платы:

75b7d600f0d84481a81def3401759dad.png

Тестирование скорости передачи данных на плате 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 Результатом работы программы будет скорость передачи данных между портами.Результаты теста:

32a6cb2848864f4ebb485ec2e16e6539.png

Тест 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 Результатом работы программы будет скорость передачи данных между портами.Результаты теста:

d3e51ea3b5ee4ec39d73d66954c4ea13.png

Самое интересное, что загрузка процессора при всех тестах почти нулевая. Т.е. все делается аппаратно, см скриншот:

7ec38aa8742548819890204953c1bf5e.png

Таким образом, мы получили плату для разработки и отладки программного обеспечения для сетевых и мультимедийных задач.

Спасибо за внимание!

Если вам интересно прочитать про «опингвинивание» другого процессора от тайваньской команды Realtek — читайте нашу статью «Запуск Linux на медиапроцессоре Realtek RTL-1185».

© Habrahabr.ru