Знайомство з налагоджувальною платою Realtek RTL8954C


Численним користувачам РС тайванська компанія Realtek відома за своїм мережевих контролерів (Ethernet) і бездротових (WiFi) карток, а також по мікросхем AC97-аудіокодеків. Однак у Realtek є процесори не тільки для застосування в PC, а також для мережевого обладнання.

В рамках даної статті ми познайомимося з налагоджувальною платою і мережевим процесором Realtek RTL8954C, зберемо і запустимо базове ядро Linux, а також виконаємо тест пропускної здатності Ethernet-портів.

На заголовному малюнку представлена налагоджувальна плата Realtek для процесора RTL8954C, ми використовували її в кількох проектах по розробці абонентських роутерів LAN/WAN/WiFi з підтримкою 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.1 p 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 конфігураційного меню

Виконати настройку яку збирає прошивки, як описано нижче (див. скріншоти):
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
 
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
Завдання:
  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».

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.