i.MXプロセッサ ナレッジベース

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

i.MX Processors Knowledge Base

ディスカッション

ソート順:
Requirements: Host machine with Ubuntu 14.04 UDOO Quad/Dual Board uSD card with at least 8 GB Download documentation and install latest Official Udoobuntu OS (at the moment of writing: UDOObuntu 2.1.2), https://www.udoo.org/downloads/   Overview: This document describes how to install and test Keras (Open source neural network library) and Theano (numerical computation library for python ) for deep learning library usage on i.MX6QD UDOO board.  Installation: $ sudo apt-get update && sudo apt-get upgrade update your date system: e.g. $ sudo date -s “07/08/2017 12:00” First satisfy the run-time and build time dependencies: $ sudo apt-get install python-software-properties software-properties-common make unzip zlib1g-dev git pkg-config autoconf automake libtool curl  python-pip python-numpy libblas-dev liblapack-dev python-dev libatlas-base-dev gfortran libhdf5-serial-dev libhdf5-dev python-setuptools libyaml-dev libpython2.7-dev $ sudo easy_install scipy The last step is installing scipy through pip, and can take several hours. Theano First, we have a few more dependencies to get: $sudo pip install scikit-learn $sudo pip install pillow $sudo pip install h5py With these dependencies met, we can install a stable Theano release from the git source: $ git clone https://github.com/Theano/Theano $ cd Theano Numpy 1.9 cause conflicts with armv7, so we need to change the setup.py configuration: $ sudo nano setup.py Remove line    #       install_requires=['numpy>=1.9.1', 'scipy>=0.14', 'six>=1.9.0'], And add setup_requires=["numpy"], install_requires=["numpy"], Then install it: $ sudo python setup.py install Keras The installation can occur with the command: (this could take a lot of time!!!) $ cd .. $ git clone https://github.com/fchollet/keras.git $ cd keras $ sudo python setup.py install $ LC_ALL=C $sudo pip install --upgrade keras After Keras is installed, you will want to edit the Keras configuration file ~/.keras/keras.json to use Theano instead of the default TensorFlow backend. If it isn't there, you can create it. This requires changing two lines. The first change is: "image_dim_ordering": "tf"  --> "image_dim_ordering": "th" and the second: "backend": "tensorflow" --> "backend": "theano" (The final file should look like the example below) sudo nano ~/.keras/keras.json {     "image_dim_ordering": "th",     "epsilon": 1e-07,     "floatx": "float32",     "image_data_format": "channels_last",     "backend": "theano" } You can also define the environment variable KERAS_BACKEND and this will override what is defined in your config file : $ KERAS_BACKEND=theano python -c "from keras import backend" Testing Quick test: udooer@udoo:~$ python Python 2.7.6 (default, Oct 26 2016, 20:46:32) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import keras Using Theano backend. >>>  Test 2: Be aware this test take some time (~1hr on udoo dual): $ curl -sSL -k https://github.com/fchollet/keras/raw/master/examples/mnist_mlp.py | python Output: For demonstration, deep-learning-models repository provided by pyimagesearch and from fchollet git, and also have three Keras models (VGG16, VGG19, and ResNet50) online — these networks are pre-trained on the ImageNet dataset, meaning that they can recognize 1,000 common object classes out-of-the-box. $ cd keras $ git clone https://github.com/fchollet/deep-learning-models $ Cd deep-learning-models $ ls -l Notice how we have four Python files. The resnet50.py , vgg16.py , and vgg19.py  files correspond to their respective network architecture definitions. The imagenet_utils  file, as the name suggests, contains a couple helper functions that allow us to prepare images for classification as well as obtain the final class label predictions from the network Classify ImageNet classes with ResNet50 ResNet50 model, with weights pre-trained on ImageNet. This model is available for both the Theano and TensorFlow backend, and can be built both with "channels_first" data format (channels, height, width) or "channels_last" data format (height, width, channels). The default input size for this model is 224x224. We are now ready to write some Python code to classify image contents utilizing  convolutional Neural Networks (CNNs) pre-trained on the ImageNet dataset. For udoo Quad/Dual use ResNet50 due to avoid space conflict. Also we are going to use ImageNet (http://image-net.org/) that is an image database organized according to the WordNet hierarchy, in which each node of the hierarchy is depicted by hundreds and thousands of images. from keras.applications.resnet50 import ResNet50 from keras.preprocessing import image from keras.applications.resnet50 import preprocess_input, decode_predictions import numpy as np   model = ResNet50(weights='imagenet')   #for this sample I download the image from: http://i.imgur.com/wpxMwsR.jpg  img_path = 'elephant.jpg' img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x)   preds = model.predict(x) # decode the results into a list of tuples (class, description, probability) # (one such list for each sample in the batch) print('Predicted:', decode_predictions(preds, top=3)[0]) Save the file an run it. Results for elephant image: Top prediction was 0.8890 for African Elephant Testing with this image: http://i.imgur.com/4FIOwAN.jpg Results: Top prediction was: 0.7799 for golden_retriever. Now your Udoo is ready to use Keras and Theano as Deep Learning libraries, next time we are going to show some usage example for image classification models with OpenCV. References: GitHub - fchollet/keras: Deep Learning library for Python. Runs on TensorFlow, Theano, or CNTK.  GitHub - Theano/Theano: Theano is a Python library that allows you to define, optimize, and evaluate mathematical expres…  GitHub - fchollet/deep-learning-models: Keras code and weights files for popular deep learning models.  Installing Keras for deep learning - PyImageSearch 
記事全体を表示
The attched package includes mbedTLS and DCP/RNGB driver based on SDK2.2, you can apply it on Windows Installer: MCUXpresso SDK2.2 for i.MX 6ULL 1. fsl_dcp.c/fsl_dcp.h and fsl_rngb.c/fsl_rngb.h under devices\MCIMX6Y2\drivers is dcp ang rngb driver. 2. Some files under middleware\mbedtls-2.4.0\port\sdk are porting code for mbedTLS 3. Example codes are under folder boards\evkmcimx6ull which have driver example and mbedTLS example. 4, The patch package only support IAR toolchain. 5, Due to SDK don't support allocation of non-cachable memory dynamically, so some static non-cachable bufferes in sdk_mbedtls.c is used for shared memory with hareware. So mbedTLS don't be used for multi-thread concurrently.
記事全体を表示
The attched package includes mbedTLS and CAAM driver based on SDK2.2, you can apply it on Windows Installer: MCUXpresso SDK2.2 for i.MX 6UltraLite 1. fsl_caam.c and fsl_caam.h under devices\MCIMX6G3\drivers is CAAM driver. 2. Some files under middleware\mbedtls-2.4.0\port\sdk are porting code for mbedTLS 3. Example codes are under folder boards\evkmcimx6ul which have driver example and mbedTLS example. 4, The patch package only support IAR toolchain. 5, Due to SDK don't support allocation of non-cachable memory dynamically, so some static non-cachable bufferes in sdk_mbedtls.c is used for shared memory with hareware. So mbedTLS don't be used for multi-thread concurrently.
記事全体を表示
as we known, mx6sx doesn’t have IPU, if we need to resize, rotation or blending…., we can use pxp module, this part, we talk about rotation for example. We also can use GPU for rotation, but in imx6sx, the number after 6sx in the part number stands for the chip including gpu or not, the number 4 and 3 mean mx6sx has gpu, like MCIMX6X3EVN10AB. and 1,2 and 3 mean mx6sx doesn’t have gpu, like MCIMX6X2EVN10AB for gpu, we know we can use xrander to rotate ,in this part, we focus on pxp rotation the stesp: enable pxp in the kernel:               $ bitbake -c menuconfig linux-imx, then choose Device Drivers ---> DMA Engine support ---> [*] MXC PxP support [*] MXC PxP Client Device 2) download the built image from tmp/deploy/images/imx6sxsabresd 3) boot up the board, then you can find the pxp_v4l2_test.out in the unit test 4) use the command as below to test the rotation: ./pxp_v4l2_test.out -sx 480 -sy 272 -res 352:240 -a 100  -r 90 fb-352x240.yuv BLANK   Sx and sy is resolution for display, -res is resolution for image or video. -r is for rotaion, you can set 0,90,180 and 270 for it. I attach the fb-352x240.yuv for testing
記事全体を表示
       Of all the i.MX serials SoC, i.MX28/i.MX6UL/i.MX7D/S use Synchronous Audio Interface(SAI) to support audio applications. SAI supports I2S, AC97, TDM and code/DSP interfaces. The SAI interface consists of these signals: SAI_MCLK         ------------  used to provide working clock for external audio device , such as audio codec. SAI_RX_BCLK  ------------  bit clock for receiving channle. SAI_RX_DATA   ------------  data of receiving channel. SAI_RX_SYNC  ------------  Frame Synchronous signal of Left and right channel for receiving channel. SAI_TX_BCLK  ------------  bit clock for transmitting channel. SAI_TX_DATA   ------------  data of transmitting channel SAI_TX_SYNC  ------------  Frame Synchronous signal of Left and right channel for transmitting channel.         According to above signals, SAI has 2 channels: receive and transmit, and these 2 channels have their own clock: bit clock and frame SYNC, so they can work independently, it means PLAY and CAPTURE can be operated simultaneously, that is to say, SAI works at Asynchronous mode this moment.        In the document, we will discuss several usages of SAI on hardware design when it works at I2S(SYNC) mode. we will take i.MX6UL as an example, and for i.MX7D/S, usages are similar. 1. IOMUX of SAI From i.MX6UL reference manual, there are 3 SAI modules in i.MX6UL: SAI1 , SAI2 & SAI3, see page 2529 in IMX6ULRM.pdf. As common applications, we will use 2 interface of SAIs. 2. Hardware connections for I2S mode Either CPU is Master or Codec is Master, hardware connections are same. (1) Single audio codec or (2) Dual audio codec (3) Audio codec + Bluetooth PCM or (4) Audio codec + Bluetooth PCM + 4G PCM or     [Note]   Attachments are schematics of WM8958 and MAX98089, which are not released by NXP, just for users who are interested in i.MX audio applications reference. If you want to use WM98089 or WM8958, please contact their manufactures and confirm if schematics are correct, so don't use them directly for your solution. NXP China TIC i.MX team Weidong Sun
記事全体を表示
  Some our customers want to use the mfgtool to download the images to QSPI and boot up. When download the demo images on our website (Linux 4.1.15) to the QSPI-NOR on IMX7D SABRE-SDB. The error occurred as follows: Is it able to program the QSPI-NOR on i.MX7D SABRE-SDB by using MFG-Tool? Answer is yes. In the above error message we can see that the system can not find and detect the qspi, so it can not excute the following code,<CMD state="body="$ flash_erase /dev/mtd0 0 20">Erasing Boot partition</CMD>Updater" type="push" when use the mfgtool to download the images to the QSPI-NOR . The board i.MX7D SABRE-SDB and default BSP are boot up from EPDC.  Here customer want to boot up from QSPI, When using QSPI, you need to de-populate R388-R391, R396-R399 and populate R392-R395, R299, R300 in your hardware. QSPI signals are muxed with EPDC_D[7:0]. You can see the schematic, details you can see as follow. After hardware modify, you can use the mfgtool2-yocto-mx-sabresd-qspi-nor-mx25l51245g.vbs to download. And then boot up from qspi, boot mode you can refer to the schematic boot up setting. Both software and mfgtool you can download here http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-processors/i.mx-software-and-tools:IMXSW_HOME. Demo images can documents you can also get.    
記事全体を表示
The Linux L4.1.15_2.1.0 for i.MX 6SLL Release is now available on www.nxp.com.   Files available: # Name Description 1 fsl-yocto-L4.1.15_2.1.0-ga.tar.gz Linux BSP Documentation for L4.1.15_2.1.0. Includes Release Notes, User Guide. 2 L4.1.15_2.1.0-ga_images_MX6SLL.tar.gz i.MX 6SLL EVK Linux Binary Demo Files 3 L4.1.15_2.1.0-ga_mfg-tools.tar.gz i.MX Manufacturing Toolkit for Linux L4.1.15_2.1.0 BSP 4 imx-aacpcodec-4.2.0.tar.gz Linux AAC Plus Codec for L4.1.15_2.1.0   Target boards: i.MX 6SLL EVK Board   Features: See detail features in Release Notes   Known Issues: For known issues and more details please consult the Release Notes.   Information of release, see: README: http://git.freescale.com/git/cgit.cgi/imx/fsl-arm-yocto-bsp.git/tree/README?h=imx-4.1-krogoth ChangeLog: http://git.freescale.com/git/cgit.cgi/imx/fsl-arm-yocto-bsp.git/tree/ChangeLog?h=imx-4.1-krogoth
記事全体を表示
(   converted from discussion created by Alfred Latypov   IMX6 PCI with external cloks  )    Hello, I had a problem, to launch a board with an imx6 solo processor with a pci-express, and with external clock. I'll tell you my decision. On my motherboard there is a pci-switch PI7C9X2G606 from Pericom with 4 endpoints of Intel type 82574 ethernet controller. I used the Linux kernel version 4.9.16 In the device-tree file, I used the following options to enable external clocks for CLK1 input gate (100MHz). Sorry, I had to change the root imx6 device tree file. See attached (imx6*.dtsi) files. From ..kernel/arch/arm/boot/dts/.. Add anatop external clock source for clocks section, and change clk source for pcie-phy. ... anaclk1 {             compatible = "fixed-clock";             reg = <0>;             #clock-cells = <0>;             clock-frequency = <100000000>;  /* 100MHz */         }; ... Change pcie section ...         pcie: pcie@0x01000000 {             compatible = "fsl,imx6q-pcie", "snps,dw-pcie";             reg = <0x01ffc000 0x04000>,                   <0x01f00000 0x80000>;             reg-names = "dbi", "config";             #address-cells = <3>;             #size-cells = <2>;             device_type = "pci";             ranges = <0x81000000 0 0          0x01e00000 0 0x00100000 /* downstream I/O */                   0x82000000 0 0x01000000 0x01000000 0 0x00e00000>; /* non-prefetchable memory */             /* ranges = <0x81000000 0 0          0x01f80000 0 0x00010000                   0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; */             num-lanes = <1>;             interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;             interrupt-names = "msi";             #interrupt-cells = <1>;             interrupt-map-mask = <0 0 0 0x7>;             interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,                             <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,                             <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,                             <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;             clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,                  <&clks IMX6QDL_CLK_LVDS1_IN>,                  <&clks IMX6QDL_CLK_SATA_REF_100M>;             clock-names = "pcie", "pcie_bus", "pcie_phy";             status = "disabled";         }; ... and add new source clocks dependencies: .... &clks {         assigned-clocks = <&clks IMX6QDL_PLL6_BYPASS_SRC>,                           <&clks IMX6QDL_PLL6_BYPASS>;                                   assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS1_IN>,                                  <&clks IMX6QDL_PLL6_BYPASS_SRC>;         assigned-clock-rates = <100000000>, <100000000>; }; .... for your board dtsi. I could not start the pcie-bus with the function Gen2. Next, I needed to change the bus driver (pci-imx6.c), for fine tuning the bus clock frequency. I add MPLL frequency services functions (Thanks for Charle Powe i.MX6Q: Using an external reference for PCIe 😞 ... static void imx_pcie_override_phy_mpll(struct pcie_port *pp, u32 mpll_multiplier, u32 ref_clkdiv2) {     u32 ref_usb2_en;     u32 reg1;               pr_info("Overriding PCIe PHY MPLL config: multiplier = %d, clkdiv2 = %d\n",         mpll_multiplier, ref_clkdiv2);                   // set MPLL to disabled     ////pcie_phy_write(pp->dbi_base, PCIE_PHY_MPLL_OVRD_IN_LO, 0x0001);          // set MPLL multiplier         pcie_phy_write(pp->dbi_base, PCIE_PHY_MPLL_OVRD_IN_LO,             (0x0001<<9 | (mpll_multiplier<<2)) & 0x03fc);          /*      * set the ref_clkdiv2.  when this override is enabled it      * overrides both ref_clkdiv2 and ref_usb2_en.  make sure      * the overriden ref_usb2_en reflects the original value.      */          pcie_phy_read(pp->dbi_base, PCIE_PHY_ATEOVRD, &reg1);          ref_usb2_en = (reg1 >> 1) & 0x1;        /* set the current value of ref_usb2_en as the override */          /* set the ref_clkdiv2 override  */          /* enable the ref_clkdiv2 override */          pcie_phy_write(pp->dbi_base, PCIE_PHY_ATEOVRD,             (ref_usb2_en << 1) | ref_clkdiv2 | (0x1 << 2));             /* enable MPLL */         ///pcie_phy_write(pp->dbi_base, PCIE_PHY_MPLL_OVRD_IN_LO, 0x0003);          } ... call this function in pcie_hos_init ... static void imx6_pcie_host_init(struct pcie_port *pp) {     imx6_pcie_assert_core_reset(pp);            imx6_pcie_init_phy(pp);            imx6_pcie_deassert_core_reset(pp);        imx_pcie_override_phy_mpll(pp, 50, 1); /* tune this */          dw_pcie_setup_rc(pp);     imx6_pcie_establish_link(pp);      if (IS_ENABLED(CONFIG_PCI_MSI))         dw_pcie_msi_init(pp); } ... See documentation for p.p. IMX6DLRM 50.5.1.2. Tune <pci_hotplug_mem_size> global variable for optimal pci window sizes enumeration. See for my imx6_add_pcie_port call. If you use a FEC module, it will stop working. You must use an external clock as specified in the documentation (http://cache.freescale.com/files/32bit/doc/user_guide/IMX6DQ6SDLHDG.pdf ). Changes are shown in the attached dtsi file. For clocks segment ... rmii_clk: clock@0 {             compatible = "fixed-clock";             reg = <0>;             #clock-cells = <0>;             clock-frequency = <50000000>;  /* 50MHz */         }; ... and for fec: ... fec: ethernet@02188000 {                 compatible = "fsl,imx6q-fec";                 reg = <0x02188000 0x4000>;                 interrupts-extended =                     <&intc 0 118 IRQ_TYPE_LEVEL_HIGH>,                     <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;                 clocks = <&clks IMX6QDL_CLK_ENET>,                      <&clks IMX6QDL_CLK_ENET>,                      <&rmii_clk>;                 clock-names = "ipg", "ahb", "ptp";                 status = "disabled";             }; ... If they are not required, disable this editing this file. Thanks for all. Sorry for my bad English. Alfred <[email protected]> This document was generated from the following discussion: IMX6 PCI with external cloks
記事全体を表示
  IMX6 UL boot process is described in Chapter 8 (System Boot) of the Reference Manual. Also you may look at the following Community regarding i.MX6 boot ROM activity. How to build bootable SD image (for i.MX6 SL as example)  U-boot is used as Linux bootloader and U-boot image should be located in SD area, used by i.MX6 boot ROM. The simplest way to get bootable SD card is just to copy system image in so called .sdcard format. Such image is prepared in Yocto by default and can be transfered to SD card with Linux dd command or Windows win32diskimager utility. Guide to the .sdcard format  Win32 Disk Imager download | SourceForge.net   The full SD image (.sdcard) should contain all parts, needed for Linux boot (U-boot, kernel, dtb, file system), maybe except U-boot environment. Carry out the following command to copy the SD card image to the SD/MMC card. Change sdx below to match the one used by the SD card. $ sudo dd if=<image name>.sdcard of=/dev/sdx bs=1M && sync   Note, U-boot environment (described below) should be set (and saved) in U-boot after the first start.   In any case it makes sense to understand general structure and implementation details of bootable SD card. Instructions are provided in section 4.3 (Preparing an SD/MMC card to boot) of i.MX Linux® User's Guide in Linux doc package (L4.1.15_2) http://www.nxp.com/webapp/Download?colCode=L4.1.15_2.1.0_LINUX_DOCS&Parent_nodeId=1337699481071706174845&Parent_pageType…  Summary page : i.MX 6 / i.MX 7 Series Software and Development Tool|NXP    For a Linux image to be able to run, four separate pieces are needed: • Linux OS kernel image (zImage) • Device tree file (*.dtb) • U-Boot bootloader image • Root file system (*.ext3 or *.ext4)   The mentioned files may be found in demo images on NXP Web or generated with Yocto. After a build is complete, the created image resides in <build directory>/tmp/deploy/images The device tree file (.dtb) contains board and configuration-specific changes to the kernel. Change the device tree file to change the kernel for a different i.MX board or configuration.    By default, the kernel image and DTB are located on FAT partition without a fixed raw address on the SD card. Generally fix addresses / blocks of SD card may be applied for kernel and DTB location. The users have to change the U-Boot boot environment if the fixed raw address is required. In example below the following image layout on SD card is assumed : Start address (sectors) = 0x400 bytes (2) for U-boot (i.MX6 boot ROM reads first 4K bytes of SD card). Start address (sectors) = 0xa00000 bytes (20480) for FAT partition, size=500MB, intended for Kernel zImage and DTBs. Start address (sectors) = 0x25800000 bytes (1228800) for rootfs.    Preparing the card   An SD/MMC card reader, such as a USB card reader, is required. Any Linux distribution can be used. Further follow instructions in sections 4.3.1 (Preparing the card), 4.3.3 (Partitioning the SD/MMC card), 4.3.4 (Copying a bootloader image), 4.3.5 (Copying the kernel image and DTB file), 4.3.6 Copying the root file system (rootfs) of attached "i.MX_Graphics_User's_Guide.pdf". The next step - try to insert the SD card to slot in i.MX6UL board, select proper boot options for SD boot and power the system. U-boot prompt should appear. Finally it is needed to configure environment for further Linux boot from SD. U-Boot > setenv mmcdev 1 U-Boot > setenv mmcpart 1 U-Boot > setenv mmcroot '/dev/mmcblk1p2 rootwait rw' U-Boot > setenv loadaddr 0x80800000 U-Boot > setenv fdt_addr=0x83000000 U-Boot > setenv fdt_file imx6ul-9x9-evk.dtb U-Boot > setenv mmcpart 1 U-Boot > setenv loadfdt 'fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}' U-Boot > setenv loadkernel 'fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage' U-Boot > setenv bootcmd 'mmc dev ${mmcdev}; run loadkernel; run mmcargs; run loadfdt; bootz $ {loadaddr} - ${fdt_addr};' U-boot > saveenv fdt_file should be set for your case ( on example “imx6ul-9x9-evk.dtb”) Try reboot with new environment.
記事全体を表示
This tutorial guides on setting up and running the NFC Demo App using the PN7120 NFC Click board with the i.MX 7Dual SABRE-SD and its mikroBUS socket compatible: MikroE NFC Click Board on i.MX7D - i.MXDev Blog
記事全体を表示
Revisions Revisions Description Details V1.0 Initial version   V1.2 Make a little update 1. Modify the path of the toolchain 2. Remove the command: make menuconfig 3. Modify the path of folder "out" in some commands   Hardware Requirement PC Host: Ubuntu for compiling, Windows for downloading and debugging Target: i.MX6ULL 14x14 EVK with LCD or HDMI TF card USB cables for console and download Power adapter Overview Ubuntu uses the same packaging management system (deb and apt) and with each development cycle pulls in the latest packages from Debian and then adapts them to Ubuntu specifics and adds more features and patches where necessary. They also push changes back to Debian and often developers are Ubuntu and Debian developers. Both of them have a nice UI and can install softwares easier than Yocto. The purpose of this doc is to install the Debian 8 Jessie Rootfs on NXP i.MX6ULL EVK Board. The doc contains several steps as following:    1. Download and compile the u-boot, kernel and dtb.    2. Get and modify the linaro rootfs.    3. Download all things to the SD card via MfgTool.    4. Run the Debian 8 Jessie in the board. Download and compile the u-boot, kernel and dtb.    a. Download the toolchain cd ~/ wget -c https://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.02-i686_arm-linux-gnueabihf.tar.xz mkdir toolchain tar xvf gcc-linaro-6.3.1-2017.02-i686_arm-linux-gnueabihf.tar.xz -C toolchain/ --strip-components 1 export ARCH=arm export CROSS_COMPILE=../toolchain/bin/arm-linux-gnueabihf- mkdir out    b. Download and make the u-boot cd ~/ wget -c http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/snapshot/uboot-imx-imx_v2016.03_4.1.15_2.0.0_ga.tar.bz2 mkdir uboot-imx tar jxvf uboot-imx-imx_v2016.03_4.1.15_2.0.0_ga.tar.bz2 -C uboot-imx/ --strip-components 1 cd uboot-imx make mx6ull_14x14_evk_defconfig make    c. Download and make the kernel and dtb cd ~/ wget -c http://git.freescale.com/git/cgit.cgi/imx/linux-imx.git/snapshot/linux-imx-imx_4.1.15_2.0.0_ga.tar.bz2 mkdir linux-imx tar jxvf linux-imx-imx_4.1.15_2.0.0_ga.tar.bz2 -C linux-imx/ --strip-components 1 cd linux-imx vi arch/arm/configs/imx_v7_defconfig Add a line “CONFIG_FHANDLE=y” in the file to prevent the error when boot into rootfs. ****************************************************************************** Note: If you want to use the HDMI port instead of LCD to output the screen, you should modify the file /arch/arm/boot/dts/imx6ull-14x14-evk.dts to add a child node in &i2c2 : sii902x: sii902x@39 {         compatible = "SiI,sii902x";         pinctrl-names = "default";         interrupt-parent = <&gpio2>;         interrupts = <13 IRQ_TYPE_EDGE_FALLING>;         mode_str ="1280x720M@60";         bits-per-pixel = <16>;         reg = <0x39>;         status = "okay"; }; ****************************************************************************** make imx_v7_defconfig make -j4 zImage dtbs    d. Copy the u-boot, kernel and dtb to a folder cd ~/ sudo cp uboot-imx/u-boot.imx  out/ sudo cp linux-imx/arch/arm/boot/zImage  out/ sudo cp linux-imx/arch/arm/boot/dts/imx6ull-14x14-evk.dtb  out/ Get and modify the linaro rootfs. cd ~/ wget -c https://releases.linaro.org/debian/images/alip-armhf/16.04/linaro-jessie-alip-20160428-22.tar.gz mkdir rootfs tar xvf linaro-jessie-alip-20160428-22.tar.gz -C rootfs/ --strip-components 1 cd rootfs tar jcvf linaro-jessie-alip-20160428-22.tar.bz2 ./* sudo mv linaro-jessie-alip-20160428-22.tar.bz2  ../out Now the uboot, kernel, dtb and rootfs are ready in folder ~/out/!   Download all things to the SD card via MfgTool. Download the MfgTool in: http://www.nxp.com/products/automotive-products/microcontrollers-and-processors/arm-mcus-and-mpus/i.mx-application-processors/i.mx-6-processors/sabre-board-for-smart-devices-based-on-the-i.mx-6quad-applications-processors:RD-IMX6Q-SABRE?tab=Design_Tools_Tab Select the “IMX6_L4.1.15_2.0.0_MFG-TOOL” and download. Extract “L4.1.15_2.0.0-ga_mfg-tools.tar.gz” to Windows, and then extract again the “mfgtools-with-rootfs.tar.gz” to <your path>/mfgtools/. You should rename the files in the folder ~/out/ and copy to the path <your path>/mfgtools/Profiles/Linux/OS Firmware/files/ to replace the original files: u-boot.imx -> u-boot-imx6ull14x14evk_sd.imx zImage -> zImage imx6ull-14x14-evk.dtb -> zImage-imx6ull-14x14-evk.dtb linaro-jessie-alip-20160428-22.tar.bz2 -> rootfs_nogpu.tar.bz2 Switch the SW602 in i.MX6ULL EVK board to D1: off, D2: on, insert the TF card in slot SD2 and power on the board. Connect the board with PC by two micro-USB to USB cables(one is for downloading and another is for watching log) Finally, open the script “mfgtool2-yocto-mx-evk-sdcard-sd2.vbs” in the <your path>/mfgtools/. When the “HID-compliant device” shows then click “Start”.   If the processing is done, all things have been download to the board and you can go to the next step. Run the Debian 8 Jessie in the board. The following table shows the DIP switch settings for booting from the TF slot. Switch D1 D2 D3 D4 SW601 OFF OFF ON OFF SW602 ON OFF - -   Then power on the board and the logs will show in the serial console. Debian 8 will automatic login to root. ****************************************************************************** Note: If you want to use the HDMI port instead of LCD to output the screen, you should press any key when the log: Hit any key to stop autoboot shows and change the bootargs like following example: setenv bootargs console=ttymxc0,115200 init=/init video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=256M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M saveenv ****************************************************************************** When inputting “startx &” in serial console, the alip GUI will appear in the screen.   You can also use command ”apt-get” to install softwares(E.g. Firefox as following). ****************************************************************************** Note: If you have issues with “sudo” on user UID, need to execute the following commands: root@linaro-alip:~# chown root:root /usr/bin/sudo root@linaro-alip:~# chmod 4755 /usr/bin/sudo root@linaro-alip:~# chown root:root /usr/lib/sudo/sudoers.so root@linaro-alip:~# chown root:root /etc/sudoers root@linaro-alip:~# chown root:root /etc/sudoers.d/ root@linaro-alip:~# chown root:root /etc/sudoers.d/README   Note: If you have issues with “su” from user to root, need to execute the following commands: root@linaro-alip:~# chown root:root /bin/su root@linaro-alip:~# chmod 4755 /bin/su   Note: If you want to disable the warning window “Failed to apply network settings” after executing command “startx &”, you should deactive the Bluetooth: root@linaro-alip:~# sudo systemctl stop bluetooth.service root@linaro-alip:~# sudo systemctl disable bluetooth.service ******************************************************************************
記事全体を表示
Description       this doc is explain how to develop a audio card driver base on i.MX6 platform. which explain the ASOC architecture struction basic knowledage and then give some sample for the audio driver development like: 1:NXP SGTL5000: NXP i.MX BSP sabrelite board default support it. 2: Wolfson WM8524.    A: 3.0.35 BSP support: i.MX6 setbox BSP support it:(which in elder fsl community link and out of data)    B: 3.14.28 BSP support pls check attachment: 3: Wolfson WM8960.     which include how to add the android middle-layer and driver, pls check attachment. 4: TI TLV320AIC3120      which include how to add the android middle-layer and driver, pls check attachment. 5: TI TLV320AIC3X   Products Product Category NXP Part Number URL MPU i.MX6 Family https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-6-processors:IMX6X_SERIES   Tools NXP Development Board URL i.MX6 SabreSDP https://www.nxp.com/design/development-boards:EVDEBRDSSYS#/collection=softwaretools&start=0&max=25&query=typeTax%3E%3Et633::archived%3E%3E0::Sub_Asset_Type%3E%3ETSP::deviceTax%3E%3Ec731_c380_c127_c126&sorting=Buy%2FSpecifications.desc&language=en&siblings=false which have a doc MX6X_ASOC_V5-20191115.pdf and related driver sample codes.
記事全体を表示
MX6UL_Development_database_2017.4.21_V7.doc
記事全体を表示
MX7D_DDR3_压力测试应用手册_V1_201611108.doc
記事全体を表示
MX6UL_DDR3_调校_应用手册_V3_20160511.doc
記事全体を表示
MX6X_DDR3_调校_应用手册_V4_20150730.doc
記事全体を表示
MX6X_eMMC_turning_2014.11.11_V2.doc
記事全体を表示
MX6X_Uboot_V1-20130910.doc: 3.0.35: 3.0.35
記事全体を表示
i.MX6X_内核驱动代码与定制_V2-20150518.doc: 3.0.35
記事全体を表示
MX6X_3.14.28_Uboot_V1-20150917.doc
記事全体を表示