Плата OMAP5432 EVM от компании Texas Instruments является полнофункциональной платформой для разрабоки, как Linux® так и Android™ приложений. Данная плата построена на кристалле OMAP5432 ES2.0, который включает двухъядерный 1.5GHz ARM® Cortex™-A15 MPCore™ процессор и двухъядерный графический ускоритель PowerVR® SGX544™, разработанный для мобильных устройств.

Hardware Features

Плата OMAP5432 EVM построена на кристалле OMAP5432 который содержит двухъядерный ARM® Cortex™-A15 MPCore™ процессор и двухъядерный графический ускоритель SGX544. Сравнительно дешевое OMAP5432 EVM решение позволяет быстро опробировать работу современных приложений, требующих высокой производительности и низкой потребляемой мощности процессора, включая human machine interface (HMI), portable data terminals (PDT), обработку сигналов и приложения для медицинского оборудования. Данная плата имеет довольно широкий набор современных интерфейсов: Ethernet, USB 3.0, USB 2.0, HDMI, audio I/O, SATA, а также порты расширения для подключения нескольких мониторов и внешней видеокамеры. Графические 3D- и 2D-ускорители позволяют разгрузить центральный процессор и обеспечить достаточно высокое 1080p60 разрешение. Современная система управления питанием позволяет значительно снизить энергопотребление.

Доступны пробные версии (не поставляются вместе с платой) множества операционных систем включая такие как: Linux®, Android™, QNX® и Green Hills INTEGRITY®.

OMAP5 uEVM
  • OMAP5432, dual-core 1.5 GHz ARM® Cortex™-A15 MPCore™ processor, NEON™ SIMD coprocessor and VFPv4, 2-MiB Unified L2 Cache Memory, 6 Power Domains
  • ARM Dual Cortex™-M4 Image Processing Unit (IPU)
  • PowerVR SGX544 3D GPU
  • Vivante™ GC320 Core 2D-Graphics Accelerator (BB2D)
  • On-Chip Debug with 14-Pin JTAG and CTools Technologies
  • Display Controller with DMA Engine
  • Support for 3 LCD Outputs and 1 TV
  • 3 Video, 1 GFX, and 1 Write-back Pipeline
  • HDMI Encoder: HDMI 1.4a, HDCP 1.4, and DVI 1.0 Compliant
  • Imaging Subsystem (ISS), Consisting of Image Signal Processor (ISP) and Still Image Coprocessor (SIMCOP) Block
  • Face Detection Interface (FDIF)
  • Power-Independent Audio Back-End (ABE) Subsystem
  • DDR3/DDR3L Memory Interface (EMIF) Module (Up to 4 GiB of SDRAM per EMIF)
  • General-Purpose Memory Controller (GPMC)
  • System Direct Memory Access (DMA) Controller
  • Five High-Speed Inter-Integrated Circuit (I²C) Ports
  • HDQ™/1-Wire® Interface
  • 5 Configurable UART/IrDA/CIR Modules
  • 4 Multichannel Serial Peripheral Interfaces (MCSPIs)
  • Multichannel Buffered Serial Port (MCBSP)
  • Multichannel Pulse Density Modulation (MCPDM)
  • Multichannel Audio Serial Port (MCASP)
  • 6-Path Digital Microphone (DMIC) Module
  • MIPI® High-Speed Synchronous Serial Interface (HSI)
  • High-Speed (HS) Multiport USB Host Subsystem
  • SATA Host Controller and Physical Layer (PHY)
  • MMC/SDIO Host Controller
  • SuperSpeed (SS) USB OTG Subsystem and USB3 PHY
  • Up to 256 General-Purpose I/O (GPIO) Pins
  • 11 General-Purpose Timers
  • 2 Watchdog Timers
  • 32-kHz Synchronized Timer
  • Power, Reset, and Clock Management

Toolchain

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

Готовый toolchain для работы на 64-разрядных Linux машинах можно получить на нашем FTP-сервере в каталоге toolchains/x86_64. Выбирать здесь нужно последнюю версию архива с именем 'arm-OMAP543X-linux-glibc-*.tar.gz'.

Для самостоятельной сборки toolchain-а, необходимо получить срез репозитория toolchains, например,

$ svn co svn://radix-linux.su/toolchains/trunk toolchains

И выполнить команду make в соответствующем каталоге:

$ cd toolchains/products/OMAP543X-glibc/1.0.9
$ make -j8

Напомним здесь, что перед сборкой необходимо подготовить каталог для инсталляции toolchain-а так, как это описано в разделе, посвященном загрузке toolchain-ов с нашего FTP-сервера.

Source Code

Исходные коды ядра Linux, загрузчика U-Boot, а также необходимых драйверов хранятся на различных ресурсах, таких как http://omapzoom.org и http://git.ti.com/glsdk. К сожалению, компания Texas Instruments уделяет мало внимания централизованному хранению исходных кодов, полагаясь в основном на партнеров, которые стараются предоставить готовые решения для быстрого старта. Поэтому поиск необходимых исходных пакетов должен начинаться с загрузки SDK, в манифесте которого можно найти ссылки на множество источников.

На нашем сервере мы поддерживаем зеркала ключевых репозиториев. Так исходные коды ядра Linux можно найти в репозитории linux-omap.git, а загрузчик, – в репозитории u-boot-omap.git.

Для того, чтобы разобраться, какие именно срезы репозиториев используются при сборке платформы Radix.Linux, следует обратиться к Make-файлам репозитория sources.git. Например, в файле Linux/omap5-glsdk/Makefile, можно видеть, что мы используем ветку p-ti-glsdk-3.8.y репозитория git://git.omapzoom.org/kernel/kernel/omap.git.

Поскольку компания Texas Instruments, сосредоточившись на новом процессоре DRA74x, практически перестала поддерживать OMAP5432 EVM, мы не торопимся переходить на новые версии ПО для данной платы.

Kernel

Репозиторий исходных кодов ядра расположен по адресу git://git.omapzoom.org/kernel/kernel/omap.git. Зеркало, обновляемое кахдые сутки, можно найти на нашем сервере по адресу https://git.radix-linux.su/TI/omap5/linux-omap.git.

Порядок сборки и приготовления отчуждаемого пакета, можно найти в каталоге boot/kernel/omap543x репозитория платформы Radix.Linux. Здесь представлена версия ядра Linux, снятая с ветки p-ti-glsdk-3.8.y и соответствующая той, которая используется в GLSDK 6.04.00.02.

Для идентификации срезов, мы используем дату в именовании каталогов, содержащих наши Make-файлы. Точные ревизии веток, используемые в нашей работе, можно увидеть на FTP-сервере или в репозитории sources.git (файл Linux/TI/omap5/glsdk/Makefile ), где вначале файла приведены таблицы соответствия hash-сумм и дат изменения репозитория.

.   .   .

#
# Revisions from 'p-ti-linux-3.8.y' branch.
#
#                                               hash | vers | date
#            ----------------------------------------+------+--------
revisions += 89927f5573872cada07d07c714e24a71ed6c29c3:3.8.13:20131223
revisions += 23cdd7ea36f5acf2b57032421586e8e8e76a490c:3.8.13:20140222
revisions += 2c871a879dbb4234232126f7075468d5bf0a50e3:3.8.13:20140411
revisions += 71a6fd5e2225306708ee3a7b941455d1315d1b9f:3.8.13:20140522
revisions += 6f5ad9c4a5760372995ddfe21e71e76e734d154f:3.8.13:20140724
#
.   .   .

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

U-Boot

Исходные коды загрузчика U-Boot находятся в репозитории git://git.omapzoom.org/repo/u-boot.git. Для удобства, мы зеркалируем данный репозиторий на нашем сервере.

Для загрузки устройства необходимо использовать ветку p-ti-u-boot-2013.04. Приготовление пакета, для платформы Radix.Linux, можно видеть в каталоге boot/u-boot/omap543x.

Текущая версия U-boot рассчитана на то, что загрузка происходит с FAT32-раздела SD карты, поэтому в файле boot/u-boot/omap543x/2013.04-20140216/Makefile, помимо сборки, осуществляется приготовление образа файловой системы для последующей инсталляции. Результирующий образ помещается в файл с именем omap5uevm.fat32fs.

Flash Layout

В разделе Root Ext4 FS Image вводной статьи, даны общие сведения о структуре загрузочной SD карты. В отличие от других плат, необходимость использования дополнительной файловой системы приводит к тому, что на загрузочном носителе необходимо организовать следующее расположение разделов.

$ /sbin/fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 32.1 GB, 32094814208 bytes
4 heads, 16 sectors/track, 979456 cylinders, total 62685184 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

        Device Boot      Start        End      Blocks   Id  System
/dev/mmcblk0p1   *        2048    1048575      523264    c  W95 FAT32 (LBA)
/dev/mmcblk0p2         1048576   10869759     4910592   83  Linux
$

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

GPU Kernel Module

Драйвер GPU поставляется в исходном коде и собирается вне ядра Linux. Оригинальный репозиторий Texas Instruments расположен по адресу http://git.ti.com/graphics/omap5-sgx-ddk-linux. На нашем сервере поддерживается зеркало omap5-sgx-ddk-linux.git, обновляемое каждые сутки.

Сборка драйверов для платформы Radix.Linux осуществляется по сценариям, описанным в Make-файлах каталога hal/drivers/omap543x/sgx-ddk. Так, для версии 1.9.0.11, сборка драйвера описана в файле 1.9.0.11/Makefile.

GPU User Space Drivers

Компания Texas Instruments не поставляет исходные коды библиотек в исходных кодах. Архивы, представленны в репозитории omap5-sgx-ddk-linux, зеркало которого можно найти на нашем сервере по адресу https://git.radix-linux.su/TI/glsdk/omap5-sgx-ddk-um-linux.git.

Исходные коды xf86-video драйвера от компании Texas Instruments можно найти по адресу http://git.ti.com/glsdk/xf86-video-omap.

На данный момент платформа Radix.Linux не использует библиотеки OpenGL ES на плате OMAP5432 EVM.