==Existing boards== * sabrelite https://wiki.linaro.org/Boards/MX6QSabreLite * SabreSD: http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES * $89 Hiapad Hi802 Android mini PC Based on Freescale i.MX6 Quad Processor http://www.cnx-software.com/2012/10/17/89-hiapad-hi802-android-mini-pc-based-on-freescale-i-mx6-quad-processor/ * phyFLEX®-i.MX6 http://phytec.com/products/system-on-modules/phyflex/i.mx6/ * Tiny COM runs Linux, Android on quad-core i.MX6 http://linuxgizmos.com/compulab-imx6-quad-core-com-runs-linux-and-android/ * imx6 Rex http://www.imx6rex.com/ ==Ariaboard imx6== ===Key BOM components=== *freescale i.mx6 Dual, DualLite, Quad *ddr3 x4 *eMMC *TLV320AIC3106 / wolfson 8962e *PMIC *Atheros PHY ===Total Cost=== *pmu $2.5 *i.mx6 dual lite $12/dual $15/$quad $22 ===heat sink consideration=== different reliability levels of imx6 comes with different cpu packaging, and therefore different height from the bottom of the board ===u-boot=== dd if=u-boot.imx of=/dev/sdX bs=512 seek=2 more params: https://wiki.linaro.org/Boards/MX6QSabreLite ===uboot args=== setenv bootargs_mmc setenv bootargs ${bootargs} root=/dev/mmcblk0p2 rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:off video=mxcfb2:off fbmem=28M ip=dhcp setenv bootargs_mmc setenv bootargs ${bootargs} root=/dev/mmcblk0p2 rootwait rw video=mxcfb0:dev=hdmi,1024x768M@60; saveenv; boot setenv bootargs ${bootargs} root=/dev/mmcblk1p1 rootwait run bootargs_base bootargs_mmc; mmc dev 2; mmc read ${loadaddr} 0x800 0x2000; setenv video mxcfb0:dev=hdmi,1920x1080M@60; saveenv; bootm ===official uboot & kernel === # https://community.freescale.com/docs/DOC-95015 # https://community.freescale.com/docs/DOC-95017/version/16 ===old version 3.0.35=== http://variwiki.com/index.php?title=VAR-SOM-MX6_Ubuntu_GS ====freescale kernel build==== git clone git://git.freescale.com/imx/linux-2.6-imx.git cd linux-2.6-imx git checkout imx_3.10.17_1.0.0_ga make imx_v7_defconfig make -j16 uImage LOADADDR=0x10008000 make -j16 modules make imx6q-sabresd.dtb official kernel problem with reboot: (failed to reboot) mxc_restart: Watchdog reset failed to assert reset ===additional read imx6 uboot and kernel=== * https://community.freescale.com/thread/319906 * http://boundarydevices.com/cross-compile-i-mx6-kernel-using-ltib-toolchain/ ===make a sd card (including latest uboot, kernel)=== http://www.eewiki.net/display/linuxonarm/i.MX6q+SABRE+Board+for+Smart+Devices ===lazy installation Robert Nelson=== for ubuntu install, use Robert Nelson's netinstall git clone https://github.com/RobertCNelson/netinstall.git sudo ./mk_mmc.sh --dtb imx6q-sabresd --distro raring --mmc /dev/sdd === fast booting=== https://community.freescale.com/docs/DOC-93619 0.58sec: http://www.elinux.org/images/d/d1/Alexandre_Belloni_boottime_optimizations.pdf ==Ariaboard imx6 debugging== ==Hardware Debug== ref: http://www.imx6rex.com/software/imx6-rex-basic-hw-verification-tests/ ===sabresd bootconf=== SD 01000101 EMMC 11011101 DOWNLOADER 00000001 ===boot configs=== {| width="1000" cellspacing="1" cellpadding="1" border="1" |+ Boot mode |- | Boot device | boot mode1 | boot mode0 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |- | | | | BT_CFG 1_7 | BT_CFG 1_6 | BT_CFG 1_5 | BT_CFG 1_4 | BT_CFG 2_6 | BT_CFG 2_5 | BT_CFG 2_4 | BT_CFG 2_3 |- | Serial Download | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |- |} ===cpu=== root@arm:~# 7za b 10231 7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs) RAM size: 999 MB, # CPU hardware threads: 4 RAM usage: 850 MB, # Benchmark threads: 4 Dict Compressing | Decompressing Speed Usage R/U Rating | Speed Usage R/U Rating KB/s % MIPS MIPS | KB/s % MIPS MIPS 22: 1415 295 467 1377 | 32708 369 800 2951 23: 1371 288 485 1397 | 34368 390 807 3145 24: 1397 302 497 1502 | 33696 387 807 3126 25: 1385 308 513 1581 | 29002 381 716 2727 ====cpu overclocking==== read: http://nixdev.com/?p=365 ====CPU temperture==== cat /sys/devices/virtual/thermal/thermal_zone0/temp ====Read Unique ID (UID)==== cat /sys/fsl_otp/HW_OCOTP_CFG0 #First word of UID cat /sys/fsl_otp/HW_OCOTP_CFG1 #Second word of UID ===vpu=== https://community.freescale.com/servlet/JiveServlet/download/397728-273951/i.MX5x_Linux_VPU_API.pdf ===gpu=== ===DDR Calibration=== guide: http://www.imx6rex.com/software/how-to-run-ddr3-calibration-on-imx6/ official pdf: http://cache.freescale.com/files/32bit/doc/app_note/AN4467.pdf ===sata=== recognize by default insert(tested with laptop hdd and ssd) ===Gigabit Nic=== ====Set default MAC address==== Warning! Once the address is set, it cannot be changed any more! Write MAC value into file below: /sys/fsl_otp/HW_OCOTP_MAC0 #(low 32 bits) /sys/fsl_otp/HW_OCOTP_MAC1 #(high 16 bits) e.g: Set e6:b8:a8:fb:8b:0e as MAC: echo 0xE6B8 > /sys/fsl_otp/HW_OCOTP_MAC1 echo 0xA8FB8B0E > /sys/fsl_otp/HW_OCOTP_MAC0 ====throughput test==== average http download 10GB file to intel ssd, speed can reach 100%[===================================>] 10,689,893,531 31.4MB/s in 5m 26s ====ping loss test==== 10k packets sent via flood ping, zero loss root@arm:/mnt# ping -f 192.168.8.5 PING 192.168.8.5 (192.168.8.5) 56(84) bytes of data. .^C --- 192.168.8.5 ping statistics --- 93864 packets transmitted, 93864 received, 0% packet loss, time 32763ms rtt min/avg/max/mdev = 0.107/0.213/36.267/0.377 ms, pipe 3, ipg/ewma 0.349/0.16s ===hdmi=== on the very early stage of hardware debugging, we had reversed connector, resulting first pin to last pin. ===lvds=== # https://community.freescale.com/thread/311129 ===audio=== audio is recognized by default ===emmc=== We can see our emmc devices, Questions for answer: *https://community.freescale.com/thread/323746 *http://www.eewiki.net/display/linuxonarm/i.MX6q+SABRE+Board+for+Smart+Devices+Comments?focusedCommentId=32964762#comment-32964762 ===usb host=== working by default (but key/mouse only working with official fsl kernel) ===camera=== https://www.raspberrypi.org/help/camera-module-setup/ http://elinux.org/Rpi_Camera_Module ===i2c=== ===eeprom=== ===infrared=== ==software== ===yocto=== *fsl yocto guide: https://github.com/Freescale/fsl-community-bsp-platform *fsl yocto main page: https://community.freescale.com/docs/DOC-1616 *yocto tutorial: https://community.freescale.com/servlet/JiveServlet/previewBody/95096-102-10-7847/yocto_tutorial.pdf *bitbake commands: https://community.freescale.com/docs/DOC-94953 *freescale bsp http://freescale.github.io/ *imx6rex guide: http://www.imx6rex.com/software/how-to-start-with-yocto/ ===1080p resolution issue=== https://community.freescale.com/thread/323327 === ubuntu with vpu and gpu drivers === https://community.freescale.com/docs/DOC-95185 ==Android== preinstalls: sudo apt-get update sudo apt-get -y install git uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop curl u-boot-tools p7zip-full byobu htop ===4.4.3=== j2se 6: http://variwiki.com/index.php?title=VAR-SOM-MX6_Android_GS-java *variwiki: http://variwiki.com/index.php?title=VAR-SOM-MX6_Android_KK2_R01 * all android docs and dl: http://www.freescale.com/products/arm-processors/i.mx-applications-processors-based-on-arm-cores/i.mx-6-processors/i.mx6qp/android-os-for-i.mx-applications-processors:IMXANDROID?code=IMXANDROID&nodeId=012FC8ZrDRB24A4117&fpsp=1&tab=Documentation_Tab ==== sun java 1.6 required for imx6 kk4.4.3 ==== wget tx3.piza.cc/jdk-6u45-linux-x64.bin chmod a+x jdk-6u45-linux-x64.bin ./jdk-6u45-linux-x64.bin mv jdk1.6.0_45 /opt echo 'export PATH=/opt/jdk1.6.0_45:$PATH' >> ~/.bashrc export PATH=/opt/jdk1.6.0_45:$PATH ====get source==== cd ~ && mkdir -p bin && mkdir imx6_android_kk4.4.3 curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo cd ~/imx6_android_kk4.4.3 ~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.3_r1 ~/bin/repo sync -j2 ====get kernel + u-boot==== cd ~/imx6_android_kk4.4.3 git clone git://git.freescale.com/imx/linux-2.6-imx.git kernel_imx git checkout kk4.4.3_2.0.0-ga cd ~/imx6_android_kk4.4.3/bootable/bootloader git clone git://git.freescale.com/imx/uboot-imx.git uboot-imx cd uboot-imx git checkout kk4.4.3_2.0.0-ga ====patching==== cd /opt wget tx3.piza.cc/imx6_android/android_KK4.4.3_2.0.0-ga_core_source/code/KK4.4.3_2.0.0-ga.tar.gz tar -xvf KK4.4.3_2.0.0-ga.tar.gz cd ~/imx6_android_kk4.4.3 source /opt/android_KK4.4.3_2.0.0-ga_core_source/code/KK4.4.3_2.0.0-ga/and_patch.sh c_patch /opt/android_KK4.4.3_2.0.0-ga_core_source/code/KK4.4.3_2.0.0-ga imx_KK4.4.3_2.0.0-ga if ok: ************************************************************** Success: Now you can build the Android code for FSL i.MX platform ************************************************************** ====build==== cd ~/imx6_android_kk4.4.3 source build/envsetup.sh lunch sabresd_6dq-eng export BUILD_TARGET_DEVICE=SD make 2>&1 | tee build_sabresd_6dq_android.log ===other verions and dls=== * sabresd dl: http://www.freescale.com/products/arm-processors/i.mx-applications-processors-based-on-arm-cores/i.mx-6-processors/i.mx6qp/sabre-platform-for-smart-devices-reference-design-based-on-the-i.mx-6-series:RDIMX6SABREPLAT?fpsp=1&tab=Documentation_Tab ====Android 8.0 with repo==== Get full source package from smb://192.168.8.30/share/imx6/Android/src/android-imx-8.0.tar.gz, extract it into a directory as your work place. Be sure you have installed packages below (require root privilege): apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git-core curl u-boot-tools mtd-utils android-tools-fsutils openjdk-8-jdk Change directory into android_build, and use commands below: export LC_ALL=C source build/envsetup.sh lunch sabresd_6dq-user If you want to enable debug mode, use sabresd_6dq-userdebug in lunch command instead. Then use make command to build system images, images will be generated in out/target/product/sabresd_6dq. If you want to rebuild u-boot or kernel, use commands below: ./clean6dqbootimg.sh make bootimage && make recoveryimage && make U-boot source directory is vendor/nxp-opensource/uboot-imx, and kernel is vendor/nxp-opensource/kernel_imx. You can replace them with your own. But if you want to use different defconfig file or device tree, you may need to edit device/fsl/sabresd_6dq/BoardConfig.mk. ==etc info== ==overclocking== http://www.udoo.org/forum/udoo-mx6-overclocked-2ghz-t596.html https://community.freescale.com/thread/314572 ===key benefits=== * existing lvds, existing HDMI * mipi, csi interfaces for camera * consumer levels, industrial levels and automobile levels. * sata connection. * hardware accelerated video encoding/decoding ==Aimx6 Coreboard Hardwire Error== ===A3=== [[File:Imx6 a3 fixup.jpg|500px|right]] 1. AR8035 的配置电阻和AR8031不同,需要修改: MODE[3:0] Description 1100 RGMII, PLLOFF, INT; 1110 RGMII, PLLON, INT; Others Reserved MODE3 -> RXD3 MODE2 -> LED_1000 MODE1 -> RXD2 MODE0 -> RX_DV RX_CLK 1.8V/1.5V Select the RGMII/RMII I/O voltage level 1: 1.8V I/O 0: 1.5V I/O 需要修改配置电阻如下: R141移到R148;R146,R631去掉。 ===SA3=== ==Temperature sensor== /sys/devices/w1_bus_master1/28-*/w1_slave cat /sys/devices/w1_bus_master1/28-800000035d06/w1_slave ==boards== [[Actia test board]]