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

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

i.MX Processors Knowledge Base

ディスカッション

ソート順:
The i.MX 6 D/Q L3.035_1.0.2 patch release is now available on the www.freescale.com ·         Files available # Name Description 1 L3.0.35_1.0.2_LDO_PATCH This patch release is based on the i.MX 6Dual/6Quad Linux   12.09.01 release. The purpose of this patch release is to manage the LDO and   PMIC ramp-up time correctly.
記事全体を表示
       Overview The purpose of this document is to describe how to enable Bluetooth on i.MX 6Dual/Quad SabreSD board (RevC) for Android software. Hardware Changes i.MX 6Dual/Quad SabreSD board doesn't enable Bluetooth connection by default. To support bluetooth, the hardware rework is required. The above diagram shows the reserved connections for Bluetooth in SabreSD RevC board (All connections are marked as "DNP"). This Bluetooth cable connector is designed specifically for the WiFi/BT combo card SX-SDCAN-2830BT which is developed and sold by Silex Technology. Note that pin 1 (BT_DISABLE) of the cable connector on i.MX 6Dual/Quad SabreSD RevC is opposite Pin 20 of the WiFi/BT module. Note: when connecting Silex module and J13, the connection is reverted (For example, PIN 1 in J13 connects to PIN 20 in Silex module). To use the J13 connector, the following reworks are required:   R209-R211, R214-R215 need to be populated.           Where is them, you can refer to the below chart.   SPI nor flash U14 need to be depopulated. No other AUX boards should be connected.. Exchange UART5_RXD and UART5_TXD. Orange PAD connects to Orange PAD. Green PAD connects to Green PAD.      After hardware rework, the Bluetooth connection will like the following:   Pin on Silex Module Sabresd Board Mux Pad Pin-2  BT_UART_RTS  (output) UART5.RTS   (input) MX6Q_PAD_KEY_COL4__UART5_RTS Pin-3  BT_UART_TXD   (output) UART5.RXD   (input) MX6Q_PAD_KEY_ROW1__UART5_RXD Pin-4  BT_UART_CTS   (input) UART5.CTS   (output) MX6Q_PAD_KEY_ROW4__UART5_CTS Pin-5  BT_UART_RXD   (input) UART5.TXD   (output) MX6Q_PAD_KEY_COL1__UART5_TXD Pin-14  BT_PWD_L       (input) GPIO_2         (output) MX6Q_PAD_GPIO_2__GPIO_1_2   Software Information For earlier android version before Jelly Bean4.2 Take ICS as an example, for we didn't do this work when our last ICS version R13.4.1 released. So our formal release had no support on BT. Here will give out patches based on R13.4.1. Enable Bluetooth with the following setting (e.g. device/fsl/imx6/sabresd/init.rc)      # No bluetooth hardware present -    setprop hw.bluetooth 0 +    setprop hw.bluetooth 1 Ensure BOARD_HAVE_BLUETOOTH := true in device/fsl/imx6/sabresd/SabreSDBoardConfigComm.mk. Add BT feature support in device/fsl/imx6/sabresd/required_hardware.xml: <permissions>      <feature name="android.hardware.camera" /> +    <feature name="android.hardware.bluetooth" />   Add UART5 support in kernel: In this step you can refer to the attached (kernel patch for UART5 based on ICS.zip) to change PinMux PAD configuration for UART5.   Add AR3002 BT firmware support: Update external/linux-firmware with the attached patch(0001-ENGR00270791-BT-add-AR3002-firmware-support.patch) to add AR3002 BT firmware support for Silex's BT is AR3002.   Then you can manually run the command “hciattach -n -s 115200 /dev/ttymxc4 ath3k 115200 flow nosleep” in console to see whether bluetooth can attach HCI successfully.   At last, you need add rfkill for BT reset in kernel, here also give a patch for reference: 0001-ENGR00270791-BT-add-rfkill-for-bt-reset.patch   BT is not enable in kernel default. You can control whether to enable it in bootargs like the following  in device/fsl/sabresd_6dq/BoardConfig.mk. BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale  bluetooth For android version since Jelly Bean4.2 From Jelly Bean4.2, Bluez is no longer used.Android provides a default Bluetooth stack, BlueDroid, that is divided into two layers: The Bluetooth Embedded System (BTE), which implements the core Bluetooth functionality and the Bluetooth Application Layer (BTA), which communicates with Android framework applications. A Bluetooth system service communicates with the Bluetooth stack through JNI and with applications through Binder IPC. The system service provides developers access to various Bluetooth profiles. The following diagram shows the general structure of the Bluetooth stack: For bluedroid, we have supported it in our formal release including Android4.3. You can get it from our website. Or just get HAL code from attached(libbt-ath3k.zip). Known issue For  KEY_COL4 is both used by uart5 and pcie,  if you enable BT, 3G  mobile will not work. For its power disable pin is conflict with uart5's UART_RTS. This is also why we didn't enable BT in formal release. Supported and tested profile workable profile not tested profile Hid Handset & Handfree(not support for hardware restrict) A2DP Pbap Opp Pan
記事全体を表示
With Qt5  you will find the addition of new technologies that will make your development much easier. Qtquick2 SceneGraph Qml Qt5 is backwards compatible,  that means you can run your Qt 4.8 applications, But that doesn't mean they will have the best performance, sometimes it is better to do a porting to use the newest features. Qt5, has two options to paint components into the screen. Painting in Qt 5 is primarily done either with: The imperative QPainter API Qt’s declarative UI language, QML, and its scene graph back-end. QPainter As this document mentions  Qt5GraphicsOverview | Qt Wiki | Qt Project  The Qpainter engine uses software to paint, and is used when drawing Qimages or Qwidgets. Its  advantage over OpenGL is the high quality when antialiasing is enabled, and a complete feature set. The Qpainter can use an OpenGL engine, but as the document mentions it is more suceptible to state changes. And has to be used carefully. QML & Scene Graph. All visual QML items are rendered using the scene graph, a low-level, high-performance rendering stack, closely tied to OpenGL. Qt Quick 2 makes use of a dedicated scene graph based on OpenGL ES 2.0 or OpenGL 2.0 for its rendering. Using a scene graph for graphics rather than the traditional imperative painting systems (QPainter and similar), means the scene to be rendered can be retained between frames and the complete set of primitives to render is known before rendering starts. This opens up for a number of optimizations, such as batch rendering to minimize state changes and discarding obscured primitives. The QML scene graph is a new back-end for QML in Qt 5, and is based on OpenGL. It generally improves the performance of QML significantly over the QPainter-based back-end used in Qt 4. It achieves better performance in a number of ways: The scene graph uses OpenGL directly instead of going though a QPainter which could be using either the raster or OpenGL paint engine. This means that all the resources, like geometry, textures and shaders can be stored in a format suitable for OpenGL rather than using classes such as QPainterPath, QPixmap, QBrush, or QPen, which the QPainter would need to translate into OpenGL primitives and possibly cache. QML, being a declarative language, defines how the end result should look like, but it doesn’t define how and in which order each individual element is drawn. The drawing can therefore be reordered to reduce the number of state changes, or merged to reduce the number of draw calls. The scene graph uses a separate render thread, and synchronizes the animations with the vertical retrace on platforms where this can be supported. The render thread allows the preparation of the next frame to be done at the same time the current frame is being rendered. This has a positive effect also on single-core systems, since the render thread might block on OpenGL commands. The synchronization with the vertical retrace improves the perceived smoothness of the animations. We have tested on i.MX6 Both options, having the best results using QML Qtquick2 elements. When we tried using QtPainter via Widgets we face the problem that if not using a windowing system like X11 or Wayland the painter wont work well and will only show the QtGLWidget. With QML scene graph we are able to have an OpenGL element and a Qt element on the same environment, and there is an easy way to communicate one with the other and share variables.  Please look at the example results here: I.MX6 scene graph Qt5 - YouTube And the great advantage, the sceneGraph is all accelerated via OpenGL.
記事全体を表示
The i.MX 6 Android 13.4.1.03 patch release is now available on www.freescale.com IMX6_R13.4103_ANDROID_LDO_PATCH This patch release is based on the i.MX6 Android R13.4.1 release. The purpose of this patch release is to manage the LDO and PMIC ramp-up time correctly.
記事全体を表示
i.MX25 for Industrial and General Embedded The i.MX25 family of multimedia applications processors extends the Freescale ARM9™ portfolio and makes the industrial and general embedded market a key focus of i.MX with the integration of many new features. Speed up to 400 MHz, low power consumption and multiple connectivity options support the growing needs of industrial and general embedded products, while allowing customers to reduce their overall system bill of materials cost. The i.MX258 processor provides additional security features making it the ideal solution for payment terminal (POS), or any other type of product needing secure system boot and tamper detection. i.MX25 for Automotive Today's drivers expect more connectivity in more places from more things—phones, media players and, increasingly, cars. Bluetooth™ connectivity is becoming the norm as more people keep their hands on the wheel instead of on the phone. Connectivity and compatibility with media players is becoming a requirement as consumers' media investment goes digital. The challenge: how can designers support high-end features such as connectivity and media playback without charging high-end prices? The i.MX25 family of processors offers integration that tailors itself to the connectivity requirements of today's automobile but eliminates expensive parts not needed for a cost-conscious infotainment system. The i.MX25 applications processor is a Freescale Energy-Efficient Solutions product. Product Information on Freescale.com i.MX257: Multimedia Applications Processor i.MX251: Multimedia Applications Processor i.MX253: Multimedia Applications Processor i.MX255: Multimedia Applications Processor i.MX258: Multimedia Applications Processor Additional Resources i.MX25 PDK Board I.MX25 PDK Board Get Started i.MX25 PDK Board Flashing NAND i.MX25 PDK Board Flashing SPI NOR i.MX25 PDK Board Flashing SD Card i.MX25 PDK Board Running Linux I.MX25 PDK U-boot SplashScreen I.MX25 PDK U-boot SDCard I.MX25 PDK Using FEC i.MX25: When using 120MHz UPLL as clock source, GPT counter returns unexpected results Limitations of the i.MX SIM Controller to Pass the EMV Certification
記事全体を表示
Summary of the Issue: We have had customers reporting failure to run MC and SC production parts at 1GHz or higher frequencies. The signature of the fail is that the system will hang once it tries to ramp from the boot frequency of 800MHz to 1GHz or higher. The root cause was tracked to the setting of the LDO_VOLT_CHANGE_EN fuse in production parts. The LDO_VOLT_CHANGE_EN fuse sets the LDO boot voltage to either 1.15V (indicated by a fuse setting of “1”) or 1.1V  (indicated by a fuse setting of “0”). In production parts the fuse is set to “1”, i.e. 1.15V, since this is the optimal setting based on characterization data. On pre-production units the LDO voltage was set to the lower setting of 1.1V (i.e. fuse set to “0”). The reason this is a problem with MC/SC parts is because the fuse is read by the ROM during boot and overwrites the LDO ramp rate bits in the PMU_MISC2 register based on the setting of the fuse. When the LDO_VOLT_CHANG_EN fuse is set to “1” then the LDO ramp up time to spec voltage is set (in PMU_MISC2) to 500uS instead of the 50uS assumed by the CPUFreq driver. This will cause the system to hang when transitioning from the boot frequency to a higher frequency/voltage point since the required voltage to support the higher frequency is not yet present. In real terms, customers who have production i.MX 6Quad/6Dual/6DualLite and 6 Solo parts have seen failures to ramp their products to 1GHz or higher frequencies. This is completely fixed by a software patch that corrects the LDO ramp setting in the PMU_MISC_2 register by setting it back to the fastest ramp time. Note that the LDO_VOLT_CHANGE_EN fuse is not in the reference manual since it is not a customer visible fuse. It is programmed and locked at final test. This is a mandatory fix for all customers. Affected Parts: i.MX 6Quad – all SC and MC parts, consumer and automotive. Industrial MC parts not yet shipping. i.MX 6Dual – all SC and MC parts, consumer and automotive. Industrial MC parts not yet shipping. i.MX 6DualLite – all MC parts consumer parts. Automotive and industrial MC parts not yet shipping. i.MX 6Solo – all MC consumer parts. Automotive and industrial MC parts not yet shipping. Patch Availability and Location: Patches exist for both Linux and Android. They are available on freescale.com. See below for more details. i.MX 6Quad – www.freescale.com/imx6q i.MX 6Dual – www.freescale.com/imx6d i.MX 6DualLite – www.freescale.com/imx6dl  i.MX 6Solo – www.freescale.com/imx6s Select the “Software and Tools” tab and then expand the section “Updates and Patches”.  The relevant patches are: Linux – L3.0.35_1.1.1_LDO_PATCH (i.MX 6Quad/6Dual) Linux – L3.0.35_3.0.3_LDO_PATCH (i.MX 6DualLite/6Solo) Android – IMX6_R13.4103_ANDROID_LDO_PATCH (i.MX 6Quad/6Dual/6DualLite/6Solo) Communication Roll-out: i.MX FAE’s: done (via maillist). Will post copy of this email to i.MX support space by end of day 1 st March. i.MX DFAE’s: 8 th March. Customer notification: 8 th March. i.MX community: 8 th March (to coincide with customer notification). We are also working on an engineering bulletin that describes the change for customers who are not using our provided Linux and Android BSP’s. Target date: TBD. But goal is to make this available on/around mid-March. Best regards, Amanda and Kyle This document was generated from the following discussion: i.MX 6 Series LDO Ramp Issue: Linux and Android Patches Now Available
記事全体を表示
In an earlier topic (Linux fast boot on i.MX6 Sabresd board.) about Linux fast boot on i.MX6 SabreSD board, the demo showed an application startup procedure including u-boot boot, Linux kernel boot, rootfs mount, demo application load and run. Additionally, this demo shows a live video on a LVDS screen from board CSI camera. Its total boot up time is about 1.x seconds. Now, based on Linux fast boot, we integrate it with another demo application: surround view, this demo shows 4 different live videos on LVDS screen from 4 UDP data sockets. In this demo video is drawn by GPU to screen, that means the frame buffers decode by video decoder directly pass to GPU, which is not same as previous demo. The encode video format is also MJPEG in this demo. This demo creates 4 different threads every thread handle one UDP socket, receive buffer, push this buffer to video decoder, get frame buffer from video decoder, pass this buffer to GPU, start GPU render, command GPU draw the render buffer to the screen; this thread needs to occupy one ARM processor to show every video smoothly. So we need a i.MX 6DQ board in this demo. Hardware: i.MX 6DQ SabreSD board Software: 12.09 GA BSP Difference with previous fast boot demo: U-boot difference with previous fast boot demo. 1: Add logo show. (For remove CSI2, V4L2, Capture modules ) Kernel different with previous fast boot demo. 1: Add SMP support. 2: Add Network support. (IPV4, PHY, network driver(FEC)) 3: Remove CSI2, V4L2, Capture. (Remove this need in U-boot procedure Freescale logo show on the screen! ) 4: Add GPU support in kernel. Rootfs difference with previous fast boot demo: 1: Keep rc.s firstly run, while in previous fast boot demo, demo is the firstly running program on rootfs. 2: Get rid of almost all service in rc.conf just keep “mount /proc and /sys” service. Network performance on this demo Software : The default network receive buffer is about 128KB. This default size is too small for this demo; the demo application can't fetch receive buffer in time while kernel network stack will discard some UDP packets if we don't enlarge it. We enlarge this receive buffer through command in inittab before demo running. Hardware: i.MX6 DQ TOI less than 1.2 version has some Ethernet mac layer issue, this issue will also cause some UDP packets lost. So please ensure the SabreSD board i.MX6 DQ chip TOI version is equal 1.2 or more. Attached are some files for your reference. Below patches assume this SabreSD board boot from SD3 and default display port is LVDS1. 1: U-boot and kernel patches based on 12.09. 2: Demo application based on 12.09 vpu test program and vpu test program running configure file. 3: Rootfs startup scripts.
記事全体を表示
These questions and answers are about interrupt generation at a dedicated (configurable) video output port. The i.MX6D manual (Rev. 0) Image Processing Unit (IPU) chapter mentions: Every DI has 10 timing generator counters. The IPU Interrupt Generator has 10 DI0 counters (1...10) and just 2 DI1 counters (3 & 😎 as interrupt sources. The Interrupt Control Register lists 11 DI0 counters (0...10) Q1. Are the DI timing-generator counters linked to the counters in the interrupt controller, or are they different counters? A1. Yes, the DI timing generator counters are linked to the counters in the interrupt controller. Q2. Why are there 11 counters listed in the interrupt controller, but just 10 counters in the timing generator? A2. There is disp_clk_en_pre in the interrupt controller. Thus the 11 counters: 10 timing generator counters and 1 disp clock generator counter. Q3. Is configurable timing feasible for DI0 by using the timing generator counters? A3. Yes, using the 10 internal timing counters you can generate various timing relationships. In addition, you can detect any of the interrupt counters. For example, if you use counter 8, then you can detect the interrupt associated with counter 8. Q4. Explain the impact of the DI1 counter access of only channels 3 and 8. A4. DI1 also has 10 timing generator counters and 1 disp clock generator counter, which you can use to generate desired waveforms. This is similar to DI0. The difference is only 2 of the 10 counters (plus another disp_clk) are connected to the interrupt controller for DI1. Therefore, there is a restriction for detection. If you use counter 7, read out the counter 7 interrupt of DI1 is not possible. However, 2 channels should be sufficient. These interrupts are usually used to indicate a frame start or a frame end. We usually use counter 3 to represent Vsync. So normally we only use counter 3 interrupt. DI1 has only 3 accesses because this covers the anticipated use case and the desire was to restrict register size. The extra counters facilitate flexible DI1 timing generation.
記事全体を表示
Product Family Features Freescale's i.MX family of applications processors has demonstrated leadership in the portable handheld market. The i.MX21 multimedia applications processor is the latest addition to this family and builds on its low-power, high-performance heritage. Freescale has shipped more than 60 million chips of our industry-founding applications processors. That means you can start smart by picking products with a technology pedigree to handle all the creativity you can pump into them. The i.MX21 features the advanced and power-efficient ARM926EJ-S core operating at speeds starting at 266 MHz and is part of a growing family of Smart Speed products that offer high performance processing optimized for lowest power consumption. ARM926EJ-S™ core (16 KB I-Cache, 16 KB D-Cache) Smart Speed Switch 16/18-bit color LCD controller up to SVGA USB On-The-Go (two-host port) MPEG-4 and H.263 encode/decode acceleration up to CIF 30 fps Additional Resources IMX21-ADS I.MX21 ADS Board Flashing IMX21-and-iMXL-Lite-Kit
記事全体を表示
Linphone is an internet phone or Voice Over IP phone (VoIP). With Linphone you can communicate freely with people over the internet, with voice, video, and text instant messaging. Linphone makes use of the SIP protocol, an open standard for internet telephony. You can use Linphone with any SIP VoIP operator, including our free SIP audio/video service. Linphone is free software (or open-source), you can download and redistribute it freely. Linphone is available for desktop computers: Linux, Windows, Mac OSX, and for mobile phones: Android, iPhone, Blackberry. Linphone-android is a good example to show the integration of Java code based on Android SDK with native CODEC, network protocols. Not like XBMC-Android that is almost total c++/c project. Perform the following steps to build a linphone-android project: 1. git clone git://git.linphone.org/linphone-android.git --recursive 2. sudo apt-get install autoconf automake libtool pkg-config 3. "cd" to the root of "git clone" : cd /home/user/linphne-android // wherver git'ed linphone-android is 4. export PATH=/home/user/android-ndk:$PATH //wherever your android-ndk, android-sdk tools, and platform-tools, and ANT are stored in.             For example on my PC.      export PATH=/home/alanz/android-ndk-r8d:/home/alanz/android-sdk-linux/tools:/home/alanz/android-sdk-linux/platform-     tools:/home/alanz/bin/apache-ant-1.8.4/bin:$PATH             Note: PATH contains the ndk, sdk, and ant. 5. Make sure the network is working, then execute "./prepare_sources.sh" at the linphone-android root 6. Then, execute "/home/alanz/android-ndk-r8d/ndk-build", it will take a while to be finished 7. Modify Makefile as following example, modify it accordingly.      NDK_PATH=/home/alanz/android-ndk-r8d      SDK_PATH=/home/alanz/android-sdk-linux/tools      SDK_PLATFORM_TOOLS_PATH=/home/alanz/android-sdk-linux/platform-tools      .....................      generate-libs:           $(NDK_PATH)/ndk-build ....... (remove -j$(NUMCPUS) by the end of this command line) 8. execute "make", after finish, the apk file can be found under bin/ subdirectory.
記事全体を表示
Documents Imx53-fastboot-example i.MX53 Multimedia Applications Processors I.MX53 QSB Board Get Started IMX53 QSB enable WIFI android I.MX53 QSB Ubuntu Dual Display i.MX53 Quick Start Board IMX53 SABRE AI i.MX53 Start-R Lab Exercise - Prof. Massimo Violante Politecnico of Torino i.MX53 Start-R Lab Exercise - Developing a loadable kernel module to manage GPIOs in i.MX53QSB ConnectCore® i.MX53 / Wi-i.MX53 by Digi International NOVPEK i.MX53 by NovTech
記事全体を表示
The SNVS LDO output (VDD_SNVS_CAP) requires an external capacitor. Freescale's updated recommendation is that this should be a single 0.22 uF capacitor. Freescale is working to get documents in alignment. As of Feb 2013, some documents (such as schematics or user guides) show a single 0.22 uF capacitor, others do not.
記事全体を表示
Make boot SD Card for imx-android-r13.4-20121128 1. Extract imx-android-r13.4-20121128 2. Check mount device  @Disk Util     My case SD Card : /dev/sdb 3. Insert the uSD Card    Use 16GByte SD Card Cat10 4. Android/imx-android-r13.4-20121128$./device/boundary/mksdcard.sh /dev/sdb 5. Wait about 5 minutes. Finish!
記事全体を表示
The new i.MX 6 Platform SDK 1.1 release is now available on the http://www.freescale.com/ site. NOTICE: The Platform SDK is no longer available and is unsupported. Please contact your Sales team for assistance. ·      Files available i.MX 6Series Platform SDK Bare-metal SDK for the i.MX 6 series, including reusable drivers and tests for many peripherals, and much example code. Also includes register definition headers files, and register definitions for debuggers. BSD open source license. New features and fixes - Fixed EIM test failure on sabre_ai board. - Added obds application. - Improved FAT filesystem cache. - Improved uSDHC API to allow access to entire 4GB card. - Added stream benchmark application. - Moved filesystem read/write performance test to be a new app. - New cpu_workpoint API in sdk/drivers/cpu_utility. - Improved menu API in sdk/utility/menu.h. - Fixed bug in D-cache invalidate and clean routines. - If an application returns from main(), _sys_exit() will now be called automatically. - Fixed a DDR region overflow linker error when using version 4.5.2 of the toolchain. - Removed smbus driver, as no i.MX6 boards have compatible devices and thus was untested. - Improved GIC driver by making it easier to init with new gic_init() API. - Implemented support for CSI test mode. - Converted SATA driver to use standard register definition macros. - Improvements to PWM driver. - Completely removed use of hw_module_t struct throughout SDK. Driver APIs that previously used this struct have been updated to take the relevant parameters, such as the peripheral instance, directly. Affected drivers: i2c, epit, uart, snvs, gpt, timer, flexcan. - The SDK build system now supports parallel builds. - Added jump_to_sdp() API in system_util.h to enter ROM Serial Download Protocol mode. - Static initialization of C++ objects now works as expected. - Fixed BCH ECC encoded reads and writes in GPMI driver. - Updated DCDs and debugger init scripts to the most recent versions. - Added GpioPin class in gpio driver. See sdk/drivers/gpio/gpio_pin.h. - Added classes for I2C and SPI devices. See sdk/drivers/i2c/i2c_device.h and sdk/drivers/spi/spi_device.h. - Added class to provide a software I2C port. See sdk/drivers/i2c/software_i2c_port.h. - Added gpio_set_gpio() API to gpio driver which configures the pin mux for a GPIO pin. - Added lwIP open source TCP/IP stack to the SDK. - Added two demo applications for lwIP: ping and httpd. - Implemented some minor improvements to ENET and FEC driver APIs. - Changed ENET driver so that it no longer puts the PHY into external loopback mode. A new API is added to enable loopback for the ENET unit test. - Added set_card_access_mode() API to uSDHC driver to replace some global variables that were used to configure DMA and interrupt mode. - Added read_input_string() and read_int() APIs to system_util.h. - Fixed ESAI driver so that it no longer always outputs each sample 3 times. - New arm_set_interrupt_state() API in cortex_a9.h. - Versions of all debugger init scripts are now provided for ARM DS-5. - Fixed a compiler warning generated by gcc 4.7.2 in the gpmi driver. - New version 3.4.0.4 of the IOMux Tool. - New driver for the MMA8451 accelerometer. - Added a full-featured USB Device stack under sdk/common/usb_stack. - Normalized line ending style to Unix (LF) for a few source files. - Created new APIs to manage starting up and shutting down secondary CPU cores. See cpu_start_secondary() and cpu_disable() in sdk/drivers/cpu_utility/cpu_utility.h. - Converted the multicore_demo application to a unit test under sdk/drivers/cpu_utility/test. - Added smp_primes multicore example application. - Improved spinlock API to work correctly in SMP situations. - Many small changes and improvements. - The startup code leaves interrupts disabled, and platform_init() now explicitly enables them. - Added readme files for all applications. - Changed how the makefiles archive objects in .a libraries. The timestamps of objects are compared with their copies in the archive, rather than being compared with the timestamps of the archive itself. This is to work around certain older Linux systems that do not save fractions of a second in file timestamps. One side effect of this is that the ar tool is invoked once per object that needs updating, where previously it was invoked to update a number of files at once. To reduce build log clutter, the archive messages are no longer shown.
記事全体を表示
Boundary Devices has a tool to load directly a U-boot binary file, all using the USB OTG port. Assuming that you have connected your i.MX board to your Linux Host through an USB cable, board is power-on  with dip switches configure to 'Serial Download Mode' (this configuration depends on the board you are booting),  clone the imx_usb_loader repo, generate the tool then boot as indicate below: $ git clone https://github.com/boundarydevices/imx_usb_loader.git $ cd imx_usb_loader $ make $ ./ imx_usb   ../ tmp/deploy/images/ u-boot.imx On the console terminal, you should see the booting kernel logs and at the end reaching the login prompt. Useful Links: [1] Unbricking a Nitrogen6X or Sabre Lite i.MX6 board [2] Boundary Devices Repos [3] Boundary Devices Main page
記事全体を表示
Overview: This document is written for Freescale customers who have Freescale AC3 release packages (excluded package). (If you did not have the AC3 release package, you can disregard this document.) Freescale OMX Player in Android release supports audio track selection when playing files with multiple audio tracks. However, most customers don't use this enhanced API to select the audio track even if current audio codec is not supported. To avoid a soundless output when partial audio track can be played, this document provides the method to select the available audio track automatically to play. The patch in this document is not included in our current release because it did not match with our track selection rule - play the first track. If you have any idea with this issue, feel free to add comments into this document. Issue description: Software: R13.4-GA or R13.4.1 Android releases Hardware: MX6Dual/Quad SabreSD board Test source: 1.mkv Test Step: 1. Lunch Gallery from main menu. 2. Play the video And you can see the watch the video without any sound Root Reason: The file has 2 audio track DTS & AC3: audio track 1 is DTS and track 2 is AC3. OMX Player will choose the first audio track to play as default audio track, which is DTS audio. However, the software only supports the AC3 audio codec, so it could not set up audio decoder for DTS track. If we choose to play the AC3 track, sounds could be heard. How to fix: The audio track index is set in GMPlayer::LoadParser(). You can get audio format to check whether it is supported by decoder. Please see the patch audio_track_slection.diff
記事全体を表示
Prerequisites: The build is verified on prebuilt rootfs(based on LTIB) which can be downloaded from freescale.com or built from Yocto fsl-image-gui These steps are performed on the host: 1. Download the git respository for qt5: $ git clone git://gitorious.org/qt/qt5.git qt5     cd qt5     Let us consider this as <QTDir> 2. Create a build directory to install for the qt5 packages. This directory can be  in any loctation. For example,  $ mkdir /opt/qt5 sudo chown -R <username> /opt/qt5 Let us consider the the installdir as /opt/qt5 3. Enter the Qt5 directory and run the perl init-repository script to download all the source code for    Qt5. To download all the source code will take about an hour. $ perl init-repository 4. Download the attached linux-imx5-g++.tar.gz and copy to  qtbase/mkspecs/devices. Will try to get updstreamed. 5. From the following path $ gedit qtbase/mkspecs/devices/linux-imx5-g++/qmake.conf   6. At the top of the qmake.conf, there is a configure line. Copy and paste the configure line into a text file located    in your build build directory. Edit the configure line to find your toolchain and filesystem. Also make sure to    include the options -no-pch, -no-opengl, -opengl es2, Here is an example of    a configure line.     $ cd <QTDir>     $ cd qtbase     $  ./configure -v -opensource -confirm-license -no-pch -opengl es2 -make libs -device imx5 \     -nomake examples -nomake demos \ -device-option CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi- \ -sysroot <rootfs> -no-gcc-sysroot \ -prefix <installdir> 7. Make the textfile that has the configure line and executable and run it. When the configure summary is shown make sure the Qt5    has openGL ES 2.0 support. Do build       $make     $make install    When Qt5 has finished building, Qt5 will be installed in two places:            1. <location of rootfs>/<installdir>            2. <HOST Machine>/<install dir> This is good because now all the libraries and binaries for Qt5 are installed on the host and the target filesystem. Therefore, the target already has all the libraries and  binaries needed to run Qt5. 8. Also need to build qtjsbackend and qtdeclarative.     $ cd <location to Qt5 git>     $ cd qtjsbackend     $ ../qtbase/bin/qmake -r     $ make && make install        $ $ cd <location to Qt5 git>     $ cd qtdeclarative     $ ../qtbase/bin/qmake -r     $ make && make install 9. Run Qt apps on target     - Boot the target either with NFS or SD Image     - Ensure that folder <installdir> is copied on target file system at “/usr/local”.     - Launch application using     $ cd /usr/local/qt5/examples/opengl/hellogl_es2     $ ./hellogl_es2 -platform eglfs
記事全体を表示
Note that this is for Jive 5 and we are now on Jive 6.  Things have changed in Jive 6 with respect to setting email notifications.  Your Preferences page and the new connection streams control your your notification settings now.  This document will be updated soon. There are three channels in which you get notifications of community activity, and you can use these channels most effectively if you know how to control the flow to them.  The three channels are: 1.    Activity stream in the “What Matters: Activity” page 2.    Inbox in the “What Matters: Communications” page 3.    Email Activity stream: Notifications in your Activity stream are mostly your follows – the content, people and places that you have selected to follow.  For any activity on any content, or in any place, or by anyone you follow, you will get a notification here.  This Activity stream also makes an attempt to identify the followed content that “matters most” to you.  Note that there is also a tab here which allows you to see all activity in the entire community in a single stream. You can control the activity in the “Followed Activity” tab of your Activity stream in two ways: 1.    Select “Hide” (icon to the right of the title) for any content that you no longer want to show up in your Followed Activity stream. 2.    Be selective about what and who you follow. Stop following entire spaces/groups or members who may (need to) post things that you are not interested in. You can control who you follow in your “personal page” (click on your name) or by bringing up another member’s personal page.  Control what you follow by going to the place or content and selecting/deselecting the “Follow” icon. Inbox: Fewer activity notifications are collected in your Inbox than in your Activity stream.  The Inbox usually contains activity notifications for content such as announcements, direct messages, private discussions, content you created or contributed to, or content that someone @mentioned you or shared with you.  The Inbox can also contain notifications of activities for content, places or people which you have marked as “Track in Communications”. You can control notifications in your Inbox only for content/places/people you have marked as “Track in Communication”.  The option to select/deselect tracking in communications is found: ·         in the “Actions” selector box in each place ·         in the “Actions” list next to any specific content (discussions/document) ·         in a member’s personal page It may be better to get selected notifications in your Inbox rather than getting these notifications in your email (see below). Email: Email notifications can be set up in your Preferences for content in the following categories: 1.    Content in your Communications page (Inbox) 2.    Alerts or Notifications in your Actions (not Activity) page 3.    Direct social action (@mentions, shares and direct messages) 4.    Followed activity – Places, Content, People (Activity stream) Enabling email notifications for each of these types of content is done in your “Preferences”.  Each of the above four categories can be enabled/disabled separately.  Setting each of these preferences to "On" will enable email notification for any type of activity which applies to each of these categories. Note also that notifications are enabled in the "Receive email notifications" setting found in another member's personal page (Bio tab) and in the "Actions" box in a place or content page.  You can select to "Receive email notifications” for all activities by a member, or within a place, or for specific content.  Be sure to deselect this for members, places and content that you do not want email notifications for these activities. Notifications Summary table: Category Activity Stream (What Matters: Activity) Inbox (What Matters: Communications) Email – Select Places “Follow” in upper right corner of place “Track in Communications” in place’s Actions box "Receive email notifications" in place's Actions box People “Follow” in upper right corner of member's Bio tab of his personal page “Track in Communications” in member's Bio tab Actions list "Receive email notifications" in member’s Bio tab Actions list Content “Follow” in upper right corner of content “Track in Communications” in content’s Actions list "Receive email notifications" in content's Actions list Email - All "People, places and content I'm following (Followed Activity)" in Preferences All Content: “Everything in my Communications page” in Preferences @mentions, shares, and direct messages: “Direct social actions” in Preferences - Common questions: Q: What will have the biggest impact in controlling or reducing the notifications I get in the three channels? A: In order of impact: 1.    Stop following entire places (or at least turn off email notifications for followed activity) 2.    Stop following people who post content for which you don’t need notifications (or at least turn off email notifications for followed activity) 3.    Don’t set “Track in Communication” for places, content or people unless you really want this content in your Inbox (or at least turn off email notifications for Everything in my Communications Page (Inbox) It is recommended that you do not disable email notification for “Direct Social Action” in your preferences.  These are the most important notifications. Q: I have turned off “Follow” for a group I’m in, but I keep getting emails for activity in that group or community.  What do I need to do to disable these email notifications? A: Getting email notifications for activity can be enabled by several settings, and you only need one set to enable the notifications.  Some reasons why you might get email notifications: ·         Follows – you have email notification enabled for “Followed Activity” in your Preferences: o   You are following a place.  Note that you may not be following a group, but you may still be following a project (i.e., sub-group) within the group.  Therefore, you will get notifications for activity within the project. o   You are following members of a place.  If you are following a person then you will get notifications of all activity created by that person. o   You are following content.  If you have “Follow” set for any content, e.g., discussions or documents, you will get notifications for all activity on that content. ·         Content in your Inbox – you have email notifications enabled for “Everything in my Communications Page” in your Preferences: o   Activity for content that you created or contributed to is one set of activities captured in your Inbox. o   Activity where someone @mentioned you or shared with you. o   Activity in a place, on content, or by a member that you specifically marked as “Track in Communication”. Any of the above will cause you to get an email notification of activity.  Turn off the unneeded “Follows", “Track in communication”, or "Receive email notifications".  If you do not want emails for notifications hitting your inbox, consider disabling emails for “Everything in my Communications Page” in your Preferences. CC: MPU Support Freescale Community Managers Using Freescale Community
記事全体を表示
Prerequisites: The build is verified on prebuilt rootfs(based on LTIB) which can be downloaded from freescale.com EGL uses framebuffer backend libEGL.so -> libEGL-fb.so libGAL.so -> libGAL-fb.so QT4.8 1. Download the git respository for qt4.8: $ git clone http://git.gitorious.org/qt/qt.git qt $ cd qt Let us consider this as <QTDir> 2. Create /tftpboot and point your target fileystem. As like $ mkdir -p /tftpboot $ cd /tftpboot $ ln -s $(ROOTFFS) rootfs TBD:Need to work on this to use sysroot option 3. Create a build directory to install for the qt4 packages. This directory can be  in any location. For example, $ mkdir /opt/qt4 $ sudo chown -R <username> /opt/qt4 Let us consider the the <installdir> as /opt/qt4 4. Extract the attached mkspecs(linux-imx6-g++.tar.gz) to  <QTDir>/mkspecs/qws/ 5. Apply the attached cd 0001-add-i.MX6-EGL-support.patch attached to enable egl support for i.MX6 $ cd <QTDir> $ patch -p1<0001-add-i.MX6-EGL-support.patch 6. Export CROSS-COMPILE location path to PATH $ export PATH=$PATH:/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/ 7. Enter to the <QTDir>. Do configure. You can select the options as you like. Here is an example $ cd <QTDir> $ ./configure -qpa -arch arm -xplatform qws/linux-imx6-g++ -no-largefile -no-accessibility \ -opensource -verbose -system-libpng -system-libjpeg -system-freetype -fast -opengl es2 -egl -confirm-license \ -qt-zlib  -qt-libpng  -no-webkit -no-multimedia \ -make examples -make demos \ -release -make libs -exceptions -no-qt3support -prefix <installdir> 8. When the configure summary is shown make sure the Qt has OpenGL ES 2.0 support. Do build $ make $ make install 9. Now need to build eglfs plugin $ cd <QTDir>/src/plugins/platforms/eglfs $ make $ make install     Now the eglfs will be installed to the QT Install directory. 10. By now all required QT files are in <install directory> 11. Copy the install directory to target filesystem $ cp -rf /opt/qt4 /tftpboot/rootfs/opt/. 12. Running Qt apps on target     - Boot the target either with NFS or SD Image     - Ensure that folder <installdir> is copied on target file system at “/usr/local”.     - Launch application using $ cd /opt/qt4/examples/opengl/hellogl_es2 $ ./hellogl_es2 -platform eglfs QT5 These steps are performed on the host 1. Download the git respository for qt5: $ git clone git://gitorious.org/qt/qt5.git qt5 $ cd qt5     Let us consider this as <QTDir> 2. Create a build directory to install for the qt5 packages. This directory can be  in any loctation. For example, $ sudo mkdir /opt/qt5 $ sudo chown -R <username> /opt/qt5 Let us consider the the installdir as /opt/qt5 3. Enter the Qt5 directory and run the init-repository script to download all the source code for    Qt5. To download all the source code will take about an hour. $ ./init-repository Update:  In the latest Qt5 release the webkit library is included by default and there are some issues trying to compile it. use the next line to avoid problems if not desired to use webkit. $ ./init-repository --no-webkit 4. From the following path $ gedit qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf 5. At the top of the qmake.conf, there is a configure line. Copy and paste the configure line into a text file located    in your build build directory. Edit the configure line to find your toolchain and filesystem. Also make sure to    include the options -no-pch, -no-opengl, -opengl es2, Here is an example of    a configure line. Update: In the latest Qt5 stable, the option to compile the examples/demos is -compile-examples, instead of -make examples -make demos If you are running into problems with webkit,  use the option -no-icu, this will disable the webkit. $ cd <QTDir> $ cd qtbase $ ./configure -v -opensource -confirm-license -no-pch -no-xcb -no-opengl -opengl es2  \         -make libs -device imx6 \        -compile-examples \       -device-option CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi- \        -sysroot <rootfs> -no-gcc-sysroot \       -prefix <installdir> 7. Make the textfile that has the configure line and executable and run it. When the configure summary is shown make sure the Qt5 has openGL ES 2.0 support. Do build $ make $ sudo make install    When Qt5 has finished building, Qt5 will be installed in two places:            1. <location of rootfs>/<installdir>            2. <HOST Machine>/<install dir> This is good because now all the libraries and binaries for Qt5 are installed on the host and the target filesystem. Therefore, the target already has all the libraries and  binaries needed to run Qt5. 8. Also need to build qtjsbackend and qtdeclarative. $ cd <location to Qt5 git> $ cd qtjsbackend $ ../qtbase/bin/qmake -r $ make && sudo make install $ cd <location to Qt5 git> $ cd qtdeclarative $ ../qtbase/bin/qmake -r $ make && sudo sudo make install 9. Running Qt apps on target     - Boot the target either with NFS or SD Image     - Ensure that folder <installdir> is copied on target file system at “/usr/local”.     - Launch application using $ cd /opt/qt5/examples/opengl/hellowindow $ ./hellowindow -platform eglfs FAQ: On the target file system, the location of target libaries and includes may present in arm-linux-gnueabi directory. Make sure to create soflinks to QT can find. For example $ cd $(ROOTFS)/usr/lib $ ln -s arm-linux-gnueabi/libffi.so.6 libffi.so.6 While building QT5, you may see a build error that libQt5V8.so.5 is not found. This might be some problem to be addressed in QT. Workaround is to copy all the binaries to correct path as like this $ cp  <ROOTFS>/<installdir>/lib/* <HOST Machine>/<installdir>/. What is coming up next: 1. QT on X is already available on Yocto filesystem. Steps to enable GPU Acceleration TDB. 2. QT with Wayland support.
記事全体を表示
We are very proud to announce that Element14's SabreLite i.MX6Q board is now officially supported by Adeneo Embedded's i.MX6 WEC7 BSP. As a consequence, our customers are able to use the SabreLite board from Element14 as well as the one from Boundary Devices. Follow this link for Adeneo Embedded's i.MX6 WEC7 BSP Follow this link for Element 14's SabreLite board Ce document a été généré à partir de la discussion suivante : Element14's SabreLite board officially supported by Adeneo Embedded's i.MX6 WEC7 BSP
記事全体を表示