Пакеты поддержки модулей для ЗОСРВ «Нейтрино» > MIPS > BSP для устройств на базе процессора Элвис 1892ВМ206 > Проверка функционирования



Проверка функционирования

Проверка функционирования ППМ Xilinx Zynq UltraScale+ MPSoC под ЗОСРВ «Нейтрино».


Список проверок:

Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер типа Cortex-A53
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка переключения режимов и дуплекса контроллера Ethernet
Проверка драйвера контроллера USB 3.0 Host c USB HID устройствами
Измерении скорости работы драйвера контроллера USB Host c USB mass storage устройствами
Проверка драйвера контроллера QSPI
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера I2C
Проверка менеджера RTC
Проверка блока Watchdog
Проверка драйвера контроллера SATA
Проверка PCI сервера для контроллера PCIe в режиме Host
Проверка драйвера контроллера таймеров (Clock)
Проверка драйвера контроллера накристальной памяти (OCM)
Проверка блока управления загрузкой ПО FPGA
Проверка блока управления платформой PMU
Проверка драйвера DisplayPort
Проверка менеджера ядер RPU (R5)

Тестовый стенд

Тестовый стенд представляет из себя отладочный модуль ZCU102, соединённый с инструментальным ПК по интерфейсам RS-232 и Ethernet.


На инструментальный ПК должно быть установлено:

Подготовка

Перед проведением проверок необходимо запустить ЗОСРВ «Нейтрино» на отладочном модуле ZCU102 в соответствии с главой документации Загрузка образа ОС.


Дополнительные тестовые программы i2c-scan, ticksize и другие не входят в состав ППМ и должны быть самостоятельно загружены из публичного git-репозитория и собраны командой:

$ cd utils $ make install

Затем следует скопировать aarch64le версии тестовых программ на SD карту памяти и подключить её к ZCU102 или передать файлы по сети с помощью FTP или NFS.

Базовые проверки функционирования ОС

Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа

В последовательном терминале выполнить команду:

# uname -s

Проверка считается выполненной успешно, если в терминале будет выведено сообщение вида:

KPDA

Проверка функционирования контроллера DDR памяти

Для вывода информации о процессоре и доступной оперативной памяти выполнить команду pidin info:

# pidin info CPU:AARCH64 Release:2024 FreeMem:4021Mb/4096Mb BootTime:Dec 10 04:36:50 UTC 2022 Processes: 21, Threads: 60 Processor1: 1091555380 Cortex-A53 1333MHz FPU Processor2: 1091555380 Cortex-A53 1333MHz FPU Processor3: 1091555380 Cortex-A53 1333MHz FPU Processor4: 1091555380 Cortex-A53 1333MHz FPU

Для проверки функционирования контроллера оперативной памяти используется утилита memcheck. Ее требуется запустить и дождаться завершения проверки:

# /tmp/memcheck

Проверка считается выполненной успешно, если выведено сообщение:

PASS: all memory allocated

Проверка функционирования контроллера прерываний

Для вывода информации о используемых прерываниях выполнить команду pidin ir:

# pidin ir pid tid name 1 1 procnto-smp 1 2 procnto-smp 1 3 procnto-smp 1 4 procnto-smp 0 0x1b 0 -P- @0xffffff80600be160:0x0 1 6 procnto-smp 1 7 procnto-smp 1 14 procnto-smp 1 18 procnto-smp 1 22 procnto-smp 1 23 procnto-smp 1 24 procnto-smp 1 42 procnto-smp 1 46 procnto-smp 1 57 procnto-smp 1 68 procnto-smp 2 1 wdtkick 3 1 slogger 4 1 pipe 4 2 pipe 4 3 pipe 4 4 pipe 5 1 devc-pty 6 1 random 6 2 random 6 3 random 7 1 clock-xzynq 8 1 pmu-xzynq 9 1 fpga-xzynq 10 1 devc-serxzynq 1 0x35 0 T-- @0x402bb8:0x439028 2 0x36 0 T-- @0x402bb8:0x43f150 10 2 devc-serxzynq 11 1 -qspi-xzynq-zcu102 3 0x2f 0 TP- =PULSE 0x40000004:21 0x1:0 11 2 -qspi-xzynq-zcu102 11 3 -qspi-xzynq-zcu102 12 1 io-pkt-v4-hc 12 2 io-pkt-v4-hc 4 0x5f 0 TP- @0x780a9c50:0x554780 12 3 io-pkt-v4-hc 4110 1 inetd 8205 1 io-usb 5 0x61 0 TP- =PULSE 0x40000008:21 0:0 8205 2 io-usb 8205 3 io-usb 8205 4 io-usb 8205 5 io-usb 8205 6 io-usb 8205 7 io-usb 8207 1 devb-umass 8207 2 devb-umass 8208 1 devb-sdmmc 6 0x51 0 TP- =PULSE 0x40000005:21 0x3:0 8208 2 devb-sdmmc 8208 3 devb-sdmmc 8208 4 devb-sdmmc 8208 5 devb-sdmmc 8208 6 devb-sdmmc 8208 7 devb-sdmmc 8208 8 devb-sdmmc 8209 1 spi-master 8209 2 spi-master 7 0x33 0 T-- @0x780a64d8:0x41d028 8210 1 spi-master 8210 2 spi-master 8 0x34 0 T-- @0x780a64d8:0x41d028 8211 1 ocm-xzynq 8212 1 mksh 1253397 1 pidin

Проверка считается пройденной успешно, если вывод утилиты pidin ir содержит информацию об обработчиках прерывания, принадлежащих выполняемым процессам, в формате

pid tid Имя процесса id прерывания vector mask_count flags handler:area

Проверка функционирования таймера

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

# /tmp/ticksize

Проверка считается выполненной успешно, если вывод данной программы содержит аналогичные строки:

System timer ticksize: 1000 mks Measuring system timer interrupt latency for 10 sec... ------------------------------------ System Timer Latency = 0.54 mks ------------------------------------

Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер типа Cortex-A53

Для вывода информации о количестве процессоров выполнить команду pidin info:

# pidin info CPU:AARCH64 Release:2024 FreeMem:4021Mb/4096Mb BootTime:Dec 10 04:36:50 UTC 2022 Processes: 21, Threads: 60 Processor1: 1091555380 Cortex-A53 1333MHz FPU Processor2: 1091555380 Cortex-A53 1333MHz FPU Processor3: 1091555380 Cortex-A53 1333MHz FPU Processor4: 1091555380 Cortex-A53 1333MHz FPU

Для проверки функционирования на всех ядрах выполнить следующее:

# for cpu in 0 1 2 3; do on -C$cpu pidin -P pidin -fl; done

Проверка считается выполненной успешно, если вывод содержит следующие строки:

cpu 0 cpu 1 cpu 2 cpu 3

Проверки интерфейсов

Проверка драйвера контроллера UART

Для работы с последовательным портом используется драйвер devc-serxzynq. Настройки последовательного порта по умолчанию: скорость 115200, 8 бит, без контроля четности, 1 стоп-бит. В составе загрузочного образа драйвер запускается автоматически.

В случае успешного запуска драйвера в директории /dev/ будут созданы устройства ser1 и ser2.

# ls /dev/ser* /dev/ser1 /dev/ser2

Для проверки функционирования драйвера UART подключить ПМ к ПК через преобразователь по USB в один из разъемов и запустить терминальную программу minicom. В последовательном или удалённом терминале выполнить следующую команду:

# echo Test message > /dev/ser1

Проверка считается выполненной успешно, если в терминальной программе будет выведено сообщение:

Test message

Повторить описанные действия для /dev/ser2, подключив плату к ПК через другой UART-интерфейс.

Проверка драйвера контроллера Gigabit Ethernet

Для работы с контроллером интерфейса Gigabit Ethernet используется драйвер devnp-xzynq-ultrascale.so и менеджер ресурсов io-pkt-v4-hc. В составе загрузочного образа драйвер запускается автоматически. Для вывода информации о сетевых интерфейсах выполнить команду ifconfig.

В случае успешного запуска драйвера будет создан сетевой интерфейс xzynq0 и в результате выполнения команды ifconfig на экран будут выведены данные, аналогичные следующим, с указанием текущего ip-адреса, маски и широковещательного адреса:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33136 inet 127.0.0.1 netmask 0xff000000 xzynq0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM> capabilities tx=0 enabled=0 address: 00:0a:35:01:1d:ca media: Ethernet autoselect (1000baseT full-duplex,flowcontrol) status: active inet <ip адрес> netmask <маска> broadcast <широковещательный адрес>

Для проверки функционирования сетевого обмена выполнить следующую команду, инициирующую отправку ICMP пакетов существующему сетевому узлу:

# ping -c 3 <ip получателя> PING <ip получателя> (<ip получателя>): 56 data bytes 64 bytes from <ip получателя>: icmp_seq=0 ttl=64 time=0 ms 64 bytes from <ip получателя>: icmp_seq=1 ttl=64 time=0 ms 64 bytes from <ip получателя>: icmp_seq=2 ttl=64 time=0 ms ----<ip получателя> PING Statistics---- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms variance = 0 ms^2

Проверка считается выполненной успешно, если все 3 пакета были успешно получены (процент потерь равен нулю).

Проверка переключения режимов и дуплекса контроллера Ethernet

Просмотр доступных сетевых режимов осуществляется утилитой ifconfig с опцией -m:

# ifconfig -m xzynq0 xzynq0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM> capabilities tx=0 enabled=0 address: 00:0a:35:01:1d:ca media: Ethernet autoselect (1000baseT full-duplex,flowcontrol) status: active supported Ethernet media: media none media autoselect media 10baseT media 10baseT mediaopt full-duplex media 10baseT mediaopt full-duplex,flowcontrol media 10baseT mediaopt full-duplex,txpause media 10baseT mediaopt full-duplex,rxpause media 100baseTX media 100baseTX mediaopt full-duplex media 100baseTX mediaopt full-duplex,flowcontrol media 100baseTX mediaopt full-duplex,txpause media 100baseTX mediaopt full-duplex,rxpause media 1000baseT mediaopt full-duplex media 1000baseT mediaopt full-duplex,flowcontrol media 1000baseT mediaopt full-duplex,txpause media 1000baseT mediaopt full-duplex,rxpause inet <ip адрес> netmask <маска> broadcast <широковещательный адрес>

Для проверки автоматического определения сетевого режима выполнить следующие команды:

# ifconfig xzynq0 media autoselect down up # ifconfig -m xzynq0

Проверка считается пройденной успешно, если в выводе ifconfig -m присутствует строка

media: Ethernet autoselect

с указанием автоматически выбранного режима.

Для проверки установки требуемого сетевого режима необходимо установить его на ПМ и на инструментальной машине, с которой устанавливается сетевое соединение. Выполнить следующую команду на ПМ, где <режим> - требуемый сетевой режим из списка доступных сетевых режимов:

# ifconfig xzynq0 media <режим> down up

На инструментальной машине необходимо выполнить следующую команду, где <интерфейс> - сетевой интерфейс, <скорость> - требуемая скорость соединения, <тип> - half / full:

# ethtool -s <интерфейс> speed <скорость> duplex <тип> autoneg off

Проверка считается выполненной успешно, если после переключения режима корректно изменяется параметр media при вызове команды ifconfig для выбранного интерфейса, а команда ping отправляет и получает пакеты:

Проверка драйвера контроллера USB 3.0 Host c USB HID устройствами

Для работы с контроллером USB используется драйвер devu-xhci-xzynq.so. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории /dev/ будут создана директория io-usb. Для получения списка подключенных USB устройств может быть использована утилита usb:

# usb

Для проверки работоспособности драйвера подключить к ПМ USB flash накопитель с разделом FAT, содержащий хотя бы один непустой файл. Список созданных устройств в /dev для подключенной USB flash можно посмотреть командой:

# pidin -P devb-umass fd pid name 8209 devb-umass 0 10 rw 0 /dev/ser1 1 10 rw 0 /dev/ser1 2 10 rw 0 /dev/ser1 3 3 -w 0 /dev/slog 4 1 5 1 6 8207 7 1 8 1 0s 1 2s 8209 5s 8209 8s 8209 10s 1 MP 0 / 11s 1 MP 0 /dev/hd1 12s 1 MP 0 /dev/hd1t12

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

# mount /dev/<устройство> /usbfs # cp /usbfs/<файл для проверки> /tmp/ # cksum /usbfs/<файл для проверки> # cksum /tmp/<файл для проверки>

Проверка считается выполненной успешно, если контрольные суммы, выведенные двумя последними командами, совпадают. Для проверки работы USB клавиатуры и мыши используется утилита hidview. Подключить клавиатуру (мышь) к ПМ и выполнить следующие команды:

# slay -f io-hid devi-hid # io-hid -d usb # hidview -a

Проверка считается выполненной успешно, если при совершении действий с клавиатурой (мышью) на консоль выводятся коды событий, например:

00 : 01 00 00 00 00 00 00 : 00 00 00 00 00 00 00 : 02 00 00 00 00 00 00 : 00 00 00 00 00 00 00 : 00 01 00 00 00 00 00 : 00 02 f0 ff 00 00 00 : 00 03 f0 ff 00 00 00 : 00 04 e0 ff 00 00

Измерении скорости работы драйвера контроллера USB Host c USB mass storage устройствами

Для измерения скорости записи необходимо на подключенном к ПМ USB-flash создать файл размером 0.5 ГБайт и заполнить его случайными значениями с помощью утилиты dd, при этом измеряя время данной операции через time:

# dd if=/dev/urandom of=/dev/shmem/test_file bs=1000 count=512 # time dd if=/dev/shmem/test_file of=test_file bs=1000 count=512

Выводом данной команды будет является время и скорость записи на bulk транзакции:

512+0 records in 512+0 records out 512000 bytes transferred in 0.121 secs (4231404 bytes/sec) 0m00.13s real 0m00.00s user 0m00.00s system

Для измерения скорости чтения необходимо скопировать созданный тестовый файл в /dev/null с помощью утилиты dd:

# time dd if=test_file of=/dev/null bs=1000 count=512

Выводом данной команды будет является время чтения на bulk транзакции:

512+0 records in 512+0 records out 512000 bytes transferred in 0.009 secs (56888888 bytes/sec) 0m00.01s real 0m00.00s user 0m00.00s system

Проверка драйвера контроллера QSPI

Для работы с QSPI Flash используется драйвер devf-qspi-xzynq-zcu102. В составе загрузочного образа драйвер запускается автоматически. В каталоге /dev должно появиться устройство fs0. Для формирования файловой системы встроенного флэш накопителя используется утилита flashctl. Выполнить стирание данных флэш памяти:

# flashctl -p /dev/fs0 -e

Выполнить перезапуск драйвера для обновления таблицы разделов:

# slay -f devf-qspi-xzynq-zcu102 # devf-qspi-xzynq-zcu102 -r

Выполнить форматирование памяти для создания и монтирования файловой системы:

# flashctl -p /dev/fs0p0 -f -n /flash -m

Результатом проведения данных команд должно являться появление каталога /flash в корневом каталоге файловой системы. Далее выполнить следующие команды:

# touch /tmp/test_file # cp /tmp/test_file /flash/ # cksum /flash/test_file # cksum /tmp/test_file

Проверка считается выполненной успешно, если контрольные суммы, выведенные двумя последними командами, совпадают. Для измерения производительности операции записи и чтения необходимо создать файл и заполнить его случайными значениями с помощью утилиты dd, при этом измеряя время данной операции через time:

# dd if=/dev/urandom of=/dev/shmem/test_file bs=1000 count=256 # time dd if=/dev/shmem/test_file of=/flash/test_file bs=1000 count=256

Выводом данной команды будет является время записи:

256+0 records in 256+0 records out 256000 bytes transferred in 3.901 secs (65624 bytes/sec) 0m03.92s real 0m00.00s user 0m00.00s system

Для измерения скорости чтения необходимо скопировать созданный тестовый файл в /dev/null с помощью утилиты dd:

# time dd if=/flash/test_file of=/dev/null bs=1000 count=256

Выводом данной команды будет является время и скорость чтения:

256+0 records in 256+0 records out 256000 bytes transferred in 0.085 secs (3011764 bytes/sec) 0m00.11s real 0m00.00s user 0m00.00s system

Проверка драйвера контроллера SD/MMC

Для работы с контроллером SD/MMC используется драйвер devb-sdmmc. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории /dev/ будет создано устройство sd0, соответствующее SD-карте, а также устройства, соответствующие разделам. Для управления устройствами могут быть использованы стандартные утилиты для управления и чтения/записи блочных устройств. Проверка считается выполненной успешно, если при выполнении команды ls /dev/sd0* отображаются устройства, соответствующие SD-карте и разделам, например:

# ls /dev/sd0* /dev/sd0 /dev/sd0t11 /dev/sd0t177

В выводе утилиты mount увидеть точку монтирования одного из разделов SD-карты, например:

# mount /dev/sd0t177 on / type qnx6

Для измерения производительности операции записи и чтения необходимо создать файл и заполнить его случайными значениями с помощью утилиты dd, при этом измеряя время данной операции через time:

# dd if=/dev/urandom of=/dev/shmem/test_file bs=1000 count=256 # time dd if=/dev/shmem/test_file of=<точка монтирования>/test_file \ bs=1000 count=256

Выводом данной команды будет является время и скорость записи:

256+0 records in 256+0 records out 256000 bytes transferred in 0.025 secs (10240000 bytes/sec) 0m00.05s real 0m00.00s user 0m00.00s system

Для измерения скорости чтения необходимо скопировать созданный тестовый файл в /dev/null с помощью утилиты dd:

# time dd if=<точка монтирования>/test_file of=/dev/null bs=1000 count=256

Выводом данной команды будет является время и скорость чтения:

256+0 records in 256+0 records out 256000 bytes transferred in 0.004 secs (64000000 bytes/sec) 0m00.01s real 0m00.00s user 0m00.00s system

Проверка драйвера контроллера I2C

Для работы с контроллером I2C используется драйвер i2c-xzynq. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории /dev/ будут созданы устройства i2c0 и i2c1.

# ls /dev/i2c* /dev/i2c0 /dev/i2c1

Проверка функционирования заключается в запуске утилиты i2c-scan и считается выполненной успешно, если вывод i2c-scan соответствует ожидаемому, например:

# i2c-scan -d /dev/i2c1 Scanning I2C device /dev/i2c1 for I2C devices... 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: xx -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- 74 75 -- -- -- -- -- -- -- -- -- –-

Проверка менеджера RTC

Для работы с чипом RTC используется утилита rtc и драйвер rtc-zynqmp.so. Для проверки работоспособности RTC вызвать утилиту rtc:

# rtc -v hw

Проверка считается выполненной успешно, если будет выведена информация о текущей дате и времени:

rtc get: current RTC time is 2023/5/3 6:15:19 (UTC)

Проверка блока Watchdog

Для работы с блоком watchdog используется утилита wdtkick. В составе загрузочного образа утилита запускается автоматически. Для проверки работоспособности блока watchdog вызвать завершение работы системы с помощью утилиты shutdown:

# shutdown -fb

Проверка считается выполненной успешно, если через ~10 секунд произойдет сброс ПМ.

Проверка драйвера контроллера SATA

Для работы с SATA используется драйвер devb-ahci. В составе загрузочного образа драйвер запускается автоматически. Для проверки работоспособности драйвера подключить к ПМ накопитель с интерфейсом SATA с отформатированным разделом FAT, содержащий хотя бы один не пустой файл. Список созданных устройств в /dev для подключенного накопителя можно посмотреть командой:

# pidin -P devb-ahci fd pid name 10409 devb-ahci 0 10 rw 0 /dev/ser1 1 10 rw 0 /dev/ser1 2 10 rw 0 /dev/ser1 3 3 -w 0 /dev/slog 4 1 5 1 6 8207 7 1 8 1 0s 1 2s 8209 5s 8209 8s 8209 10s 1 MP 0 / 11s 1 MP 0 /dev/hd2 12s 1 MP 0 /dev/hd2t11

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

# mount -t dos /dev/<имя устройства> /satafs # cp /satafs/test_file /tmp/ # cksum /satafs/test_file # cksum /tmp/test_file

Проверка считается выполненной успешно, если контрольные суммы, выведенные двумя последними командами, совпадают. Для оценки скорости записи и соответствующей загрузки CPU при работе с SATA необходимо открыть два псевдотерминала, в первом — воспользоваться утилитой dd для записи на устройство SATA:

# dd if=/dev/random of=/tmp/test_file bs=1000000 count=1000000 # dd if=/tmp/test_file of=/satafs/test_file bs=1000000 count=1000000 1024+0 records in 1024+0 records out 1024000000 bytes transferred in 86.734 secs (11806212 bytes/sec)

В другом терминале для отслеживания загрузки CPU требуется использовать утилиту top и визуально посмотреть на загрузку CPU.

В первом псевдотерминале провести чтение с SATA, отслеживая загрузку CPU

# dd if=/satafs/test_file of=/dev/null bs=1000000 count=1000000 1024+0 records in 1024+0 records out 1024000000 bytes transferred in 6.411 secs (159725471 bytes/sec)

Остановить работу утилиты top.

Проверка PCI сервера для контроллера PCIe в режиме Host

Для работы с контроллером PCIe используется менеджер ресурсов pci-xzynq. В составе загрузочного образа PCI сервер запускается автоматически. Получения списка PCI устройств:

# pci -v

Проверка считается выполненной успешно, если выведена информация о подключённых PCI устройствах.

Проверка драйвера контроллера таймеров (Clock)

Для работы с контроллером таймеров используется драйвер clock-xzynq. В составе загрузочного образа драйвер clock-xzynq запускается автоматически. Для проверки используется утилита lsclk:

# lsclk PLL actual frequency: IOPLL: 1499850000Hz RPLL: 733260000Hz APLL: 1199880000Hz DPLL: 1066560000Hz VPLL: 1499850000Hz IOPLL_TO_FPD: 499950000Hz RPLL_TO_FPD: 366630000Hz PSS_REF_CLK: 33330000Hz Device actual frequency: CPU: 1199880000Hz DBG_TRACE: DISABLED DBG_FPD: 249975000Hz DP_VIDEO: 299970000Hz DP_AUDIO: 24442000Hz DP_STC: 26187857Hz DDR: 533280000Hz GPU: 499950000Hz SATA: 249975000Hz PCIE: 249975000Hz FPD_DMA: 599940000Hz DPDMA: 599940000Hz TOPSW_LSBUS: 99990000Hz TOPSW_TSTMP: DISABLED USB3_DUAL: DISABLED GEM0: DISABLED GEM1: DISABLED GEM2: DISABLED GEM3: 124987500Hz USB0: DISABLED USB1: DISABLED QSPI: 299970000Hz SDIO0: 0Hz SDIO1: 187481250Hz UART0: 99990000Hz UART1: 99990000Hz SPI0: 499950Hz SPI1: 499950Hz CAN0: 46870312Hz CAN1: 99990000Hz CPU_R5: 499950000Hz IOU_SWITCH: 249975000Hz CSU_PLL: 187481250Hz PCAP: 187481250Hz LPD_SWITCH: 499950000Hz LPD_SBUS: 99990000Hz DBG_LPD: 249975000Hz NAND: DISABLED LPD_DMA: 499950000Hz PL0: 99990000Hz PL1: 299970000Hz PL2: DISABLED PL3: DISABLED GEM_TSU: 249975000Hz AMS: 51718965Hz I2C0: 99990000Hz I2C1: 99990000Hz TIMESTAMP: 33330000Hz

Проверка считается выполненной успешно, если утилита lsclk завершилась без ошибок и вывела корректные частоты.

Проверка драйвера контроллера накристальной памяти (OCM)

Для работы с контроллером накристальной памяти используется драйвер ocm-xzynq. В составе загрузочного образа драйвер ocm-xzynq запускается автоматически. Создать файл со случайным данными размером 256 килобайт и записать его в накристальную память:

# dd if=/dev/random of=/tmp/random.bin bs=512 count=512 # cat /tmp/random.bin > /dev/ocm

Для подсчета контрольной суммы данных в оригинальном файле и в накристальной памяти выполнить команду cksum:

# cksum /tmp/random.bin /dev/ocm 4228331232 262144 /tmp/random.bin 4228331232 262144 /dev/ocm

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

Проверка блока управления загрузкой ПО FPGA

Для работы с блоком управления загрузкой ПО FPGA используется менеджер fpga-xzynq. В составе загрузочного образа драйвер fpga-xzynq запускается автоматически. Для проверки требуется образ ПО FPGA, загрузка осуществляется командой cat:

# cat /tmp/example.bit > /dev/fpga

Для проверки загрузки образа ПО выполнить команду fpgactl status:

# fpgactl status

Проверка считается выполненной успешно, если fpgactl вывела

The PL configuration is done

Проверка блока управления платформой PMU

Для работы с блоком управления платформой PMU используется менеджер pmu-xzynq. В составе загрузочного образа драйвер pmu-xzynq запускается автоматически. Для проверки загрузки можно выполнить команду чтения регистра PCAP Status с помощью программы pmuctl:

# pmuctl get_cfgreg 0x00FFCA3010

Проверка считается выполненной успешно, если регистр был прочитан без ошибок и программа вывела значение регистра:

Config register FFCA3010: 0xa0002fde

Проверка драйвера DisplayPort

Проверка Display Port производится с использованием утилиты gf-vsync. Перед выполнением проверки необходимо подключить к ZCU102 монитор через разъем DisplayPort. Для корректной проверки на устройстве должен размещаться файл /etc/system/config/display.conf следующего содержания:

device {
drivername=zynqmp
vid=0x0
did=0x0
deviceindex=0
display {
xres=1920
yres=1080
refresh=60
pixel_format=argb8888
}
}

В конфигурационном файле /etc/system/config/zynqmp-dp.conf заменить

no_vid_layer = 0

на

no_vid_layer = 1

Затем необходимо запустить io-display

# io-display -dvid=0,did=0

После — воспользоваться утилитой gf-vsync

# gf-vsync -l0

Проверка считается пройденной успешно, если на экране отображается корректное изображение, соответствующее документации на утилиту gf-vsync.

Проверка менеджера ядер RPU (R5)

Для проверки тестов и примеров функционирования сопутствующей ПП АМР библиотеки libmetal, необходимо:

Для проверки связи ОС с RPU с использованием rpsmsg используется тест echo. Для его выполнения необходимо:




Предыдущий раздел: перейти