Difference between revisions of "iMX6 Rex Ultra Accessing and Testing Peripherals"
(Created page with "Category:iMX6 Rex Development kit Category:iMX6 Rex Ultra Category:iMX6 Rex Peripherals <!-- --> <div style="float:right">__TOC__</div> Elemental operations of iM...") |
|||
Line 491: | Line 491: | ||
'''''Output:''''' HDD is detected | '''''Output:''''' HDD is detected | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | root@imx6- | + | root@imx6-rexultra:~# dmesg | grep -i -e sata -e ata1 |
ahci-imx 2200000.sata: fsl,transmit-level-mV not specified, using 00000024 | ahci-imx 2200000.sata: fsl,transmit-level-mV not specified, using 00000024 | ||
ahci-imx 2200000.sata: fsl,transmit-boost-mdB not specified, using 00000480 | ahci-imx 2200000.sata: fsl,transmit-boost-mdB not specified, using 00000480 | ||
Line 499: | Line 499: | ||
ahci-imx 2200000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode | ahci-imx 2200000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode | ||
ahci-imx 2200000.sata: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst | ahci-imx 2200000.sata: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst | ||
− | ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq | + | ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq 306 |
− | ata1: SATA link | + | ata1: SATA link down (SStatus 0 SControl 300) |
− | + | ahci-imx 2200000.sata: no device found, disabling link. | |
− | + | ahci-imx 2200000.sata: pass ahci_imx..hotplug=1 to enable hotplug | |
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | '''''Input:''''' | + | SATA device can be used as a default bootlader and filesystem source. [[iMX6 TinyRex SATA|SATA Interface page]] contains detailed steps to follow. |
− | '''''Output:''''' | + | |
+ | == SD card == | ||
+ | |||
+ | === Top slot SD card (mmcblk1) === | ||
+ | '''''Input:''''' Plug and unplug SD card<br /> | ||
+ | '''''Output:''''' Kernel log shows that mmc1 device is added and removed | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | root@imx6- | + | root@imx6-rexpro:~# dmesg | tail |
− | |||
− | |||
− | |||
− | |||
− | |||
... | ... | ||
+ | mmc1: new high speed SDHC card at address e624 | ||
+ | mmcblk1: mmc1:e624 SU08G 7.40 GiB | ||
+ | mmcblk1: p1 p2 | ||
+ | FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. | ||
+ | EXT4-fs (mmcblk1p2): recovery complete | ||
+ | EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null) | ||
+ | mmc1: card e624 removed | ||
+ | </syntaxhighlight> | ||
− | + | === Bottom slot SD card (mmcblk2) === | |
− | + | '''''Input:''''' Plug SD card with a filesystem and boot-up the module<br /> | |
− | + | '''''Output:''''' Module boots up successfully | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | '''''Input:''''' SD card | ||
− | '''''Output:''''' | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | root@imx6- | + | root@imx6-rexpro:~# dmesg | grep -i "Kernel command line" |
− | + | Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk2p2 rootwait rw | |
− | |||
− | |||
− | root | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== SPI Flash Memory == | == SPI Flash Memory == | ||
'''''Input:''''' Trigger M25P80 flash detection<br /> | '''''Input:''''' Trigger M25P80 flash detection<br /> | ||
− | '''''Output:''''' SPI Flash sst25vf032b is detected | + | '''''Output:''''' SPI Flash sst25vf016b(sst25vf032b) is detected |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | root@imx6- | + | root@imx6-rexpro:~# echo -n "spi2.0" > /sys/bus/spi/drivers/m25p80/unbind |
− | root@imx6- | + | root@imx6-rexpro:~# echo -n "spi2.0" > /sys/bus/spi/drivers/m25p80/bind |
− | m25p80 | + | m25p80 spi2.0: found sst25vf032b, expected m25p32 |
− | m25p80 | + | m25p80 spi2.0: sst25vf032b (4096 Kbytes) |
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 09:03, 18 March 2021
Elemental operations of iMX6 Rex Development kit interfaces in Ultra configuration are shown on this page.
Prerequisites
Hardware
- DC power supply (5V, 2A)
- iMX6 Rex Module Ultra
- iMX6 Rex Baseboard
Peripherals and Accessories
- 1x FullHD monitor with Audio output
- 1x LVDS touchscreen display
- 2x MicroSD card
- 1x MiniPCIe WiFi card
- 1x MiniPCIe 3G card
- 1x SATA HDD drive
- 2x USB FLASH drive
- 1x headphones
- 1x microphone
Cables
- Ethernet cable
- HDMI cable
- Micro USB cable
- RS-232 cable
Audio
Input: Search kernel log for SGTL5000 chip
Output: Audio chip is detected and bound as an input device
root@imx6-rexpro:~# dmesg | grep -i sgtl5000 sgtl5000 0-000a: sgtl5000 revision 0x11 sgtl5000 0-000a: Using internal LDO instead of VDDD imx-sgtl5000 sound.23: sgtl5000 <-> 2028000.ssi mapping ok #0: imx-audio-sgtl5000
Input: Run alsamixer command
Output: Card imx-audio-sgtl5000 is available
root@imx6-rexpro:~# alsamixer lqqqqqqqqqqqqqqqqqqqqqqqqqqqqq AlsaMixer v1.0.28 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x Card: imx-audio-sgtl5000 F1: Help x x Chip: F2: System information x x View: F3:[Playback] F4: Capture F5: All F6: Select sound card x x Item: Headphone [dB gain: -20.00, -20.00] Esc: Exit x x x x lqqk lqqk lqqk x x x x x x x x x x x x x x x x x x x x x x x x x x x x xaax x x x x x x xaax x x x x x x xaax x x x x x x xaax x x x x x x xaax x x x x x x xaax x x x x xaax xaax x x x x xaax xaax x x x x mqqj DAC lqqk mqqj mqqj lqqk MIC_IN lqqk x x xOOx xMMx xOOx x x mqqj mqqj mqqj x x 23<>23 75<>75 0 x x <Headphon>Headphon Headphon PCM Mic Capture Capture Capture x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
Input: Boot-up module with HDMI cable plugged in, connect headphones into LINE_OUT connector and plug-in USB flash drive with mp3 file
Output: Sound is played and heard
root@imx6-rexultra:~# aplay -D sysdefault:CARD=sgtl5000audio multimedia/sample.wav #root@imx6-rexultra:~# aplay -D sysdefault:CARD=imxaudiosgtl500 multimedia/sample.wav Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
root@imx6-rexultra:~# aplay -D sysdefault:CARD=imxhdmisoc multimedia/sample.wav Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Input: Plug headphones into HEADPHONES connector and mic into MICROPHONE connector
Output: Microphone sound is played in headphones
root@imx6-rexultra:~# arecord -D sysdefault:CARD=sgtl5000audio -t wav -f cd | aplay -D sysdefault:CARD=imxaudiosgtl500 #root@imx6-rexultra:~# arecord -D sysdefault:CARD=imxaudiosgtl500 -t wav -f cd | aplay -D sysdefault:CARD=imxaudiosgtl500
Input: Plug headphones into HEADPHONES connector and mic into MICROPHONE connector
Output: Sound is recorded and played afterwards
root@imx6-rexultra:~# arecord -D sysdefault:CARD=sgtl5000audio -t wav -f cd -d 10 multimedia/recorded.wav #root@imx6-rexultra:~# arecord -D sysdefault:CARD=imxaudiosgtl500 -t wav -f cd -d 10 multimedia/recorded.wav Recording WAVE 'multimedia/recorded.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo root@imx6-rexultra:~# aplay -D sysdefault:CARD=sgtl5000audio multimedia/recorded.wav #root@imx6-rexultra:~# aplay -D sysdefault:CARD=imxaudiosgtl500 multimedia/recorded.wav Playing WAVE 'multimedia/recorded.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
User button
Input: Press and hold USER button (pca9535 driver is used)
Output: GPIO register is read and displayed state of the button
root@imx6-rexpro:~# echo 511 > /sys/class/gpio/export root@imx6-rexpro:~# echo in > /sys/class/gpio/gpio511/direction root@imx6-rexpro:~# cat /sys/class/gpio/gpio511/value 1 root@imx6-rexpro:~# cat /sys/class/gpio/gpio511/value 0
Alternative test
Input: Press the USER button
Output: Button events 1 and 0 are generated
root@imx6-tinyrexultra:~# hexdump -C /dev/input/event0 00000000 18 f4 d1 56 47 40 09 00 01 00 74 00 01 00 00 00 |...VG@....t.....| 00000010 18 f4 d1 56 47 40 09 00 00 00 00 00 00 00 00 00 |...VG@..........| 00000020 18 f4 d1 56 17 15 0b 00 01 00 74 00 00 00 00 00 |...V......t.....| 00000030 18 f4 d1 56 17 15 0b 00 00 00 00 00 00 00 00 00 |...V............|
Reset button
Input: Press the RESET button
Output: Module will execute bootloader immediately with "Reset cause: POR"
Note: Module should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result
U-Boot 2014.10-dirty (Mar 12 2016 - 11:34:54) CPU: Freescale i.MX6Q rev1.2 at 792 MHz Reset cause: POR Board: MX6 Rex - pro I2C: ready DRAM: 2 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 SF: Detected SST25VF032B with page size 256 Bytes, erase size 4 KiB, total 4 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: FEC [PRIME] Hit any key to stop autoboot: 0
Ethernet
Input: None
Output: Device driver is available
Note: MAC address should be identical with the address on the sticker placed on module
root@imx6-rexpro:~# ip addr show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0d:15:00:cc:e2 brd ff:ff:ff:ff:ff:ff inet6 fe80::20d:15ff:fe00:cce2/64 scope link
Input: Plug Ethernet cable into connector and issue DHCP command
Output: IPv4 address is assigned
root@imx6-rexpro:~# dmesg | tail ... libphy: 2188000.ethernet:03 - Link is Up - 100/Full IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
root@imx6-rexpro:~# udhcpc -i eth0 udhcpc (v1.22.1) started Sending discover... Sending select for 192.168.0.178... Lease of 192.168.0.178 obtained, lease time 600
HDMI Output
Input: Connect LCD monitor to baseboard
Output: Desktop UI is correctly displayed
600px
I2C
Input: Scan I2C bus 0
Output: Available devices:
- SGTL5000 audio (0x0A)
root@imx6-rexpro:~# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- UU -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Input: Scan I2C bus 1
Output: Available devices:
- GPIO expander (0x27)
- touchscreen TSC2007 (0x48)
- HDMI Output EDID (0x50)
- RTC clock (0x51)
- EEPROM (0x57)
Note: HDMI monitor must be disconnected otherwise I2C bus 1 scanning bus might freeze.
root@imx6-rexpro:~# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 50: UU UU -- -- -- -- -- UU -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Input: Scan I2C bus 2
Output: I2C bus 2 is allocated for external use via System Header
root@imx6-rexpro:~# i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Input: Trigger I2C GPIO expander detection.
Output: GPIO expander is detected
root@imx6-rexpro:~# echo -n "1-0027" > /sys/bus/i2c/drivers/pca953x/unbind root@imx6-rexpro:~# echo -n "1-0027" > /sys/bus/i2c/drivers/pca953x/bind pca953x 1-0027: interrupt support not compiled in
Input: Trigger I2C RTC detection
Output: RTC is detected
root@imx6-rexpro:~# echo -n "1-0051" > /sys/bus/i2c/drivers/rtc-pcf8563/unbind root@imx6-rexpro:~# echo -n "1-0051" > /sys/bus/i2c/drivers/rtc-pcf8563/bind rtc-pcf8563 1-0051: chip found, driver version 0.4.3 rtc-pcf8563 1-0051: low voltage detected, date/time is not reliable. rtc-pcf8563 1-0051: low voltage detected, date/time is not reliable. rtc rtc1: invalid alarm value: 2030-10-20 41:58:0 rtc-pcf8563 1-0051: rtc core: registered rtc-pcf8563 as rtc1
Input: Trigger I2C EEPROM detection
Output: I2C EEPROM is detected
root@imx6-rexpro:~# echo -n "1-0057" > /sys/bus/i2c/drivers/at24/unbind root@imx6-rexpro:~# echo -n "1-0057" > /sys/bus/i2c/drivers/at24/bind at24 1-0057: 256 byte 24c02 EEPROM, writable, 1 bytes/write
Input: Write and Read data from I2C EEPROM
Output: If successful, console text 'Data are the same' should appear
root@imx6-rexpro:~# echo -n "0123" > eeprom_in root@imx6-rexpro:~# cat eeprom_in > /sys/bus/i2c/devices/1-0057/eeprom root@imx6-rexpro:~# head -c 4 /sys/bus/i2c/devices/1-0057/eeprom > eeprom_out root@imx6-rexpro:~# diff eeprom_in eeprom_out && echo "Data are the same" Data are the same
Altarnative test
Input: List I2C bus 0, 1 and 2
Output: Available devices are displayed
root@imx6-rexpro:~# ls /sys/bus/i2c/devices/i2c-0 | grep ^[0] 0-000a root@imx6-rexpro:~# ls /sys/bus/i2c/devices/i2c-1 | grep ^[1] 1-0048 1-0050 root@imx6-rexpro:~# ls /sys/bus/i2c/devices/i2c-2 | grep ^[2]
User LED
Input: None
Output: Red LED assembled on module switches from ON to OFF state with heartbeat pulses afterwards
root@imx6-tinyrexultra:~# echo -n "none" > /sys/devices/soc0/leds*/leds/module-led/trigger root@imx6-tinyrexultra:~# echo -n "1" > /sys/devices/soc0/leds*/leds/module-led/brightness root@imx6-tinyrexultra:~# echo -n "0" > /sys/devices/soc0/leds*/leds/module-led/brightness root@imx6-tinyrexultra:~# echo -n "heartbeat" > /sys/devices/soc0/leds*/leds/module-led/trigger
Input: GPIO expander PCA9535 driver
Output: Red LED assembled on baseboard switches from ON to OFF state
root@imx6-rexpro:~# echo 510 > /sys/class/gpio/export root@imx6-rexpro:~# echo out > /sys/class/gpio/gpio510/direction root@imx6-rexpro:~# echo 1 > /sys/class/gpio/gpio510/value root@imx6-rexpro:~# echo 0 > /sys/class/gpio/gpio510/value
LVDS display
Details how to properly connect display with LVDS and touchsreen interfaces are described on Display Set page.
Input: Configure kernel command line in uboot and boot up the module
Output: GUI can be seen on LVDS screen
Rex U-Boot > setenv video 'video=mxcfb0:dev=ldb,edt570,if=RGB666 video=mxcfb1:off' Rex U-Boot > boot
DDR memory
Input: None
Output: Memory test passes without any error
root@imx6-rexpro:~# memtester 2G 1 memtester version 4.1.3 (32-bit) Copyright (C) 2010 Charles Cazabon. Licensed under the GNU General Public License version 2 (only). pagesize is 4096 pagesizemask is 0xfffff000 want 2048MB (2147483648 bytes) got 267MB (280412160 bytes), trying mlock ...locked. Loop 1/1: Stuck Address : ok Random Value : ok Compare XOR : ok Compare SUB : ok Compare MUL : ok Compare DIV : ok Compare OR : ok Compare AND : ok Sequential Increment: ok Solid Bits : ok Block Sequential : ok Checkerboard : ok Bit Spread : ok Bit Flip : ok Walking Ones : ok Walking Zeroes : ok Done.
Further information about DDR3 memories and its calibration can be accessed in Memory Calibration details.
Modem
Input: Plug HE910 3G card into PCIe mini 2 slot and plug SIM card into SIM1 slot
Output: HE910 3G card is detected and AT commands executed
root@imx6-rexultra:~# lsusb | grep -i 1bc7 Bus 001 Device 003: ID 1bc7:0021 Telit HE910
root@imx6-rexultra:~# cat > /etc/minirc.he910 << EOF pu port /dev/ttyACM0 pu baudrate 115200 pu bits 8 pu parity N pu stopbits 1 pu rtscts No pu xonxoff No pu escape-key ^B EOF root@imx6-rexultra:~# echo "Press 'Ctrl+B z q' to exit" root@imx6-rexultra:~# minicom -o he910 AT AT+CPIN? AT+CREG? AT+COPS?
Log:
AT OK AT+CPIN? +CPIN: READY OK AT+CREG? +CREG: 0,1 OK AT+COPS? +COPS: 0,0,"Vodafone",0 OK
PCI Express
The procedure uses to a WiFi wireless card to test PCIe interface. More details concerning wireless cards are located on WiFi and Bluetooth Cards page .
Input: Plug Wireless WiFi Link 4965AGN mini PCIe card into mini PCIe slot 1
Output: Card is detected by system
root@imx6-rexpro:~# lspci 00:00.0 PCI bridge: Device 16c3:abcd (rev 01) 01:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)
Input: Plug Wireless WiFi Link 4965AGN mini PCIe card into mini PCIe slot
Output: Wireless WiFi card firmware is loaded
root@imx6-rexpro:~# dmesg | grep iwl4965 iwl4965: Intel(R) Wireless WiFi 4965 driver for Linux, in-tree: iwl4965: Copyright(c) 2003-2011 Intel Corporation iwl4965 0000:01:00.0: Detected Intel(R) Wireless WiFi Link 4965AGN, REV=0x4 iwl4965 0000:01:00.0: device EEPROM VER=0x36, CALIB=0x5 iwl4965 0000:01:00.0: Tunable channels: 13 802.11bg, 19 802.11a channels iwl4965 0000:01:00.0: loaded firmware version 228.61.2.24
Input: Plug Wireless WiFi Link 4965AGN mini PCIe card into mini PCIe slot
Output: Card scans neighbour networks
root@imx6-rexpro:~# rfkill unblock wlan root@imx6-rexpro:~# ip link set wlan0 up IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready root@imx6-rexpro:~# iw dev wlan0 scan BSS 20:aa:4b:7e:21:97(on wlan0) TSF: 9263203904202 usec (107d, 05:06:43) freq: 5220 beacon interval: 100 TUs capability: ESS Privacy ShortPreamble (0x0031) signal: -69.00 dBm last seen: 0 ms ago SSID: OpenWrt5g Supported rates: 6.0* 9.0 12.0* 18.0 24.0* 36.0 48.0 54.0 DS Parameter set: channel 44 Country: CZ Environment: Indoor/Outdoor Channels [36 - 48] @ 23 dBm RSN: * Version: 1 * Group cipher: CCMP * Pairwise ciphers: CCMP * Authentication suites: PSK * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c) WPA: * Version: 1 * Group cipher: CCMP * Pairwise ciphers: CCMP * Authentication suites: PSK Extended capabilities: 6 WMM: * Parameter version 1 * BE: CW 15-1023, AIFSN 3 * BK: CW 15-1023, AIFSN 7 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
Alternative test
Input: Plug Wireless WiFi Link 4965AGN mini PCIe card into mini PCIe slot
Output: Card scans neighbour networks
root@imx6-rexpro:~# ip link set wlan0 up IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready root@imx6-rexpro:~# iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: 20:AA:4B:7E:21:97 Channel:44 Frequency:5.22 GHz (Channel 44) Quality=39/70 Signal level=-71 dBm Encryption key:on ESSID:"OpenWrt5g" Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=0000086d2e342cf9 Extra: Last beacon: 40ms ago IE: Unknown: 00094F70656E5772743567 IE: Unknown: 01088C129824B048606C IE: Unknown: 03012C IE: Unknown: 0706435A20240417 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: WPA Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: 7F080000000000000040 IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
SATA
Input: Power off the baseboard, connect HDD to SATA connector, provide power for the hard drive and turn on the board
Output: HDD is detected
root@imx6-rexultra:~# dmesg | grep -i -e sata -e ata1 ahci-imx 2200000.sata: fsl,transmit-level-mV not specified, using 00000024 ahci-imx 2200000.sata: fsl,transmit-boost-mdB not specified, using 00000480 ahci-imx 2200000.sata: fsl,transmit-atten-16ths not specified, using 00002000 ahci-imx 2200000.sata: fsl,receive-eq-mdB not specified, using 05000000 ahci-imx 2200000.sata: SSS flag set, parallel bus scan disabled ahci-imx 2200000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode ahci-imx 2200000.sata: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq 306 ata1: SATA link down (SStatus 0 SControl 300) ahci-imx 2200000.sata: no device found, disabling link. ahci-imx 2200000.sata: pass ahci_imx..hotplug=1 to enable hotplug
SATA device can be used as a default bootlader and filesystem source. SATA Interface page contains detailed steps to follow.
SD card
Top slot SD card (mmcblk1)
Input: Plug and unplug SD card
Output: Kernel log shows that mmc1 device is added and removed
root@imx6-rexpro:~# dmesg | tail ... mmc1: new high speed SDHC card at address e624 mmcblk1: mmc1:e624 SU08G 7.40 GiB mmcblk1: p1 p2 FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. EXT4-fs (mmcblk1p2): recovery complete EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null) mmc1: card e624 removed
Bottom slot SD card (mmcblk2)
Input: Plug SD card with a filesystem and boot-up the module
Output: Module boots up successfully
root@imx6-rexpro:~# dmesg | grep -i "Kernel command line" Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk2p2 rootwait rw
SPI Flash Memory
Input: Trigger M25P80 flash detection
Output: SPI Flash sst25vf016b(sst25vf032b) is detected
root@imx6-rexpro:~# echo -n "spi2.0" > /sys/bus/spi/drivers/m25p80/unbind root@imx6-rexpro:~# echo -n "spi2.0" > /sys/bus/spi/drivers/m25p80/bind m25p80 spi2.0: found sst25vf032b, expected m25p32 m25p80 spi2.0: sst25vf032b (4096 Kbytes)
Suspend
Input: Put module into suspend state (mem state). Wait 10s and then press USER button
Output: Module wakes up
root@imx6-tinyrexultra:~# echo mem > /sys/power/state PM: Syncing filesystems ... done. Freezing user space processes ... (elapsed 0.005 seconds) done. Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. Suspending console(s) (use no_console_suspend to debug) fec 2188000.ethernet eth0: Graceful transmit stop did not complete! PM: suspend of devices complete after 31.996 msecs PM: suspend devices took 0.030 seconds PM: late suspend of devices complete after 0.511 msecs PM: noirq suspend of devices complete after 11.941 msecs Disabling non-boot CPUs ... PM: noirq resume of devices complete after 20.111 msecs PM: early resume of devices complete after 0.399 msecs PM: resume of devices complete after 412.384 msecs PM: resume devices took 0.410 seconds Restarting tasks ... done. root@imx6-tinyrexultra:~#
Input: Put module into suspend state (standby state). Wait 10s and then press USER button
Output: Module wakes up
root@imx6-tinyrexultra:~# echo standby > /sys/power/state PM: Syncing filesystems ... done. Freezing user space processes ... (elapsed 0.005 seconds) done. Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. Suspending console(s) (use no_console_suspend to debug) fec 2188000.ethernet eth0: Graceful transmit stop did not complete! PM: suspend of devices complete after 31.989 msecs PM: suspend devices took 0.030 seconds PM: late suspend of devices complete after 0.532 msecs PM: noirq suspend of devices complete after 11.862 msecs Disabling non-boot CPUs ... PM: noirq resume of devices complete after 20.186 msecs PM: early resume of devices complete after 0.397 msecs PM: resume of devices complete after 412.337 msecs PM: resume devices took 0.410 seconds Restarting tasks ... done. root@imx6-tinyrexultra:~#
Input: Set RTC wakeup event after 10s and put module into suspend state (standby state)
Output: Module wakes up by itself
root@imx6-tinyrexultra:~# echo +10 > /sys/class/rtc/rtc0/wakealarm && echo standby > /sys/power/state PM: Syncing filesystems ... done. Freezing user space processes ... (elapsed 0.005 seconds) done. Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. Suspending console(s) (use no_console_suspend to debug) fec 2188000.ethernet eth0: Graceful transmit stop did not complete! PM: suspend of devices complete after 32.020 msecs PM: suspend devices took 0.030 seconds PM: late suspend of devices complete after 0.515 msecs PM: noirq suspend of devices complete after 11.887 msecs Disabling non-boot CPUs ... PM: noirq resume of devices complete after 19.990 msecs PM: early resume of devices complete after 0.392 msecs PM: resume of devices complete after 412.311 msecs PM: resume devices took 0.410 seconds Restarting tasks ... done. root@imx6-tinyrexultra:~#
UART serial console
Input: Connect USB to UART cable into baseboard connector and open serial console with baud rate 115200 8n1
Output: The board is controlled and responsive to serial terminal commands
root@imx6-tinyrexultra:~# uname -a Linux imx6-tinyrexultra 3.14.43-yocto+g4b13aeb #1 SMP PREEMPT Tue Jan 19 21:42:39 CET 2016 armv7l GNU/Linux
USB
Input: Plug USB flash drive with single VFAT partition into bottom USB connector
Output: Filesystem recognises the flash drive and automatically mounts it
root@imx6-tinyrexultra:~# lsusb Bus 001 Device 002: ID 125f:d31a A-DATA Technology Co., Ltd. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub root@imx6-tinyrexultra:~# mount | grep /run/media/sd* /dev/sda1 on /run/media/sda1 type vfat (rw,relatime,gid=6,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
Input: Generate a dummy file and copy it into USB flash drive
Output: Generated file and copied file have the same checksum
root@imx6-tinyrexultra:~# rm -f file.txt /run/media/sda1/file.txt root@imx6-tinyrexultra:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB) copied, 0.435065 s, 2.4 MB/s root@imx6-tinyrexultra:~# cp file.txt /run/media/sda1/ root@imx6-tinyrexultra:~# md5sum file.txt /run/media/sda1/file.txt b8e8141b61813fcc08a6164833729e3b file.txt b8e8141b61813fcc08a6164833729e3b /run/media/sda1/file.txt root@imx6-tinyrexultra:~# rm file.txt /run/media/sda1/file.txt
USB OTG
Input: Load USB serial gadget driver and connect baseboard to host PC over micro USB cable
Output: Driver is successfully loaded and host PC detects a new USB serial gadget device
iMX6 Rex Development kit:
root@imx6-tinyrexultra:~# modprobe -i g_serial g_serial gadget: Gadget Serial v2.4 g_serial gadget: g_serial ready root@imx6-tinyrexultra:~# g_serial gadget: high-speed config #2: CDC ACM config
Host PC:
user@voipac:~$ lsusb ... Bus 001 Device 014: ID 0525:a4a7 Netchip Technology, Inc. Linux-USB Serial Gadget (CDC ACM mode) ...