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

  • Tutorial

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



Перечислим основные компоненты платы (построчно, слева направо):
  1. Разъем для DECT-модуля
  2. Панель LED-индикации Ethernet
  3. Панель LED-индикации VOIP (V400/401)
  4. Разъем PCI Express (IOH)
  5. Штыревая вилка для подключения JTAG
  6. Модуль WIFI
  7. Штыревая вилка (UART)
  8. Процессор RTL8954C
  9. Кнопка DECT
  10. Кнопка WPS
  11. Кнопка сброса настроек к по умолчанию
  12. Модуль LE88221 — SLIC с двумя FXS-портами
  13. Разъем FXS1
  14. Разъем FXS0
  15. Разъем подключения внешнего источника питания DC 12V (Power)
  16. Разъем подключения USB-накопителя
  17. Разъемы подключения 4-х LAN-портов
  18. Разъемы подключения 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 пакетами различного размера, используя генератор трафика.

Задачи:
  1. Подключить к плате RTL8954C устройство генерации и измерения трафика.
  2. Провести серию нагрузочных тестов.
  3. Заполнить таблицу.

Вот такие у нас получились результаты:

Замер производительности (Throughput: LAN Bridge)

Размер пакета (bit)


Тип пакета:TCP


Получено пакетов


 


Принято Мбит/с


 


1500


5317251


 


RX Framed Rate 986.829 Мбит/с


RX Data Rate      948.671 Мбит/с


RX Utilization      99.999% (1000.000 Мбит/с)


1024


5375917


 


RX Framed Rate 980.830 Мбит/с


RX Data Rate      925.275 Мбит/с


RX Utilization      99.999% (1000.000 Мбит/с)


512


12601894


 


RX Framed Rate 962.393 Мбит/с


RX Data Rate      853.372 Мбит/с


RX Utilization      99.999% (1000.000 Мбит/с)


88


43111510


 


RX Framed Rate 814.804 Мбит/с


RX Data Rate      277.774 Мбит/с


RX Utilization      99.999% (1000.000 Мбит/с)



Вывод: испытание выявило максимальную производительность в 948,67 Мбит/с при размере фрейма в 1500 байт.

Замер производительности (Throughput: LAN to WAN (NAT))

Размер пакета (bit)


Тип пакета:UDP


Получено пакетов


 


Принято Мбит/с


 


1500


4957253


 


RX Framed Rate 986.829 Мбит/с


RX Data Rate      956.57 Мбит/с


RX Utilization      100.00% (1000.000 Мбит/с)


1024


8078375


 


RX Framed Rate 980.83 Мбит/с


RX Data Rate      936.77 Мбит/с


RX Utilization      100.00% (1000.000 Мбит/с)


512


5869635


 


RX Framed Rate 962.39 Мбит/с


RX Data Rate      875.93 Мбит/с


RX Utilization      100.00% (1000.000 Мбит/с)


88


8505488


 


RX Framed Rate 814.80 Мбит/с


RX Data Rate      277.77 Мбит/с


RX Utilization      100.00% (1000.000 Мбит/с)



Вывод: испытание выявило максимальную производительность в 956,57 Мбит/с при размере фрейма в 1500 байт.

Тест LAN – LAN

Задачи:
  1. Выполнить подключение 2-х ПК с сетевыми картами 1 Gbit Ethernet в порт платы LAN0 (IP_ADDR ПК1 192.168.1.1) и LAN1(IP_ADDR ПК2 192.168.1.2).
  2. На ПК1 запустить сервер Iperf:
    iperf –s
    
  3. На ПК2 запустить клиент Iperf: iperf –с 192.168.1.1 –i 1

Результатом работы программы будет скорость передачи данных между портами.

Результаты теста:



Тест LAN – WAN

Задачи:

  1. Выполнить подключение 2-х ПК с сетевыми картами 1 Gbit Ethernet в порт платы LAN0 (IP_ADDR ПК1 192.168.1.1) и WAN(IP_ADDR ПК2 192.168.2.2).
  2. Выполнить настройку путей маршрутизации на ПК1 и ПК2 соответственно: default route (Lan IP платы 192.168.1.254) и default route (Wan IP платы 192.168.2.1)
  3. На ПК1 запустить клиент Iperf:
    iperf – с 192.168.2.2 –i 1
    
  4. На ПК2 запустить сервер Iperf:
    iperf –s
    

Результатом работы программы будет скорость передачи данных между портами.

Результаты теста:



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



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

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

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

Promwad

68,00

Контрактная разработка и производство электроники

Поделиться публикацией
Комментарии 12
    +1
    а разве архитектура mips? у realtek вроде же ядра от lexra. и, снилось мне, в этом снк используется lexra rlx5281. да, оно mips-i частично совместимо, ибо не все команды реализованы. плюс dsp-инструкции под собирательным названием radiax
    а так же, снилось мне, что sdk у realtek написан «пяткой левой ноги» и «костылей и глюков в нем больше, чем звезд на небе». что приводит невозможности бэкпорта многих заплаток и возможностей из новых ядер…
      –1
      Занимательные, однако, Вам вещи снятся…
        +2
        Вообщето все верно
        0
        Да, вы правы, en1gma. Для упрощения мы не стали конкретизировать, какое конкретно ядро там стоит, поэтому написали просто MIPS.

        Насчет качества SDK: у Realtek другой подход к проектированию, нежели у топовых чип-вендоров, которые предоставляют развернутые 200-страничные мануалы и даташиты. Realtek штампует каждые 1,5–2 года обновления в линейке процессоров, имеет привлекательную цену и ориентирован на крупных производителей, которым оказывает техническую поддержку напрямую.
          0
          Особенно радуют у RTL в SDK глюки навроде «сделал iptables -t nat -F POSTROUTING и отвалилось все аппартное ускорение» :D
        0
        Это какое-то тепличное тестирование. Скажите, как часто Вы встречали у провайдеров статическое соединение без дополнительных подключений и авторизаций для физлиц? Статическую маршрутизацию и нат все уже давно аппаратно умеют.
        Реквестирую тест производительности в конфигурации wan-pppoe-lan, wan-pptp-lan и wan-l2tp-lan. IMHO это более реалистичный сценарий использования домашнего роутера.
          +1
          Скажите, как часто Вы встречали у провайдеров статическое соединение без дополнительных подключений и авторизаций для физлиц


          Ну в Москве большая часть крупных провайдеров предоставляет как минимум части абонентов прямое подключение с получением адреса по DHCP и привязкой к MAC клиента. Подключится напрямую к интернету может что угодно, даже ардуина какая-нибудь. Не исключаю что за пределами крупных городов вроде дела обстоят иначе.
          0
          А какие ограничения лицензионного и финансового плана на Вас накладывает NDA?
            –1
            Первое правило NDA — никому не рассказывать об NDA.
            +7
            Пользователям PC тайваньская компания Realtek знакома в первую очередь полным отсутствием даташитов на свои чипы, из-за чего существующие готовые железяки оказываются неремонтопригодными и выкидываются, а новые собираются на аналогах от фирм, у которых даташиты лежат прямо на сайте. Поэтому я не понимаю, как можно вести речь о какой бы то нибыло разработке на сабжах.
              0
              Если вы разработчик то получить документацию просто — нужно обратиться к дистрибьютору Realtek c описанием проекта и планируемой приличной серийностью, заключить NDA, получить документацию.

              Готовые железяки на Realtek ремонтировать не имеет смысла т.к ремонт дороже чем просто замена изделия на новое. Фирмы у которых даташиты лежат прямо на сайте — ориентированы на широкий круг разработчиков и радиолюбителей. Разработка на Realtek имеет смысл при большой серийности.
                0
                прочитать про «опингвинивание»

                Простите пожалуйста, но в чем заключалось «опингвинивание» этой платы? Если только в том, чтобы собрать из стандартного тулчейна стандартную прошивку fw.bin, то какое-то странное «опингвинивание».
                Скорость пересылки (особенно NAT) на больших пакетах не очень интересна, а как дела обстоят с загрузкой и потерями на «мелких» пакетах совсем на раскрыто, а было бы реально интересно, поскольку позволило бы судить о «внутренностях» карты.

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

                Самое читаемое