Test Report vB0045
From ESS-WIKI
Project | Test Image Version | ||||||
RSB-3720 | Linux imx8mprsb3720a1 5.10.35-3720A1AIM40LIVB0045 | ||||||
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-3720A1AIM40LIVB0045+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 |