Знакомство с отладочной платой Freescale T1040RDB для промышленных сетевых коммутаторов

от автора

В погоне за минимальной ценой и временем разработки сложных сетевых устройств производители сетевых процессоров стремятся выпускать максимально интегрированные решения, что упрощает разработку аппаратной части и программного обеспечения. Примером такого подхода являются 64-битные процессоры Freescale T1040 и T1020 со встроенным гигабитным свитчом.

Семейство T10xx идеально подходит как для управления и обработки трафика в таких устройствах как промышленные роутеры, коммутаторы, точки доступа, файерволы, системы DPI и другом сетевом оборудовании.

Отладочная плата T1040RDB, которую мы изучим в рамках этой статьи, представляет собой аппаратную платформу на базе процессора Freescale QorIQ T1040 с четырьмя ядрами e5500 и скоростью до 1,4 ГГц.


Передняя панель T1040RDB


Интерфейсы системной платы T1040RDB

На рисунке ниже показана высокоуровневая структурная схема T1040RDB:

Основные характеристики T1040RDB:

  • Процессорная платформа Freescale QorIQ
    • Телекоммуникационный процессор QorIQ T1040 с четырьмя ядрами e5500, работающими на частоте 1,4 ГГц

  • Подсистема памяти
    • DDR3L SDRAM
      • 1 DIMM-слот, поддерживающий до 2 ГБ
      • Поддержка DDR3 1600 UDIMM/RDIMM

    • NOR флэш-память
    • 128 МБ 16-бит NOR флэш-память, MICRON: JS28F00AM29EWHA
    • NAND flash
    • 1 ГБ SLC NAND флэш-память, MICRON: MT29F8G08ABABAWP-ITX:B
    • Поддержка SD-карт памяти
    • SATA-интерфейс

  • PCIe
    • Один  слот PCIe-x4
    • Два слота mini-PCIe

  • USB 2.0
    • Сдвоенный USB-слот (подключенный к USB PHY)

  • Gigabit Ethernet
    • ETH0 — ETH 1: Подключены к двум независимым RGMII PHY — RTL8211E
    • ETH 2:: Подключен к SGMII PHY — RTL8211DN
    • ETH 3 — ETH10: Подключены к двум независимым QSGMII PHY — F104

  • UART
    • Поддержка двух UART, до 115200 бит/с для вывода консоли; используются сдвоенный RJ45-разъем для двух портов

  • TDM
    • Поддержка одного FXO и четырех FXS-портов для телефонии

Сборка Linux

Отладочная плата T1040RDB поставляется с предустановленным ПО, но для полноценной разработки потребуется собрать прошивку из предоставленного SDK. В качестве рабочего окружения мы используем ПК с установленной на нем ОС Ubuntu 12.04.4 LTS.

SDK поставляется в виде образа со следующим названием: QorIQ-SDK-T2080V1.1-T1040V0.3-SOURCE-20140422-yocto.iso

Для установки на рабочий ПК достаточно запустить скрипт инсталяции:

./install 

Установка выполнится в следующую директорию:

cd ~/QorIQ-SDK-T2080V1.1-T1040V0.3-20140422-yocto 

Далее — установка необходимых зависимостей на рабочем ПК:

./scripts/host-prepare.sh 

Для конфигурации сборки под нашу плату выполняем:

./fsl-setup-poky -m t1040rdb 

Сама сборка прошивки выполняется с помощью bitbake с указанием необходимого состава корневой файловой системы:

bitbake fsl-image-core 

Готовые образы будут скопированы в каталог:

QorIQ-SDK-T2080V1.1-T1040V0.3-20140422-yocto/build_t1040rdb_release/tmp/deploy/images 

Подключение к консоли

  1. Соедините кабелем RS-232 порт T1040RDB «UART0» и рабочий ПК
  2. Откройте программу Терминал на рабочем ПК для связи с T1040RDB
  3. Конфигурация последовательного порта рабочего компьютера должна быть следующая:

  • Скорость: 115200 бит/с
  • Количество бит данных: 8
  • Проверка четности: нет
  • Количество стоп-битов: 1
  • Управление потоком: аппаратное или без управления потоком

Загрузка Linux

Далее рассмотрим загрузку платы T1040RDB с TFTP-сервера, установленного на рабочем ПК. Для этого перенесем uImage—3.8-r11.1-t1040rdb-20150603132854.bin, uImage—3.8-r11.1-t1040rdb-20150603132854.dtb, fsl-image-core-t1040rdb-20150603132854.rootfs.ext2.gz.u-boot в каталог TFTP-сервера.

Для загрузки необходимо выполнить установку следующих параметров в консоли u-boot и задать команду загрузки платы с TFTP:

setenv serverip 192.168.1.10 setenv ipaddr 192.168.1.1 setenv ethact FM1@DTSEC4 setenv baudrate 115200 setenv bootfile uImage--3.8-r11.1-t1040rdb-20150603132854.bin setenv consoledev ttyS0 setenv fdtfile uImage--3.8-r11.1-t1040rdb-20150603132854.dtb setenv fdtaddr c00000 setenv loadaddr 1000000 setenv othbootargs ramdisk_size=960000 setenv ramboot 'setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr' setenv ramdiskaddr 2000000 setenv ramdiskfile fsl-image-core-t1040rdb-20150603132854.rootfs.ext2.gz.u-boot 

Выполняем команду загрузки Linux:

run ramboot 

При успешном получении загрузочных файлов с TFTP в консоли появятся следующее сообщение:

## Booting kernel from Legacy Image at 01000000 ...    Image Name:   Linux-3.8.13-rt9-QorIQ-SDK-T2080    Image Type:   PowerPC Linux Kernel Image (gzip compressed)    Data Size:    4290895 Bytes = 4.1 MiB    Load Address: 00000000    Entry Point:  00000000    Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 02000000 ...    Image Name:   fsl-image-core-t1040rdb-20150603    Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)    Data Size:    27520425 Bytes = 26.2 MiB    Load Address: 00000000    Entry Point:  00000000    Verifying Checksum ... OK ## Flattened Device Tree blob at 00c00000    Booting using the fdt blob at 0xc00000    Uncompressing Kernel Image ... OK    Loading Ramdisk to 2e5c1000, end 2ffffda9 ... OK    Loading Device Tree to 03fe1000, end 03fff71e ... OK 

Полный лог загрузки ОС пропущен для экономии времени читателя.

Подключение к командной строке Linux:

login: root root@t1040rdb:~# Проверим, что загрузилось свежесобранное ядро: root@t1040rdb:~# uname -a Linux t1040rdb 3.8.13-rt9-QorIQ-SDK-T2080V1.1-T1040V0.3 #1 SMP Wed Jun 3 17:31:19 FET 2015 ppc GNU/Linux 

В собранной прошивке есть стандартные утилиты проверки пропускной способности сети iperf и netperf. Проведем базовые проверки пропускной способности:

root@t1040rdb:~# ifconfig fm1-gb3 up # Порт ETH0 root@t1040rdb:~# ifconfig fm1-gb3 192.168.1.1 root@t1040rdb:~# iperf -c 192.168.1.10 ------------------------------------------------------------ Client connecting to 192.168.1.10, TCP port 5001 TCP window size: 21.3 KByte (default) ------------------------------------------------------------ [  3] local 192.168.1.1 port 40315 connected with 192.168.1.10 port 5001 [ ID] Interval       Transfer     Bandwidth [  3]  0.0-10.0 sec  1.09 GBytes    935 Mbits/sec 

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

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

Другая хорошая статья на эту тему: Знакомство с возможностями свитч-процессора Realtek RTL 8332M.

ссылка на оригинал статьи http://habrahabr.ru/post/261909/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *