Заводське збирання та тестування
Це рекомендований процес збирання та тестування плат на основі Modalix на заводі. Адаптуйте його до своєї плати, тестового оснащення та складальної лінії.
- Фізичне складання
- Електрична перевірка
- Програмування ідентифікатора плати та MAC-адреси
- Налаштування тестової станції
- Завантаження тестового образу
- Запуск діагностики
- Програмування виробничого образу
- Тестування застосунків, маркування та пакування
Послідовні консолі
Плата Modalix має дві послідовні консолі. Обидві працюють на швидкості 115200 бод із вимкненим апаратним керуванням потоком.
| Консоль | Призначення |
|---|---|
| UART tRoot (безпечне завантаження) | Програмування ідентифікатора плати та MAC-адреси, повідомлення про оновлення tRoot |
| UART U-Boot/Linux | Команди U-Boot, вхід у Linux і всі тести на цій сторінці |
Роз’єм для кожної консолі залежить від плати. Для еталонної плати-носія див. ролі UART у розділі Запуск плати-носія. Під’єднайтеся до кожної консолі з хоста, наприклад:
sima-user@sima-user-machine:~$ minicom -b 115200 -D /dev/ttyUSB0
Назва пристрою (/dev/ttyUSB0, /dev/ttyUSB1) залежить від того, як кабелі
визначаються на хості.
Фізичне складання
Цей етап залежить від вашої плати та виробничого процесу: встановлення радіаторів, монтаж плати в корпус або тестове оснащення тощо.
Електрична перевірка
- Складіть перелік точок доступу до кожної основної шини живлення та перевірте імпеданс кожної шини на обриви й короткі замикання.
- Складіть перелік напруг, які можна виміряти, і записуйте їх для кожної плати або для вибірки плат із кожної партії.
- Перевірте тактові сигнали, які можна виміряти, і запишіть їх для кожного серійного номера.
Програмування ідентифікатора плати та MAC-адреси
Ідентифікатор плати (також званий ідентифікатором пристрою) і MAC-адреси записуються в одноразово програмовану (OTP) пам’ять MLSoC за допомогою спеціальної прошивки tRoot.
OTP-пам’ять можна записати лише один раз. Перевіряйте кожне значення, перш ніж підтвердити його.
-
Під’єднайте хост до UART tRoot.
-
Під’єднайте програматор SPI-флеш-пам’яті, а потім подайте живлення.
-
Завантажте прошивку tRoot для програмування OTP у SPI-флеш-пам’ять, як описано в розділі Програмування SPI-флеш-пам’яті tRoot.
-
Вимкніть живлення, від’єднайте програматор SPI-флеш-пам’яті та знову подайте живлення.
-
У консолі tRoot введіть ідентифікатор плати в шістнадцятковому форматі, підтвердьте його, а потім введіть MAC-адресу:
enter hwid in hex format(ex:0x00010012)hwid entered is 0x123Press (Y/N)burning hwidConfigured HWID :: 0x123Activated ID Selector :: 1Enter mac addr in format (A0:B1:C2:D3:E4:F5)Після введення MAC-адреси плата одразу виконує послідовність завантаження.
-
Вимкніть і знову ввімкніть живлення плати та переконайтеся, що вона завантажується й повідомляє, що ідентифікатор плати вже запрограмовано.
-
Завантажте свою виробничу прошивку tRoot у SPI-флеш-пам’ять, як описано в розділі Програмування SPI-флеш-пам’яті tRoot.
Програмування SPI-флеш-пам’яті tRoot
Прошивка tRoot — це один двійковий файл, troot_blob.be. Ви записуєте одну з двох
версій: прошивку для програмування OTP, яку використано вище, або вашу виробничу прошивку.
SiMa.ai рекомендує хост-адаптер Total Phase Aardvark I2C/SPI із програмним забезпеченням Total
Phase Flash Center.
- Установіть Flash Center на хості.
- Під’єднайте програматор до роз’єму SPI-флеш-пам’яті на платі. Цей роз’єм залежить від плати й зазвичай є дворядним.
- Запустіть Flash Center. Він також має інструменти командного рядка, якщо ви хочете автоматизувати цей крок.
- Додайте адаптер.
- Виберіть цільовий пристрій: оберіть SPI Flash, а потім мікросхему, встановлену на вашій платі, наприклад Winbond W25Q16 (2 МБ).
- Завантажте
troot_blob.be. - Запрограмуйте флеш-пам’ять.
Налаштування тестової станції
- Якщо тестованій платі потрібна плата-носій або інтерфейсна плата, під’єднайте її.
- Під’єднайте хост до UART tRoot і до UART U-Boot/Linux.
- Якщо плата має порти Ethernet, під’єднайте кожен із них до хоста.
- Якщо плата має входи для камер MIPI, під’єднайте тестові камери.
- Якщо плата є PCIe-картою, встановіть її в слот PCIe Gen5 хоста шириною щонайменше x8.
Завантаження тестового образу
Завантажте останню випущену тестову прошивку з SD-карти або з мережі, як описано в розділі Прошивання образу на eMMC. Краще використовувати SD-карту, оскільки тоді порти Ethernet залишаються вільними для навантажувального тесту мережі.
Запуск діагностики
Послідовність така: зафіксуйте температуру в режимі простою, запустіть навантажувальні тести, перевірте кінцеву температуру, а потім перевірте кожен інтерфейс вводу-виводу.
Запускайте всі тести в консолі U-Boot/Linux. Увімкніть живлення плати, дочекайтеся
запрошення Linux, увійдіть як sima з паролем edgeai, а потім перейдіть у режим root:
sima@modalix:~$ sudo su
Якщо плата має Ethernet, призначте хосту по одній адресі для кожного порту плати. Наприклад,
для інтерфейсу хоста eno1:
sima-user@sima-user-machine:~$ sudo ifconfig eno1:1 192.168.1.10 up
sima-user@sima-user-machine:~$ sudo ifconfig eno1:2 192.168.2.10 up
sima-user@sima-user-machine:~$ sudo ifconfig eno1:3 192.168.3.10 up
sima-user@sima-user-machine:~$ sudo ifconfig eno1:4 192.168.4.10 up
Для PCIe-карти від’єднайте від неї будь-яке зовнішнє живлення, перш ніж увімкнути хост. Карта живиться від слота.
1. Температура в режимі простою
Знайдіть пристрій hwmon з назвою simaai_modalix_thermal_sensor:
root@modalix:~# grep -l simaai_modalix_thermal_sensor /sys/class/hwmon/hwmon*/name
Зчитайте його temp1_input десять разів і усередніть показники. Значення наведено в
тисячних частках градуса Цельсія. Замініть X на знайдений номер:
root@modalix:~# for i in $(seq 10); do cat /sys/class/hwmon/hwmonX/temp1_input; done | awk '{s+=$1} END {print s/NR/1000 " C"}'
2. Ethernet
Запустіть сервер iperf3 на хості:
sima-user@sima-user-machine:~$ iperf3 -s
На платі запустіть клієнт для кожного порту Ethernet:
root@modalix:~# iperf3 -c 192.168.1.10 -t 60 --logfile /tmp/iperf1 # end0
root@modalix:~# iperf3 -c 192.168.2.10 -t 60 --logfile /tmp/iperf2 # end1
root@modalix:~# iperf3 -c 192.168.3.10 -t 60 --logfile /tmp/iperf3 # end2
root@modalix:~# iperf3 -c 192.168.4.10 -t 60 --logfile /tmp/iperf4 # end3
3. Пам’ять
root@modalix:~# stress-ng --class memory --all -1 --log-file /tmp/memorytest --log-brief --verify --abort -x atomic,heapsort,judy,mergesort,radixsort,tree,wcs,zlib -t 370s
4. Кеш CPU
root@modalix:~# stress-ng --class cpu-cache --seq 2 -t 8s --log-brief --log-file /tmp/cpucache
5. CPU
root@modalix:~# stress-ng --cpu 0 --verify -t 1m --log-brief --log-file /tmp/cpu0
--cpu 0 виконує тест на всіх CPU. Результат має показати 16 CPU.