Test Report vB0049
From ESS-WIKI
Project | Test Image Version | |||||
RSB-3720 | Linux imx8mprsb3720a1 5.10.35-3720A1AIM40LIVB0049 | |||||
No | Module | Test Item | Test Steps | Remark | Result | Result Comment |
1 | CPU | CPU Cores | $ cat /proc/cpuinfo | A53 x 4 | PASS | |
CPU Max MHz | $ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq | 1800000 | PASS | |||
2 | DDR | Memory Size | $ cat /proc/meminfo | LPDDR4 6GB | PASS | MemTotal: 5748244 kB |
Memory Clocks | Check memory clock under boot loader | N/A | ||||
DDR parameter Version | Check info in bootloader | PASS | BL31: v2.4(release):lf-5.10.35-2.0.0-rc2-0-gec35fef92-dirty U-Boot 2021.04-3720A1AIM40LIVB0049+g84d81e0e56 | |||
3 | Stress Test | Stress Test | Refer to /tools/stress.sh | Need to verify w/o cooling | PASS | 12 hours pass |
4 | SD Card | Access | Mount and read/write/verify data under kernel | PASS | ||
Write Protect | Check WP function | N/A | Default Off | |||
5 | Additional SD Slot | Access | Mount and read/write/verify data under kernel | N/A | ||
Write Protect | Check WP function | N/A | ||||
6 | eMMC | eMMC 16GB | Write/Read/Verify data in the start/end 4 byte of flash | PASS | ||
7 | Debug UART | UART 4 | A53 control: $ stty -F /dev/ttymxc3 -echo -onlcr 115200 $ cat /dev/ttymxc3 & $ echo "Serial Port Test" > /dev/ttymxc3 M7_Debug: (1) emmc boot: U-Boot > fatload mmc 2:1 0x48000000 imx8mp_m7_TCM_hello_world.bin;cp.b 0x48000000 0x7e0000 20000; U-Boot > bootaux 0x7e0000 (2) sd card boot: U-Boot > fatload mmc 1:1 0x48000000 imx8mp_m7_TCM_hello_world.bin;cp.b 0x48000000 0x7e0000 20000; U-Boot > bootaux 0x7e0000 |
A53 control: /dev/ttymxc3 or M7_Debug 2 wire (EXTENSION I/O B - COM4) UIO4032 COM_4 |
PASS | |
UART 3 | A53_Debug 4 wire (COM1 Pin Header) |
PASS | ||||
8 | RS-232 | UART 1 | bcm43xx: $ hciattach /dev/ttymxc0 bcm43xx 115200 flow |
4 wire (M.2) /dev/ttymxc0 |
PASS | verify with AW-NB136NF |
UART 2 | $ stty -F /dev/ttymxc1 -echo -onlcr 115200 $ cat /dev/ttymxc1 & $ echo "Serial Port Test" > /dev/ttymxc1 |
2 wire (EXTENSION I/O B - COM2) UIO4032 COM_3 /dev/ttymxc1 |
PASS | |||
9 | RS-485/422 | UART 3 | 1. Test RS-485 with Adam-4520. Adam-4520 Pin Data- and Pin Data+ connect to RSB-3720 COM1 Pin 1: COM_DCD and Pin 3: COM_RXD 2. Test RS-422 with Adam-4520. Adam-4520 RX- <-->DB9 Pin 1, Adam-4520 RX+ <-->DB9 Pin 2, Adam-4520 TX- <-->DB9 Pin 4, Adam-4520 TX+ <--> DB9 Pin 3 $ stty -F /dev/ttymxc2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke $ cat /dev/ttymxc2 & $ echo "Serial Test" > /dev/ttymxc2 |
4 wire (COM1 Pin Header) Set GPIO#496, #497 Set to 0,1 for RS-485 Set to 1,1 for RS-422 Set to 0,0 for loopback Set to 1,0 for RS-232 Remember to set up RS-485 before test. RS-422 don't need to set up the following setting. $ ./enable485 /dev/ttymxc2 |
PASS | echo 496 > /sys/class/gpio/export echo 497 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio1/direction echo out > /sys/class/gpio/gpio2/direction echo 0 > /sys/class/gpio/gpio1/value echo 1 > /sys/class/gpio/gpio2/value |
N/A | N/A | |||||
N/A | N/A | |||||
N/A | N/A | |||||
10 | SPI Bus | QSPI 0A | Write/Read/Verify data in the start/end 4 byte of flash Note:Make sure the content of SPI nor flash is erased $ echo -n $'\x06\x05\x04\x03\x02\x01' > test $ dd if=test of=/dev/mtd0 $ hexdump -C /dev/mtd0 -n 64 |
SPI Rom | PASS | |
N/A | N/A | |||||
N/A | N/A | |||||
N/A | N/A | |||||
N/A | N/A | |||||
11 | GPIO | GPIO pins | Set direction (in/out) and value (0/1) | 10 pins [EXTENSION I/O A] pin#2: gpio 501 pin#4: gpio 503 [EXTENSION I/O B] pin#5: gpio 504 pin#6: gpio 505 pin#7: gpio 506 pin#8: gpio 507 pin#9: gpio 508 pin#10: gpio 509 pin#11: gpio 139 pin#12: gpio 138 |
PASS | echo 501 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio1/direction echo 1 > /sys/class/gpio/gpio1/value |
12 | PCIe | N/A | Device detect under kernel | M.2 | PASS | lspci (EWM-163) |
13 | M.2 | UART 1 | bcm43xx: $ hciattach /dev/ttymxc0 bcm43xx 115200 flow |
PASS | verify with AW-NB136NF | |
SDIO | dmesg | grep SDIO => mmc0: new ultra high speed SDR104 SDIO card at address 0001 |
PASS | verify with EWM-W169M201E | |||
PCIe 3.0 | lspci | PASS | Verify with EWM-W163 | |||
USB 2.0 | PASS | Verify with EWM-W163 | ||||
I2S | SAI2 | No test equipment | ||||
14 | 3G | Modules | stty -F /dev/ttyACM0 -echo cat /dev/ttyACM0 & echo AT+csq > /dev/ttyACM0 echo AT+cops? > /dev/ttyACM0 echo AT+cgdcont? > /dev/ttyACM0 pppd connect 'chat -v -s -t 10 "" "AT" "" "ATDT*99***4#" "CONNECT" ""' user username password password /dev/ttyACM2 460800 nodetach crtscts debug usepeerdns defaultroute & |
PASS | Verify with EWM-C117FL06E | |
15 | WiFi | Modules | $ ifconfig wlan0 up $ wpa_passphrase ASUS-917C qwert12345 > /tmp/wpa.conf && wpa_supplicant -BDwext -iwlan0 -c/tmp/wpa.conf $ udhcpc -b -i wlan0 |
PASS | Verify with EWM-W163M201E | |
16 | BT | Modules | $ hciconfig hci0 up $ bluetoothctl $ discoverable on $ pairable on $ scan on [NEW] FC:18:3C:8D:75:F4 myphone $ scan off $ pair FC:18:3C:8D:75:F4 $ connect FC:18:3C:8D:75:F4 |
PASS | Verify with EWM-W163M201E | |
17 | Ethernet | (Giga) Lan 1 | 1. Check IP & DHCP 2. Throughput $ iperf3 -c 192.168.0.2 -t 60 -i 10 |
PASS | AR8035 | |
(Giga) Lan 2 | PASS | AR8035 | ||||
18 | LED | N/A | LED Status: Detect gpio signal LED ON: echo 255 > /sys/class/leds/user/brightness LED OFF: echo 0 > /sys/class/leds/user/brightness |
PASS | ||
19 | USB | USB Port 1 | USB disk write/read/verify pattern | EXTENSION I/O A | PASS | |
USB Port 2 | EXTENSION I/O A | PASS | ||||
USB Port 3 | EXTENSION I/O A | PASS | ||||
USB Port 5 | USB 3.0 Type A | PASS | ||||
USB Port 6 | USB 2.0 Type A | PASS | ||||
USB Port 7 | M.2 | PASS | lsusb (EWM-163) | |||
USB Port 8 | MINI CARD | PASS | lsusb (EWM-C117FL06E) | |||
20 | USB OTG | USB OTG | 1. Host: USB disk write/read/verify pattern 2. Client: PC/NB can detect the device |
USB0 (USB_OTG1) | N/A | |
21 | HDMI | HDMI 1.4 | Display to HDMI screen | PASS | ||
22 | VGA | N/A | Display to VGA screen | N/A | ||
23 | LVDS | LVDS 0 | Display to 1st LVDS screen | uboot: setenv fdtfile imx8mp-rsb3720-a1-lvds0-auo.dtb; boot | PASS | |
LVDS 1 | Display to 2st LVDS screen | uboot: setenv fdtfile imx8mp-rsb3720-a1-lvds1-auo.dtb; boot | PASS | |||
Dual Channel(LVDS0+LVDS1) | Modify DTS for dual channel LVDS | uboot: setenv fdtfile imx8mp-rsb3720-a1-lvds-dual.dtb; boot | PASS | |||
24 | MIPI DSI | DSI 1 | MIPI DSI to HDMI Bridge | uboot: setenv fdtfile imx8mp-rsb3720-a1-adv7535.dtb; boot | PASS | |
MIPI DSI Panel | uboot: setenv fdtfile imx8mp-rsb3720-a1-auog101uan02.dtb; boot | PASS | ||||
N/A | N/A | |||||
25 | Multi-Display | HDMI+LVDS0 | All display interfaces should work at the same time | uboot: setenv fdtfile imx8mp-rsb3720-a1-lvds0-auo.dtb; boot | PASS | |
HDMI+LVDS1 | All display interfaces should work at the same time | uboot: setenv fdtfile imx8mp-rsb3720-a1-lvds1-auo.dtb; boot | PASS | |||
HDMI+Dual LVDS | All display interfaces should work at the same time | uboot: setenv fdtfile imx8mp-rsb3720-a1-lvds-dual.dtb; boot | PASS | |||
HDMI+DSI 1 to HDMI Bridge | All display interfaces should work at the same time | uboot: setenv fdtfile imx8mp-rsb3720-a1-adv7535.dtb; boot | PASS | |||
HDMI+DSI 1 Panel | All display interfaces should work at the same time | uboot: setenv fdtfile imx8mp-rsb3720-a1-auog101uan02.dtb; boot | PASS | |||
26 | I2C | I2C 0 | 1. Support function from I2C 2. Write/Read/Verify eeprom Hi/Low byte |
CODEC: 0x0A PMIC: 0x25 WDT MCU: 0x29 TPM: 0x2E RTC: 0x30-0x37 M.2: LVDS: 0x50-0x57 IO_EXP: 0x70-0x71 0x70- gpio 496: UART3_MODE0 gpio 497: UART3_MODE1 gpio 498: UART3_SLEW gpio 499: UART3_TERM gpio 501: GPIO2 gpio 503: GPIO4 0x71- gpio 504: GPIO5 gpio 505: GPIO6 gpio 506: GPIO7 gpio 507: GPIO8 gpio 508: GPIO9 gpio 509: GPIO10 gpio 510: GPIO11 gpio 511: GPIO12 |
PASS | |
I2C 1 | CSI1: 0x3c - ov5640 camera | PASS | ||||
I2C 2 | CSI2: 0x3c - ov5640 camera | PASS | ||||
I2C 3 | UIO Board: 0x50: EEPROM /sys/bus/i2c/devices/3-0050/eeprom $ echo -n $'\x06\x05\x04\x03\x02\x01' > test $ dd if=test of=/sys/bus/i2c/devices/3-0050/eeprom $ hexdump -C /sys/bus/i2c/devices/3-0050/eeprom -n 64 |
PASS | ||||
27 | I2C Switch | N/A | 1. Support function from I2C 2. Write/Read/Verify eeprom Hi/Low byte |
N/A | ||
N/A | N/A | |||||
N/A | N/A | |||||
N/A | N/A | |||||
28 | RTC | RTC external | $ date MMDDhhmm[[CC]YY][.ss] $ hwclock -w $ ntpdate tw.pool.ntp.org |
SEIKO S-35390A | PASS | |
RTC internal | imx_sc_rtc | N/A | ||||
29 | Audio | HDMI Audio | $ aplay -D plughw:0,0 Advantech.wav | PASS | ||
Line-Out/Speaker | $ aplay -D plughw:1,0 Advantech.wav | PASS | ||||
Mic-In | $ arecord -D plughw:1,0 -r 16000 -f S16_LE ./f-16000.wav | PASS | ||||
30 | SPDIF | N/A | Audio output | N/A | ||
31 | WATCHDOG | External Watchdog | 1. Watchdog Function Test Data (1) Timeout 10S: # /unit_tests/Watchdog/wdt_driver_test.out 10 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C ==> System will reboot after 10 sec. Watchdog does not refresh after it timeout. (2) Timeout 20S: # /unit_tests/Watchdog/wdt_driver_test.out 20 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C ==> System will reboot after 20 sec. Watchdog does not refresh after it timeout. (3) Timeout 50S: # /unit_tests/Watchdog/wdt_driver_test.out 50 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C? ==> System will reboot after 50 sec. Watchdog does not refresh after it timeout. (4) Timeout 100S: # /unit_tests/Watchdog/wdt_driver_test.out 100 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C ==> System will reboot after 100 sec. Watchdog does not refresh after it timeout. |
TI_MSP430G2202IRSA16R | PASS | |
2. Cold Reset and Second Stage 300s Test (1) switch boot strap to emmc boot up and boot up the system (2) enable watchdog triger: # /unit_tests/Watchdog/wdt_driver_test.out 2 1 0 & (3) switch boot strap to sd boot up fail (no sd card image) (4) force kernel panic: # echo c > /proc/sysrq-trigger (5) switch boot strap to emmc boot up (6) System will reboot after 300s. |
PASS | |||||
3. I2C bus stress for 8hour # /tools/wdt_test/wdt_i2c_stress_test 2 1 0 & # /tools/wdt_test/pmic_i2c_stress_test.sh & |
PASS | |||||
4. Reboot 1000Times Test # cp /tools/wdt_test/boottimes.sh /tools/ # rm /etc/boottimes # reboot If test pass => you can see the message in the log:Boot Times:1000 |
PASS | |||||
32 | Camera | MIPI CSI0 | Preview: $gst-launch-1.0 v4l2src device=/dev/video2 ! 'video/x-raw,width=640,height=480' ! autovideosink Snapshot: $gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=2 ! jpegenc ! multifilesink location=sample0.jpeg max-files=1 |
OV5640 Camera - 2 lane | PASS | |
Preview: $gst-launch-1.0 -v v4l2src device=/dev/video2 ! waylandsink Snapshot: gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=2 ! jpegenc ! multifilesink location=sample0.jpeg max-files=1 |
Basler Camera - 4 lane 4k - uboot: setenv fdtfile imx8mp-rsb3720-a1-basler.dtb; boot 1080p - uboot: setenv fdtfile imx8mp-rsb3720-a1-dual-basler.dtb; boot |
PASS | ||||
MIPI CSI1 | Preview: $gst-launch-1.0 v4l2src device=/dev/video3 ! 'video/x-raw,width=640,height=480' ! autovideosink Snapshot: $gst-launch-1.0 v4l2src device=/dev/video3 num-buffers=2 ! jpegenc ! multifilesink location=sample1.jpeg max-files=1 |
OV5640 Camera - 2 lane | PASS | |||
Preview: $gst-launch-1.0 -v v4l2src device=/dev/video3 ! waylandsink Snapshot: gst-launch-1.0 v4l2src device=/dev/video3 num-buffers=2 ! jpegenc ! multifilesink location=sample0.jpeg max-files=1 |
Basler Camera - 4 lane 1080p - uboot: setenv fdtfile imx8mp-rsb3720-a1-dual-basler.dtb; boot |
PASS | ||||
33 | Keypad | N/A | 1. Detect 16 buttons 2. Verify each button event |
N/A | ||
34 | Key & Button | N/A | Power on/off test | N/A | ||
N/A | $ evtest | N/A | ||||
N/A | $ evtest | N/A | ||||
N/A | Detect gpio signal | key_event | N/A | |||
N/A | Detect gpio signal | N/A | ||||
Reset Button | Reset system | PASS | ||||
N/A | Close backlight | N/A | ||||
35 | Multi-Boot Selection | Boot Select Switch | EMMC or Carrier SD or Carrier SPI | 1. QSPI Boot(boot switch: 1-off, 2-on, 3-on, 4-off): Need the imx-boot-imx8mprsb3720a1-fspi.bin-flash_evk_flexspi file 2. command: dd if=imx-boot-imx8mprsb3720a1-FSPI_6G.bin-flash_evk_flexspi of=/dev/mtdblock0 bs=1K seek=0 conv=fsync |
PASS | |
36 | Recovery & Rescue | Downalod via USB OTG | $ uuu -b emmc_all bootloader rootfs.sdcard | N/A | ||
37 | MCU | N/A | MCU integration | N/A | ||
38 | PMIC | Vendor Solution | Power sequence or GPIO or other configurations | N/A | ||
39 | Battery & Charging | Battery EC | $ cat /sys/class/power_supply/bms/uevent | N/A | ||
40 | CAN Bus | CAN 1 | $ ip link set can0 up type can bitrate 125000 $ ifconfig can0 up $ ip link set can1 up type can bitrate 125000 $ ifconfig can1 up $ candump can0 & $ cansend can1 1F334455#1122334455667788 |
UIO-4034 CAN Pin 2 and Pin 7 connect to RSB-3720 COM1 Pin 8 and Pin 2 | PASS | |
CAN 2 | PASS | |||||
41 | SATA | N/A | Mount and read/write/verify data under kernel | N/A | ||
42 | System Bus | N/A | Test two uart ports | N/A | ||
43 | IR Controller | N/A | Verify each button event | N/A | ||
44 | GPS | N/A | Set correct date/time before test sudo apt-get install gpsd-clients gnss-gpsd $ systemctl start gpsd.socket $ systemctl start gpsd $ systemctl start qdsp-start $ systemctl start gnss-gpsd $ gpsmon If you have DNS problem, you can try commands below. echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null sudo apt-get updat |
To stop GPS hardware, follow the instructions: 1. close gpsmon 2. systemctl stop gnss-gpsd To restart GPS hardware, follow the instructions: 1. systemctl start gnss-gpsd 2. close gpsmon |
N/A | |
45 | Warm Reboot | Warm Reboot | Software reboot | PASS | ||
46 | Security Boot | NXP HAB | Depends on platforms | N/A | ||
47 | TPM | Trust Platform Module | tpm_test.bin | PASS |
Project | Test Image Version | |||||
ROM-5722 | inux imx8mprom5722a1 5.10.35-5722A1AIM40LIVB0049 | |||||
No | Module | Test Item | Test Steps | Remark | Result | Result Comment |
1 | CPU | CPU Cores | $ cat /proc/cpuinfo | A35 x 4 | PASS | |
CPU Max MHz | $ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq | 1800000 | PASS | |||
2 | DDR | Memory Size | $ cat /proc/meminfo | LPDDR4 6GB | PASS | MemTotal: 5748236 kB |
Memory Clocks | Check memory clock under boot loader | N/A | ||||
DDR parameter Version | Check info in bootloader | PASS | ATF: lf-5.10.35-2.0.0-rc2-0 U-Boot: 2021.04-5722A1AIM40LIVB0049 | |||
3 | Stress Test | Stress Test | Refer to /tools/stress.sh | Need to verify w/o cooling | PASS | 12 hr pass |
4 | SD Card | Access | Mount and read/write/verify data under kernel | SOM-DB2510 J15~J21 (1 and 2: M.2, 2 and 3: SD) | PASS | |
Write Protect | Check WP function | PASS | Test with ROM-DB5901 | |||
5 | Additional SD Slot | Access | Mount and read/write/verify data under kernel | N/A | ||
Write Protect | Check WP function | N/A | ||||
6 | eMMC | eMMC 16GB | Write/Read/Verify data in the start/end 4 byte of flash | PASS | ||
7 | Debug UART | Debug UART Select | Disable/Enable debug message Change the ROM-5722 SW1 switch |
PASS | Disable debug message: reserve the debug uart message of uboot | |
UART 2 | System output and input | 2 wire (COM2) | PASS | |||
UART 4 | M7_Debug: (1) emmc boot: U-Boot > fatload mmc 2:1 0x48000000 imx8mp_m7_TCM_hello_world.bin;cp.b 0x48000000 0x7e0000 20000; U-Boot > bootaux 0x7e0000 (2) sd card boot: U-Boot > fatload mmc 1:1 0x48000000 imx8mp_m7_TCM_hello_world.bin;cp.b 0x48000000 0x7e0000 20000; U-Boot > bootaux 0x7e0000 |
2 wire (COM4) | PASS | |||
8 | RS-232 | UART 1 | UART 1: Change the SOM-DB2510 SW1 jumper to switch modes. (10: 232) UART 2: Change the ROM-5722 SW1 switch to 1-on UART 3: Change the SOM-DB2510 SW2 jumper to switch modes. (10: 232) $ stty -F /dev/ttymxc0 -echo -onlcr 115200 $ cat /dev/ttymxc0 & $ echo "Serial Port Test" > /dev/ttymxc0 |
4 wire (COM1) /dev/ttymxc0 | PASS | |
UART 2 | 2 wire (COM2) /dev/ttymxc1 | PASS | ||||
UART 3 | 4 wire (COM3 / M.2) /dev/ttymxc2 | PASS | ||||
UART 4 | 2 wire (COM4) /dev/ttymxc3 | PASS | ||||
9 | RS-485/422 | UART 1 | Change the SOM-DB2510 SW1 and SW2 jumper to switch modes. (01: 485, 11: 422) 1. Test RS-485 with Adam-4520. Adam-4520 Pin Data- and Pin Data+ connect to DB9 Pin1 and Pin 2 2. Test RS-422 with Adam-4520. Adam-4520 RX- <-->DB9 Pin 1, Adam-4520 RX+ <-->DB9 Pin 2, Adam-4520 TX- <-->DB9 Pin 4, Adam-4520 TX+ <--> DB9 Pin 3 Remember to set up RS-485 before test. $ stty -F /dev/ttymxc0 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke $ ./enable485 /dev/ttymxc0 $ stty -F /dev/ttymxc0 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke $ cat /dev/ttymxc0 & $ echo "Serial Test" > /dev/ttymxc0 |
4 wire (COM1) /dev/ttymxc0 | PASS | |
UART 3 | 4 wire (COM3 / M.2) /dev/ttymxc2 | PASS | ||||
N/A | N/A | |||||
N/A | N/A | |||||
10 | SPI Bus | QSPI 0A | 1. SPI 0: SOM-DB2510 J24: SPI_BIOS1 chip selection (1 and 2: CS0, 2 and 3: CS1) SOM-DB2510 J49: SPI_BIOS2 chip selection (1 and 2: CS0, 2 and 3: CS1) SOM-DB2510 J46, J47, J48: SPI_BIOS selection (1 and 2: SPI_BIOS1, 2 and 3: SPI_BIOS2) 2. SPI 1: SOM-DB2510 CN10 Write/Read/Verify data in the start/end 4 byte of flash Note:Make sure the content of SPI nor flash is erased $ echo -n $'\x06\x05\x04\x03\x02\x01' > test $ dd if=test of=/dev/mtd0 $ hexdump -C /dev/mtd0 -n 64 |
PASS | ||
SPI 0 | SPI0_CS0 && SPI0_CS1 | PASS | ||||
SPI 1 | SPI1_CS0 && SPI1_CS1 | PASS | ||||
N/A | N/A | |||||
N/A | N/A | |||||
11 | GPIO | GPIO pins | Set direction (in/out) and value (0/1) | SOM-DB2510 CN9 14 pins, GPIO_0~GPIO_6, GPIO_10 jumper to 1 and 2 pin#0: gpio 114, pin#1: gpio 115 pin#2: gpio 124, pin#3: gpio 125 pin#4: gpio 123, pin#5: gpio 133 pin#6: gpio 154, pin#7: gpio 155 pin#8: gpio 506, pin#9: gpio 507 pin#10: gpio 508, pin#11: gpio 509 pin#12: gpio 510, pin#13: gpio 511 |
PASS | echo 114 > /sys/class/gpio/export echo 115 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio1/direction echo out > /sys/class/gpio/gpio2/direction echo 0 > /sys/class/gpio/gpio1/value echo 1 > /sys/class/gpio/gpio2/value |
12 | PCIe | PCIe Mini Half Solt | Device detect under kernel | lspci | PASS | Verify with EWM-W189H02E |
N/A | N/A | |||||
13 | M.2 | UART 3 | uboot: => setenv fdtfile imx8mp-rom5722-a1-m2-sdio.dtb; boot SOM-DB2510: /opt/rtl8723bs_bt# ./start_bt.sh ttymxc0 |
PASS | verify with EWM-W167M201E | |
SDIO | uboot: => setenv fdtfile imx8mp-rom5722-a1-m2-sdio.dtb; boot |
SOM-DB2510: Need to switch J15~J21 to 1,2 | PASS | verify with EWM-W167M201E | ||
PCIe 3.0 | lspci | PASS | verify with EWM-W163M201E, Test with ROM-DB5901 | |||
USB 2.0 | hciconfig | USB1 (USB_OTG2 + SMSC_USB2512) | PASS | verify with EWM-W163M201E | ||
I2S | Test the SOM-DB2510 CN5 | PASS | ||||
14 | 3G | Modules | stty -F /dev/ttyACM0 -echo cat /dev/ttyACM0 & echo AT+csq > /dev/ttyACM0 echo AT+cops? > /dev/ttyACM0 echo AT+cgdcont? > /dev/ttyACM0 pppd connect 'chat -v -s -t 10 "" "AT" "" "ATDT*99***4#" "CONNECT" ""' user username password password /dev/ttyACM2 460800 nodetach crtscts debug usepeerdns defaultroute & |
PASS | Verify with EWM-C117FL06E | |
15 | WiFi | Modules | $ ifconfig wlan0 up $ wpa_passphrase ${SSID} ${WPA_KEY} > /tmp/wpa.conf $ wpa_supplicant -BDwext -iwlan0 -c/tmp/wpa.conf $ udhcpc -b -i wlan0 |
PASS | Verify with EWM-167, EWM-W189H02E | |
16 | BT | Modules | $ hciconfig hci0 up $ bluetoothctl $ discoverable on $ pairable on $ scan on [NEW] FC:18:3C:8D:75:F4 myphone $ scan off $ pair FC:18:3C:8D:75:F4 $ connect FC:18:3C:8D:75:F4 |
PASS | Verify with EWM-163, EWM-167, EWM-W189H02E | |
17 | Ethernet | (Giga) Lan 1 | 1. Check IP & DHCP 2. Throughput $ iperf3 -c 192.168.0.2 -t 60 -i 10 |
AR8035 | PASS | |
(Giga) Lan 2 | AR8035 | PASS | ||||
18 | LED | N/A | LED Status: Detect gpio signal | N/A | ||
19 | USB | USB Port 1 | USB disk write/read/verify pattern | USB 2.0 | PASS | |
USB Port 2 | USB 2.0 + USB 3.0 | PASS | ||||
USB Port 3 | TypeC | PASS | ||||
N/A | N/A | |||||
N/A | N/A | |||||
N/A | N/A | |||||
N/A | N/A | |||||
20 | USB OTG | USB OTG | 1. Host: USB disk write/read/verify pattern 2. Client: PC/NB can detect the device |
USB0 (USB_OTG1) | PASS | |
21 | HDMI | N/A | Display to HDMI screen | PASS | ||
22 | VGA | N/A | Display to VGA screen | N/A | ||
23 | LVDS | LVDS 0 | Display to 1st LVDS screen | uboot: setenv fdtfile imx8mp-rom5722-a1-lvds0-auo.dtb; boot | PASS | Verify with G070VW01 |
LVDS 1 | Display to 2st LVDS screen | uboot: setenv fdtfile imx8mp-rom5722-a1-lvds1-auo.dtb; boot | PASS | Verify with G070VW01 | ||
Dual Channel(LVDS0+LVDS1) | Modify DTS for dual channel LVDS | uboot: setenv fdtfile imx8mp-rom5722-a1-lvds-dual.dtb; boot | PASS | Verify with G215HVN01.0 | ||
24 | MIPI DSI | N/A | N/A | |||
DSI 1 | MIPI DSI to HDMI Bridge | uboot: setenv fdtfile imx8mp-rom5722-a1-adv7535.dtb; boot | PASS | Verify with MIPI to HDMI bridge: adv7535 | ||
MIPI DSI Panel | uboot: setenv fdtfile imx8mp-rom5722-a1-auog101uan02.dtb; boot | PASS | Verify with MIPI DSI Panel: auog101uan02 | |||
25 | Multi-Display | 2 displays | All display interfaces should work at the same time | PASS | ||
26 | I2C | I2C 0 | 1. Support function from I2C 2. Write/Read/Verify eeprom Hi/Low byte |
0x25: PMIC 0x29: WDT 0x30: RTC 0x2E: TPM 0x70: I/O Expander - gpio 498: CHARGER# - gpio 499: CHARGER_PRSNT# - gpio 500: BATLOW# - gpio 501: TEST# - gpio 502: LID# - gpio 503: SLEEP# 0x71: I/O Expander - gpio 504: TPM_PRESENSE_1V8 - gpio 505: TPM_IRQ#_1V8 - gpio 506: GPIO8 - gpio 507: GPIO9 - gpio 508: GPIO10 - gpio 509: GPIO11 - gpio 510: GPIO12 - gpio 511: GPIO13 |
PASS | |
I2C 1 | 0x3C: Camera | PASS | ||||
I2C 2 | 0x3C: Camera | PASS | ||||
I2C 3 | I2C_LCD | PASS | ||||
I2C 4 | 0x57: EEPROM /sys/bus/i2c/devices/4-0057/eeprom 0x70: I/O Expander - gpio 488: W_DISABLE1# - gpio 489: W_DISABLE2# - gpio 490: BT_WAKE# - gpio 491: M2_SDIO_WAKE# - gpio 492: M2_SDIO_RST# - gpio 495: CCG5_I2C_INT |
PASS | ||||
I2C 5 | 0x08: USB CYPRESS_CYPD5126 0x0B: Battery |
PASS | ||||
27 | I2C Switch | N/A | 1. Support function from I2C 2. Write/Read/Verify eeprom Hi/Low byte |
N/A | ||
N/A | N/A | |||||
N/A | N/A | |||||
N/A | N/A | |||||
28 | RTC | RTC external | $ date MMDDhhmm[[CC]YY][.ss] $ hwclock -w $ ntpdate tw.pool.ntp.org |
EPSON_RX-8900CE-UB | PASS | |
RTC internal | imx_sc_rtc | PASS | ||||
29 | Audio | HDMI Audio | $ aplay -D plughw:0,0 Advantech.wav $ aplay -D plughw:1,0 Advantech.wav |
PASS | ||
Line-Out/Speaker | CN5 need to change the dts, default is CN17 CN5 & CN17 J26: no jumper SW3: 1-off, 2-on CN17: 1. LOUT1+MIC1: J50~J53 jumper to 1 and 3 2. LINEOUT_1+MIC_1: J50~J53 jumper to 3 and 5 CN5: 1. LOUT1+MIC1: J50~J53 jumper to 4 and 6 2. LINEOUT_1+MIC_1: J50~J53 jumper to 2 and 4 |
PASS | ||||
Mic-In | $ arecord -D plughw:1,0 -r 16000 -f S16_LE ./f-16000.wav | CN5 need to change the dts, default is CN17 CN5 & CN17 J26: no jumper SW3: 1-off, 2-on CN17: 1. LOUT1+MIC1: J50~J53 jumper to 1 and 3 2. LINEOUT_1+MIC_1: J50~J53 jumper to 3 and 5 CN5: 1. LOUT1+MIC1: J50~J53 jumper to 4 and 6 2. LINEOUT_1+MIC_1: J50~J53 jumper to 2 and 4 |
PASS | |||
30 | SPDIF | N/A | Audio output | N/A | ||
31 | WATCHDOG | External Watchdog | 1. Watchdog Function Test Data (1) Timeout 10S: # /unit_tests/Watchdog/wdt_driver_test.out 10 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C ==> System will reboot after 10 sec. Watchdog does not refresh after it timeout. (2) Timeout 20S: # /unit_tests/Watchdog/wdt_driver_test.out 20 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C ==> System will reboot after 20 sec. Watchdog does not refresh after it timeout. (3) Timeout 50S: # /unit_tests/Watchdog/wdt_driver_test.out 50 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C? ==> System will reboot after 50 sec. Watchdog does not refresh after it timeout. (4) Timeout 100S: # /unit_tests/Watchdog/wdt_driver_test.out 100 1 0 ==> System will not reboot. Watchdog can be refreshed when feed dog before it timeout. # Ctrl + C ==> System will reboot after 100 sec. Watchdog does not refresh after it timeout. |
TI_MSP430G2202IRSA16R | PASS | |
2. Cold Reset and Second Stage 300s Test (1) switch boot strap to emmc boot up and boot up the system (2) enable watchdog triger: # /unit_tests/Watchdog/wdt_driver_test.out 2 1 0 & (3) switch boot strap to sd boot up fail (no sd card image) (4) force kernel panic: # echo c > /proc/sysrq-trigger (5) switch boot strap to emmc boot up (6) System will reboot after 300s. |
PASS | |||||
3. I2C bus stress for 8hour # /tools/wdt_test/wdt_i2c_stress_test 2 1 0 & # /tools/wdt_test/pmic_i2c_stress_test.sh & |
PASS | |||||
4. Reboot 1000Times Test # cp /tools/wdt_test/boottimes.sh /tools/ # rm /etc/boottimes # reboot If test pass => you can see the message in the log:Boot Times:1000 |
PASS | |||||
32 | Camera | MIPI CSI0 | Preview: $gst-launch-1.0 v4l2src device=/dev/video3 ! 'video/x-raw,width=640,height=480' ! autovideosink Snapshot: $gst-launch-1.0 v4l2src device=/dev/video3 num-buffers=3 ! jpegenc ! multifilesink location=sample0.jpeg max-files=1 |
OV5640 Camera - 2 lane | PASS | |
MIPI CSI1 | Preview: $gst-launch-1.0 v4l2src device=/dev/video2 ! 'video/x-raw,width=640,height=480' ! autovideosink Snapshot: $gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=3 ! jpegenc ! multifilesink location=sample1.jpeg max-files=1 |
OV5640 Camera - 2 lane | PASS | |||
Preview: $gst-launch-1.0 -v v4l2src device=/dev/video2 ! waylandsink Snapshot: gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=6 ! jpegenc ! multifilesink location=sample0.jpeg max-files=1 |
Basler Camera - 4 lane uboot: setenv fdtfile imx8mp-rom5722-a1-basler.dtb; boot |
PASS | ||||
33 | Keypad | N/A | 1. Detect 16 buttons 2. Verify each button event |
N/A | ||
34 | Key & Button | Power Button | Power on/off test | PASS | ||
N/A | $ evtest | N/A | ||||
N/A | $ evtest | N/A | ||||
Sleep Button | Detect gpio signal | key_event | PASS | |||
N/A | Detect gpio signal | N/A | ||||
Reset Button | Reset system | PASS | ||||
LID Button | PASS | |||||
35 | Multi-Boot Selection | Boot Select Switch | EMMC or Carrier SD or Carrier SPI | QSPI boot: dd if=imx-boot-imx8mprom5722a1-FSPI_6G.bin-flash_evk_flexspi of=/dev/mtdblock0 bs=1K seek=0 conv=fsync | PASS | SD: OK EMMC: OK QSPI: OK |
36 | Recovery & Rescue | Downalod via USB OTG | $ uuu -b emmc_all bootloader rootfs.sdcard | PASS | ||
37 | MCU | N/A | MCU integration | N/A | ||
38 | PMIC | Vendor Solution | Power sequence or GPIO or other configurations | N/A | ||
39 | Battery & Charging | Battery EC | $ cat /sys/class/power_supply/bms/uevent | PASS | ||
40 | CAN Bus | CAN 1 | $ ip link set can0 up type can bitrate 125000 $ ifconfig can0 up $ ip link set can1 up type can bitrate 125000 $ ifconfig can1 up $ candump can0 & $ cansend can1 1F334455#1122334455667788 |
PASS | ||
CAN 2 | PASS | |||||
41 | SATA | N/A | Mount and read/write/verify data under kernel | N/A | ||
42 | System Bus | N/A | Test two uart ports | N/A | ||
43 | IR Controller | N/A | Verify each button event | N/A | ||
44 | GPS | N/A | Set correct date/time before test sudo apt-get install gpsd-clients gnss-gpsd $ systemctl start gpsd.socket $ systemctl start gpsd $ systemctl start qdsp-start $ systemctl start gnss-gpsd $ gpsmon If you have DNS problem, you can try commands below. echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null sudo apt-get updat |
To stop GPS hardware, follow the instructions: 1. close gpsmon 2. systemctl stop gnss-gpsd To restart GPS hardware, follow the instructions: 1. systemctl start gnss-gpsd 2. close gpsmon |
N/A | |
45 | Warm Reboot | Warm Reboot | Software reboot | PASS | ||
46 | Security Boot | NXP HAB | Depends on platforms | N/A | ||
47 | TPM | Trust Platform Module | tpm_test.bin | PASS |