Difference between revisions of "INNOSTICK6"
m |
(→Expansion Boards and Accessories) |
||
(26 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | [[INNOSTICK6/zh|中文页面]] | ||
[[File:INNOSTICK6-1 800x598.jpg|300px|thumb|right|INNOSTICK6 Computer Board 1]] | [[File:INNOSTICK6-1 800x598.jpg|300px|thumb|right|INNOSTICK6 Computer Board 1]] | ||
[[File:INNOSTICK6-2 800x502.jpg|300px|thumb|right|INNOSTICK6 Computer Board 2]] | [[File:INNOSTICK6-2 800x502.jpg|300px|thumb|right|INNOSTICK6 Computer Board 2]] | ||
Line 1,903: | Line 1,904: | ||
==Getting started== | ==Getting started== | ||
− | ===First time power on=== | + | ===First time Power On=== |
− | === | + | Innostick 6 product reference documents and software tools are all stored in on-board eMMC with shipment. Users should get these documents and tools before start. |
+ | ====Pre-requirements==== | ||
+ | *An Innostick 6 single board computer | ||
+ | *A Windows host machine | ||
+ | |||
+ | ====Enter USB Memory Stick Mode==== | ||
+ | 1. Take out Innostick 6 from antistatic bag and prepare two 2mm Jumper-shunts and one Micro-USB cable<br> | ||
+ | 2. Mount shunt on Innostick 6 Jumper J1(Supply from Micro-USB cable)<br> | ||
+ | Innostick 6 power supply can be selected by Jumper J1. When shunt mounted, VDD_5V get shorted with 5V input of Micro-USB Port(P1) and supply from Micro-USB cable.<br> | ||
+ | [[File:Outline_partial_remark.png |400px]]<br> | ||
+ | <br> | ||
+ | 3. Mount shunt on Innostick 6 Jumper J2-1 and J2-2(USB Memory Stick Mode)<br> | ||
+ | Boot Mode selection table for Jumper J2 | ||
+ | {|2. class="wikitable" | ||
+ | |Jumper Position||Boot Mode | ||
+ | |- | ||
+ | |1-2||USB Memory Stick | ||
+ | |- | ||
+ | |2-3||SDP Manufacture Tools | ||
+ | |- | ||
+ | |Open||Normal Boot | ||
+ | |} | ||
+ | <br> | ||
+ | 4. Connect Micro-USB cable between Windows host and Innostick 6 P1<br> | ||
+ | 5. Wait until Windows recognize USB Mass Storage Gadget<br> | ||
+ | 6. There are Linux partitions on Innostick 6 eMMC, Windows can not recognize them and prompt for formating<br> | ||
+ | [[File:Format.jpg]]<br> | ||
+ | <br> | ||
+ | 7. Click "Cancel"<br> | ||
+ | 8. Open a file browser on Innostick 6 FAT Partition, in this example, it is "F" disk<br> | ||
+ | [[File:Fpan1.jpg]]<br> | ||
+ | <br> | ||
+ | 9. To safety remove Innostick 6 from Host, right click on "F" disk, select "Eject"<br> | ||
+ | [[File:Eject1.jpg]]<br> | ||
+ | <br> | ||
+ | |||
+ | ===Connect to ssh deamon=== | ||
+ | Linux distributions shipped with Innostick 6 single board computer are all pre-configured with USB RNDIS Gadget support. This allows us to ssh/telnet to Innostick 6 whenever an USB link been built with a host machine. | ||
+ | ====Pre-requirements==== | ||
+ | *An Innostick 6 single board computer. | ||
+ | *A Windows host machine. | ||
+ | *Putty v0.66 from www.putty.org: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html | ||
+ | *RNDIS driver, install it in case Windows can not recognize RNDIS Gadget automatically:https://github.com/zhangzhian/LearningNotes/blob/master/res/RNDIS.7z | ||
+ | ====Procedures==== | ||
+ | 1. Install Putty v0.66 on Windows host machine.<br/> | ||
+ | 2. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)<br/> | ||
+ | 3. Leave Jumper J2 open on Innostick 6(Normal Boot Mode)<br/> | ||
+ | 4. Connect Micro-USB cable between Windows host and Innostick 6 P1.<br/> | ||
+ | 5. Wait until a RNDIS Gadget device recognized by Windows.<br/> | ||
+ | [[File:Pu6_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 6. Right click to set property of this USB Ethernet Card.<br/> | ||
+ | 7. Set property of TCP/IPv4.<br/> | ||
+ | [[File:Pu7_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 8. Double click to start Putty.<br/> | ||
+ | [[File:Pu10_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 9. Set communication parameters appropriately.<br> | ||
+ | [[File:Pufour.png|600px]]<br/> | ||
+ | <br> | ||
+ | 9. Enter user name and password.<br> | ||
+ | [[File:Pufive.png|600px]]<br/> | ||
+ | <br> | ||
+ | |||
+ | ===Connect to Serial Console=== | ||
+ | Both U-Boot and Linux kernel provide serial console login and this allows us another way to connect to Innostick 6 than ssh/telnet. Normally the communication parameters are UART1, Baud rate 115200, Data Bit 8, Stop Bit 1, Odd/Even none, Hardware Flow none. | ||
+ | ====Pre-requirements==== | ||
+ | *An Innostick 6 single board computer. | ||
+ | *A Windows host machine. | ||
+ | *An USB to Serial Cable. [[USB2SERIAL | USB to Serial TTL Converter]] | ||
+ | *Putty v0.66 from www.putty.org: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html | ||
+ | ====Procedures==== | ||
+ | 1. Install Putty v0.66 on Windows host machine.<br/> | ||
+ | 2. Connect Dupont headers of USB to Serial cable to Innostick 6 UART1.<br/> | ||
+ | [[File:Serialconsole remark.png |400px]] | ||
+ | [[File:Usb2serial.jpg ]]<br> | ||
+ | Connection details: | ||
+ | {| class="wikitable" | ||
+ | |Dupont Header||Innostick 6 UART1 | ||
+ | |- | ||
+ | |Green(RX)||P5-4(Tx) | ||
+ | |- | ||
+ | |Blue(TX)||P5-6(Rx) | ||
+ | |- | ||
+ | |Black(GND)||P5-8(GND) | ||
+ | |} | ||
+ | <br> | ||
+ | 3. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)<br/> | ||
+ | 4. Leave Jumper J2 open on Innostick 6(Normal Boot Mode)<br/> | ||
+ | 5. Connect Micro-USB cable between Windows host and Innostick 6 P1.<br/> | ||
+ | 6. Plug USB to Serial cable into Windows host.<br/> | ||
+ | Windows will automatically recognize this serial device and arrange COM port number.<br> | ||
+ | 7. Double click to start Putty.<br/> | ||
+ | [[File:Pu1_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 8. Set serial communication parameters and click Open.<br> | ||
+ | 9. Push the RESET button on Innostick 6 board.<br> | ||
+ | [[File:Putwo.png|600px]]<br/> | ||
+ | <br> | ||
+ | |||
+ | ===Layout of eMMC partitions=== | ||
+ | eMMC partitions can be altered per software requests. Below is Innostick 6 partition information with shipment. | ||
+ | {| class="wikitable" | ||
+ | |Start Address(Sectors)||Size(Sectors)||Format||Description | ||
+ | |- | ||
+ | |2||20478||RAW||Reserved, standing at same line with NXP Yocto release | ||
+ | |- | ||
+ | |20480||1024000(500MBytes)||FAT||U-Boot image, product references, Linux kernel, DTBs | ||
+ | |- | ||
+ | |1228800||Remaining space||EXT4||Linux Rootfs | ||
+ | |} | ||
+ | Under "Normal Boot" mode, Internal Boot ROM of Innostick 6 will initiate DDR memory and then find u-boot.imx file in root directory of the FAT partition. If the file exist, Innostick 6 will copy it to DDR and after then transfer control to it. If the file non-exist or FAT partition non-exist, internal Boot ROM will hang up and flash LED1 in a panic frequency.<br> | ||
+ | With shipment, Innostick 6 use the same U-Boot image as NXP Official Yocto release. So U-Boot will find Linux kernel and DTBs in same directory. Innostick 6 boot sequence:'''Internal Boot ROM''' --> '''u-boot.imx on FAT''' --> '''kernel + DTB on FAT'''<br> | ||
+ | Provision of Innostick 6 software is quite simple and straight forward -- replacing u-boot.imx, Linux kernel and DTB image files in the same directory, plus Linux Rootfs in EXT4 partition. We will discuss provision of Linux Rootfs in next section. <br> | ||
+ | <br> | ||
+ | |||
+ | ===Provision of Linux Rootfs=== | ||
+ | This task can be done either on a Windows Host or Linux Host. | ||
+ | ====Do provision on a Windows Host==== | ||
+ | =====Pre-requirements===== | ||
+ | *An Innostick 6 single board computer. | ||
+ | *A Windows host machine. | ||
+ | *PartitionGuru v4.9.5 from www.eassos.com: http://engdownload.eassos.cn/DGEngSetup496564.exe | ||
+ | *A Rootfs snapshot file in PartitionGuru format. | ||
+ | =====Procedures===== | ||
+ | 1. Install PartitionGuru v4.9.5 on Windows host machine.<br/> | ||
+ | 2. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)<br/> | ||
+ | 3. Mount Jumper J2-1 and J2-2 on Innostick 6(USB Memory Stick Mode)<br/> | ||
+ | 4. Connect Micro-USB cable between Windows host and Innostick 6 P1.<br/> | ||
+ | 5. Wait until an USB mass storage gadget device recognized by Windows.<br/> | ||
+ | 6. Double click to start PartitionGuru.<br> | ||
+ | [[File:Dg1_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 7. Right click on Linux EXT4 Partition. <br/> | ||
+ | [[File:Dg2_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 8. Click 'Restore Partition From Image file'. <br/> | ||
+ | [[File:Dg3_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 9. Choose a snapshot file from local hard disk. <br/> | ||
+ | [[File:Dg4_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 10. Click Start to complete file choosing. <br/> | ||
+ | [[File:Dg5_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 11. Click OK to start file restoring. <br/> | ||
+ | [[File:Dg6_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | 12. Normally it will take about 6 minutes for a 2.5GB file restoring. <br/> | ||
+ | [[File:Dgseven.png|600px]]<br/> | ||
+ | <br> | ||
+ | 13. Complete procedures for the snapshot file restoring. <br/> | ||
+ | [[File:Dg8_remark.png|600px]]<br/> | ||
+ | <br> | ||
+ | =====Backup Rootfs to a snapshot file===== | ||
+ | And vice versa, one can backup Rootfs to a PartionGuru snapshot file.<br/> | ||
+ | [[File:Dg9_remark.png|600px]]<br/> | ||
+ | |||
+ | |||
+ | ====Do provision on a Linux Host==== | ||
+ | Provision on a Linux host is quite straight forward. | ||
+ | =====Pre-requirements===== | ||
+ | *An Innostick 6 single board computer. | ||
+ | *A Linux host machine. | ||
+ | *A Rootfs tarball. | ||
+ | =====Procedures===== | ||
+ | 1. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)<br/> | ||
+ | 2. Mount Jumper J2-1 and J2-2 on Innostick 6(USB Memory Stick Mode)<br/> | ||
+ | 3. Connect Micro-USB cable between Linux host and Innostick 6 P1.<br/> | ||
+ | 4. Wait until an USB mass storage gadget device recognized by Linux Kernel.<br/> | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | esky-sh@ubuntu:~$ lsblk | ||
+ | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT | ||
+ | sdb 8:16 1 14.6G 0 disk | ||
+ | ├─sdb2 8:18 1 14G 0 part | ||
+ | └─sdb1 8:17 1 500M 0 part | ||
+ | sr0 11:0 1 1024M 0 rom | ||
+ | fd0 2:0 1 4K 0 disk | ||
+ | sda 8:0 0 50G 0 disk | ||
+ | ├─sda2 8:2 0 1K 0 part | ||
+ | ├─sda5 8:5 0 1021M 0 part [SWAP] | ||
+ | └─sda1 8:1 0 49G 0 part / | ||
+ | </syntaxhighlight><br> | ||
+ | 5. Format Linux EXT4 partition, in this case it is "/dev/sdb2"<br/> | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | esky-sh@ubuntu:~$ sudo mkfs.ext4 -F -E nodiscard /dev/sdb2 | ||
+ | mke2fs 1.42.13 (17-May-2015) | ||
+ | /dev/sdb2 contains a ext4 file system | ||
+ | last mounted on /mnt/udisk on Fri Aug 24 21:46:26 2018 | ||
+ | Creating filesystem with 3663360 4k blocks and 917504 inodes | ||
+ | Filesystem UUID: 2e70e95e-f14b-41e0-b756-a85ee8ef051d | ||
+ | Superblock backups stored on blocks: | ||
+ | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 | ||
+ | |||
+ | Allocating group tables: done | ||
+ | Writing inode tables: done | ||
+ | Creating journal (32768 blocks): done | ||
+ | Writing superblocks and filesystem accounting information: done | ||
+ | </syntaxhighlight> | ||
+ | <br> | ||
+ | 6. Mount on Linux EXT4 Partition.<br> | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | esky-sh@ubuntu:~$ sudo mount -t ext4 /dev/sdb2 /mnt/udisk</syntaxhighlight> | ||
+ | 7. Extract Rootfs tarball to this partition.<br> | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | esky-sh@ubuntu:~$ sudo tar -jxvf /mnt/hgfs/sharefd/fsl-image-validation-imx-xwayland-imx6ul7d.tar.bz2 -C /mnt/udisk | ||
+ | esky-sh@ubuntu:~$ sync | ||
+ | esky-sh@ubuntu:~$ sudo umount /mnt/udisk/ | ||
+ | </syntaxhighlight> | ||
==Software== | ==Software== | ||
− | ===Build U-Boot and Linux kernel | + | ===Build U-Boot and Linux kernel=== |
+ | This task can be done either on a x86 machine(cross compiling) or ARM machine(native compiling). | ||
+ | ====Pre-requirements==== | ||
+ | *A Linux machine running a recent release of Debian, Fedora or Ubuntu | ||
+ | *NXP U-Boot source code: https://source.codeaurora.org/external/imx/uboot-imx | ||
+ | *NXP i.MX6 Kernel: https://source.codeaurora.org/external/imx/linux-imx | ||
+ | *Innostick6 Kernel: https://github.com/nxelec/linux-innostick6 | ||
+ | |||
+ | ====Install build-essentials==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo apt-get install build-essential libncurses5-dev lzop | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ====Install Cross Compiler==== | ||
+ | This section can be skipped if you are doing native compiling on an ARM machine. | ||
+ | *Install a 32Bits version: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz | ||
+ | tar xf gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz | ||
+ | export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- | ||
+ | export ARCH=arm | ||
+ | </syntaxhighlight> | ||
+ | *Install a 64Bits version: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz | ||
+ | tar xf gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz | ||
+ | export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- | ||
+ | export ARCH=arm | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ====Compile U-Boot==== | ||
+ | Download source code: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | git clone https://source.codeaurora.org/external/imx/uboot-imx -b imx_v2017.03_4.9.88_2.0.0_ga | ||
+ | </syntaxhighlight> | ||
+ | Compile U-Boot: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | cd uboot-imx | ||
+ | make clean | ||
+ | make mx6ull_14x14_evk_defconfig | ||
+ | make | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ====Compile Kernel==== | ||
+ | Download source code: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | git clone https://source.codeaurora.org/external/imx/linux-imx -b imx_4.9.88_2.0.0_ga | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Compile Kernel: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | cd linux-imx | ||
+ | make imx_v7_defconfig | ||
+ | make | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Or: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | git clone https://github.com/NXElec/linux-innostick6 -b i6_4.9.88_v1.0 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Compile Kernel: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | cd linux-innostick6 | ||
+ | make imx_v7_i6_defconfig | ||
+ | make | ||
+ | </syntaxhighlight> | ||
+ | |||
===Yocto Development=== | ===Yocto Development=== | ||
+ | [[INNOSTICK6-YOCTO|--> Yocto Development Page]] | ||
===Debian OS=== | ===Debian OS=== | ||
− | + | [[INNOSTICK6-DEBIAN|--> Debian OS Page]] | |
==Expansion Boards and Accessories== | ==Expansion Boards and Accessories== | ||
{| class="wikitable" width="50%" align="center" style="text-align: center;" | {| class="wikitable" width="50%" align="center" style="text-align: center;" | ||
Line 1,917: | Line 2,195: | ||
[[File:Beaglebone.jpg|border|link=BeadaFrame|150px]] | [[File:Beaglebone.jpg|border|link=BeadaFrame|150px]] | ||
<br />'''[[BeadaFrame | BeadaFrame]]''' | <br />'''[[BeadaFrame | BeadaFrame]]''' | ||
+ | |||
+ | |style="width:25%;"| | ||
+ | [[File:I6hf1_400.jpg|border|link=5-LCD-Screen|150px]] | ||
+ | <br />'''[[5-LCD-Screen | 5" LCD Screen]]''' | ||
|style="width:25%;"| | |style="width:25%;"| | ||
[[File:Ikoutline-22.jpg|border|link=INNNOSTICK6-Comp|150px]] | [[File:Ikoutline-22.jpg|border|link=INNNOSTICK6-Comp|150px]] | ||
<br />'''[[INNNOSTICK6-Comp | Companion Board]]''' | <br />'''[[INNNOSTICK6-Comp | Companion Board]]''' | ||
− | |||
− | |||
− | |||
− | |||
|style="width:25%;"| | |style="width:25%;"| | ||
Line 1,945: | Line 2,223: | ||
[[File:Oled96.jpg|border|link=0_96OLED|150px]] | [[File:Oled96.jpg|border|link=0_96OLED|150px]] | ||
<br />'''[[0_96OLED | 0.96" 128x64 OLED Display]]''' | <br />'''[[0_96OLED | 0.96" 128x64 OLED Display]]''' | ||
+ | |} | ||
+ | |||
+ | ==Applications== | ||
+ | {| class="wikitable" width="50%" align="center" style="text-align: center;" | ||
+ | |||
+ | |style="width:25%;"| | ||
+ | [[File:BeadaPanel.jpg|border|link=BeadaPanel|150px]] | ||
+ | <br />'''[[BeadaPanel | BeadaPanel]]''' | ||
+ | |||
+ | |style="width:25%;"| | ||
+ | [[File:Asdash.jpg|border|link=Airsniffer|150px]] | ||
+ | <br />'''[[Airsniffer | Airsniffer]]''' | ||
+ | |||
|} | |} | ||
Revision as of 21:42, 1 October 2019
Based on NXP/Freescale's i.MX6ULL ARM Cortex-A7 processor with up to 900MHz CPU Clock, the INNOSTICK 6 is a portable and easy-to-use computer which integrated with on board DDR3 memory and eMMC storage in a tiny form factor(80mmx42mm). The INNOSTICK 6 highly integrated connectivity includes Wi-Fi, Bluetooth/BLE, USB Host and OTG, Camera, LCD display with touch panel and serial interfaces.
Contents
Hardware
Features
CPU |
NXP/Freescale ARM Cortex-A7 i.MX6ULL, at Frequency of 900MHz |
RAM |
512MB DDR3L |
Storage |
16GB/32GB eMMC |
Connectivity |
|
LCD I/F |
24-Bit LCD with 4-wires resistive touch input |
Camera I/F |
8-Bit CSI Parallel input |
On Board Resources |
|
Expand Interface |
50-Pins Header P5
16-Pins Header P6
*Note:Functions may not be simultaneously available due to pin mux restriction |
Dimension |
80 x 42(mm) |
OS Support |
|
Block Diagram
Expansion Header P6
Power Domain |
i.MX6ULL Alt5 Mode* |
Signal (Ball Name) |
Pin# |
Signal (Ball Name) |
i.MX6ULL Alt5 Mode* |
Power Domain |
|
DC 3.3V Output |
|
VDD_3V3 |
1 |
2 |
ENET1_TX_CLK |
GPIO2_IO06 |
VDD_3V3 |
VDD_3V3 |
GPIO2_IO03 |
ENET1_TX_DATA0 |
3 |
4 |
ENET1_TX_DATA1 |
GPIO2_IO04 |
VDD_3V3 |
VDD_3V3 |
GPIO2_IO05 |
ENET1_TX_EN |
5 |
6 |
GND |
|
|
VDD_3V3 |
GPIO2_IO11 |
ENET2_TX_DATA0 |
7 |
8 |
ENET2_TX_DATA1 |
GPIO2_IO12 |
VDD_3V3 |
VDD_3V3 |
GPIO2_IO13 |
ENET2_TX_EN |
9 |
10 |
ENET2_TX_CLK |
GPIO2_IO14 |
VDD_3V3 |
|
|
GND |
11 |
12 |
GND |
|
|
VDD_3V3 |
GPIO2_IO10 |
ENET2_RX_EN |
13 |
14 |
ENET2_RX_DATA1 |
GPIO2_IO09 |
VDD_3V3 |
VDD_3V3 |
GPIO2_IO15 |
ENET2_RX_ER |
15 |
16 |
ENET2_RX_DATA0 |
GPIO2_IO08 |
VDD_3V3 |
- Note:Refer to INNOSTICK6 Hardware Manual for more ALT Modes.
Expansion Header P5
Power Domain |
i.MX6ULL Alt5 Mode* |
Signal (Ball Name) |
Pin# |
Signal (Ball Name) |
i.MX6ULL Alt5 Mode* |
Power Domain |
|
Main power supply |
|
VDD_5V |
1 |
2 |
VDD_5V |
|
Main power supply |
DC 3.3V Output |
|
VDD_3V3 |
3 |
4 |
UART1_TX_DATA |
GPIO1_IO16 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO19 |
UART1_RTS_B |
5 |
6 |
UART1_RX_DATA |
GPIO1_IO17 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO18 |
UART1_CTS_B |
7 |
8 |
GND |
|
|
|
|
GND |
9 |
10 |
VDDA_3V3 |
|
Analog Converter Supply |
VDD_3V3 |
GPIO1_IO05 |
GPIO1_IO05 |
11 |
12 |
GPIO1_IO06 |
GPIO1_IO06 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO07 |
GPIO1_IO07 |
13 |
14 |
GPIO1_IO08 |
GPIO1_IO08 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO09 |
GPIO1_IO09 |
15 |
16 |
GND |
|
|
|
|
GND |
17 |
18 |
JTAG_TDI |
GPIO1_IO13 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO10 |
JTAG_MOD |
19 |
20 |
JTAG_TDO |
GPIO1_IO12 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO15 |
JTAG_TRSTB |
21 |
22 |
JTAG_TCK |
GPIO1_IO14 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO11 |
JTAG_TMS |
23 |
24 |
GND |
|
|
|
|
GND |
25 |
26 |
SNVS_TAMPER2 |
GPIO5_IO02 |
VDD_SNVS_IN |
Backup supply voltage |
|
VDD_SNVS_IN |
27 |
28 |
PMIC_STBY_REQ |
|
VDD_SNVS_IN |
VDD_SNVS_IN |
|
PMIC_ON_REQ |
29 |
30 |
ONOFF |
|
VDD_SNVS_IN |
VDD_SNVS_IN |
|
POR_B |
31 |
32 |
GND |
|
|
|
|
GND |
33 |
34 |
NAND_READY_B |
GPIO4_IO11 |
VDD_3V3 |
VDD_3V3 |
GPIO4_IO12 |
NAND_WP_B |
35 |
36 |
NAND_CE0_B |
GPIO4_IO13 |
VDD_3V3 |
VDD_3V3 |
GPIO4_IO14 |
NAND_CE1_B |
37 |
38 |
NAND_CLE |
GPIO4_IO15 |
VDD_3V3 |
VDD_3V3 |
GPIO4_IO16 |
NAND_DQS |
39 |
40 |
GND |
|
|
|
|
GND |
41 |
42 |
ENET1_RX_DATA1 |
GPIO2_IO01 |
VDD_3V3 |
VDD_3V3 |
GPIO2_IO00 |
ENET1_RX_DATA0 |
43 |
44 |
UART4_RX_DATA |
GPIO1_IO29 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO28 |
UART4_TX_DATA |
45 |
46 |
UART2_RTS_B |
GPIO1_IO23 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO21 |
UART2_RX_DATA |
47 |
48 |
UART2_CTS_B |
GPIO1_IO22 |
VDD_3V3 |
VDD_3V3 |
GPIO1_IO20 |
UART2_TX_DATA |
49 |
50 |
GND |
|
|
- Note:Refer to INNOSTICK6 Hardware Manual for more ALT Modes.
Dimension
Getting started
First time Power On
Innostick 6 product reference documents and software tools are all stored in on-board eMMC with shipment. Users should get these documents and tools before start.
Pre-requirements
- An Innostick 6 single board computer
- A Windows host machine
Enter USB Memory Stick Mode
1. Take out Innostick 6 from antistatic bag and prepare two 2mm Jumper-shunts and one Micro-USB cable
2. Mount shunt on Innostick 6 Jumper J1(Supply from Micro-USB cable)
Innostick 6 power supply can be selected by Jumper J1. When shunt mounted, VDD_5V get shorted with 5V input of Micro-USB Port(P1) and supply from Micro-USB cable.
3. Mount shunt on Innostick 6 Jumper J2-1 and J2-2(USB Memory Stick Mode)
Boot Mode selection table for Jumper J2
Jumper Position | Boot Mode |
1-2 | USB Memory Stick |
2-3 | SDP Manufacture Tools |
Open | Normal Boot |
4. Connect Micro-USB cable between Windows host and Innostick 6 P1
5. Wait until Windows recognize USB Mass Storage Gadget
6. There are Linux partitions on Innostick 6 eMMC, Windows can not recognize them and prompt for formating
7. Click "Cancel"
8. Open a file browser on Innostick 6 FAT Partition, in this example, it is "F" disk
9. To safety remove Innostick 6 from Host, right click on "F" disk, select "Eject"
Connect to ssh deamon
Linux distributions shipped with Innostick 6 single board computer are all pre-configured with USB RNDIS Gadget support. This allows us to ssh/telnet to Innostick 6 whenever an USB link been built with a host machine.
Pre-requirements
- An Innostick 6 single board computer.
- A Windows host machine.
- Putty v0.66 from www.putty.org: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- RNDIS driver, install it in case Windows can not recognize RNDIS Gadget automatically:https://github.com/zhangzhian/LearningNotes/blob/master/res/RNDIS.7z
Procedures
1. Install Putty v0.66 on Windows host machine.
2. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
3. Leave Jumper J2 open on Innostick 6(Normal Boot Mode)
4. Connect Micro-USB cable between Windows host and Innostick 6 P1.
5. Wait until a RNDIS Gadget device recognized by Windows.
6. Right click to set property of this USB Ethernet Card.
7. Set property of TCP/IPv4.
8. Double click to start Putty.
9. Set communication parameters appropriately.
9. Enter user name and password.
Connect to Serial Console
Both U-Boot and Linux kernel provide serial console login and this allows us another way to connect to Innostick 6 than ssh/telnet. Normally the communication parameters are UART1, Baud rate 115200, Data Bit 8, Stop Bit 1, Odd/Even none, Hardware Flow none.
Pre-requirements
- An Innostick 6 single board computer.
- A Windows host machine.
- An USB to Serial Cable. USB to Serial TTL Converter
- Putty v0.66 from www.putty.org: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Procedures
1. Install Putty v0.66 on Windows host machine.
2. Connect Dupont headers of USB to Serial cable to Innostick 6 UART1.
Connection details:
Dupont Header | Innostick 6 UART1 |
Green(RX) | P5-4(Tx) |
Blue(TX) | P5-6(Rx) |
Black(GND) | P5-8(GND) |
3. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
4. Leave Jumper J2 open on Innostick 6(Normal Boot Mode)
5. Connect Micro-USB cable between Windows host and Innostick 6 P1.
6. Plug USB to Serial cable into Windows host.
Windows will automatically recognize this serial device and arrange COM port number.
7. Double click to start Putty.
8. Set serial communication parameters and click Open.
9. Push the RESET button on Innostick 6 board.
Layout of eMMC partitions
eMMC partitions can be altered per software requests. Below is Innostick 6 partition information with shipment.
Start Address(Sectors) | Size(Sectors) | Format | Description |
2 | 20478 | RAW | Reserved, standing at same line with NXP Yocto release |
20480 | 1024000(500MBytes) | FAT | U-Boot image, product references, Linux kernel, DTBs |
1228800 | Remaining space | EXT4 | Linux Rootfs |
Under "Normal Boot" mode, Internal Boot ROM of Innostick 6 will initiate DDR memory and then find u-boot.imx file in root directory of the FAT partition. If the file exist, Innostick 6 will copy it to DDR and after then transfer control to it. If the file non-exist or FAT partition non-exist, internal Boot ROM will hang up and flash LED1 in a panic frequency.
With shipment, Innostick 6 use the same U-Boot image as NXP Official Yocto release. So U-Boot will find Linux kernel and DTBs in same directory. Innostick 6 boot sequence:Internal Boot ROM --> u-boot.imx on FAT --> kernel + DTB on FAT
Provision of Innostick 6 software is quite simple and straight forward -- replacing u-boot.imx, Linux kernel and DTB image files in the same directory, plus Linux Rootfs in EXT4 partition. We will discuss provision of Linux Rootfs in next section.
Provision of Linux Rootfs
This task can be done either on a Windows Host or Linux Host.
Do provision on a Windows Host
Pre-requirements
- An Innostick 6 single board computer.
- A Windows host machine.
- PartitionGuru v4.9.5 from www.eassos.com: http://engdownload.eassos.cn/DGEngSetup496564.exe
- A Rootfs snapshot file in PartitionGuru format.
Procedures
1. Install PartitionGuru v4.9.5 on Windows host machine.
2. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
3. Mount Jumper J2-1 and J2-2 on Innostick 6(USB Memory Stick Mode)
4. Connect Micro-USB cable between Windows host and Innostick 6 P1.
5. Wait until an USB mass storage gadget device recognized by Windows.
6. Double click to start PartitionGuru.
7. Right click on Linux EXT4 Partition.
8. Click 'Restore Partition From Image file'.
9. Choose a snapshot file from local hard disk.
10. Click Start to complete file choosing.
11. Click OK to start file restoring.
12. Normally it will take about 6 minutes for a 2.5GB file restoring.
13. Complete procedures for the snapshot file restoring.
Backup Rootfs to a snapshot file
And vice versa, one can backup Rootfs to a PartionGuru snapshot file.
Do provision on a Linux Host
Provision on a Linux host is quite straight forward.
Pre-requirements
- An Innostick 6 single board computer.
- A Linux host machine.
- A Rootfs tarball.
Procedures
1. Mount Jumper J1 on Innostick 6(Supply from Micro-USB cable)
2. Mount Jumper J2-1 and J2-2 on Innostick 6(USB Memory Stick Mode)
3. Connect Micro-USB cable between Linux host and Innostick 6 P1.
4. Wait until an USB mass storage gadget device recognized by Linux Kernel.
esky-sh@ubuntu:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 14.6G 0 disk
├─sdb2 8:18 1 14G 0 part
└─sdb1 8:17 1 500M 0 part
sr0 11:0 1 1024M 0 rom
fd0 2:0 1 4K 0 disk
sda 8:0 0 50G 0 disk
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 1021M 0 part [SWAP]
└─sda1 8:1 0 49G 0 part /
5. Format Linux EXT4 partition, in this case it is "/dev/sdb2"
esky-sh@ubuntu:~$ sudo mkfs.ext4 -F -E nodiscard /dev/sdb2
mke2fs 1.42.13 (17-May-2015)
/dev/sdb2 contains a ext4 file system
last mounted on /mnt/udisk on Fri Aug 24 21:46:26 2018
Creating filesystem with 3663360 4k blocks and 917504 inodes
Filesystem UUID: 2e70e95e-f14b-41e0-b756-a85ee8ef051d
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
6. Mount on Linux EXT4 Partition.
esky-sh@ubuntu:~$ sudo mount -t ext4 /dev/sdb2 /mnt/udisk
7. Extract Rootfs tarball to this partition.
esky-sh@ubuntu:~$ sudo tar -jxvf /mnt/hgfs/sharefd/fsl-image-validation-imx-xwayland-imx6ul7d.tar.bz2 -C /mnt/udisk
esky-sh@ubuntu:~$ sync
esky-sh@ubuntu:~$ sudo umount /mnt/udisk/
Software
Build U-Boot and Linux kernel
This task can be done either on a x86 machine(cross compiling) or ARM machine(native compiling).
Pre-requirements
- A Linux machine running a recent release of Debian, Fedora or Ubuntu
- NXP U-Boot source code: https://source.codeaurora.org/external/imx/uboot-imx
- NXP i.MX6 Kernel: https://source.codeaurora.org/external/imx/linux-imx
- Innostick6 Kernel: https://github.com/nxelec/linux-innostick6
Install build-essentials
sudo apt-get install build-essential libncurses5-dev lzop
Install Cross Compiler
This section can be skipped if you are doing native compiling on an ARM machine.
- Install a 32Bits version:
wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf.tar.xz
export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
export ARCH=arm
- Install a 64Bits version:
wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
export ARCH=arm
Compile U-Boot
Download source code:
git clone https://source.codeaurora.org/external/imx/uboot-imx -b imx_v2017.03_4.9.88_2.0.0_ga
Compile U-Boot:
cd uboot-imx
make clean
make mx6ull_14x14_evk_defconfig
make
Compile Kernel
Download source code:
git clone https://source.codeaurora.org/external/imx/linux-imx -b imx_4.9.88_2.0.0_ga
Compile Kernel:
cd linux-imx
make imx_v7_defconfig
make
Or:
git clone https://github.com/NXElec/linux-innostick6 -b i6_4.9.88_v1.0
Compile Kernel:
cd linux-innostick6
make imx_v7_i6_defconfig
make