Archive

Posts Tagged ‘pandaboard’

Linaro 13.04 Release With Linux Kernel 3.9 and Android 4.2.2

April 26th, 2013 2 comments

Linaro 13.04 has just been released. It features Linux Kernel 3.9-rc7 and Android 4.2.2.

A lot of work has been done on ARMv8 (Cortex A53) with further work on OpenEmbedded, more testing, and updates to the GCC toolchain. Calxeda EnergyCore server has been added to LAVA, Origen Quad now gets hardware video acceleration in Android Jelly Bean. Still more cleanup has been done on the kernel side with regards to Samsung and ST SoC, and a big.LITTLE porting guide is now available (linaro login required).

Here are the highlights of this release:

  • LAVA

    • Prototype of a new publishing system is used to overcome performance problems with android-build.linaro.org.
    • Calxeda EnergyCore support is merged in LAVA, and an isolated system has been set up for web benchmarking.
    • Fedora support is merged in LAVA. A user can submit LAVA jobs using a Fedora pre-built image.
    • Boot commands are untangled from LAVA dispatcher. They’re now read from images.
    • Nexus implementation in LAVA is generalized and reusable for other devices that support fastboot/adb.
    • Linaro Image Tools 2013.04 released
    • More xml-rpc APIs available in lava dashboard to make life easy.
    • Test Definitions now available in lava dashboard. Accumulation of meta-data via test definitions started.
  • Builds and Baselines
    • Dalvik VM unit test has been automated.
    • Accelerated video playback support on Android was added for Origen Quad.
    • Skia and 0xbench tests were added into lava-test-shell.
    • Test suite builder has been set up to provide test suite binaries as an overlay for Android.
    • Toolchain integration
      • Native toolchain on Android updated to 4.8.
      • Binaries for GCC 4.7 and 4.8 based toolchains released.
      • Android tree updated to compile with 4.8 based toolchains, all related changes upstreamed.
    • ARMv7 KVM enabled kernels and images are daily built and tested in Linaro’s CI loop.
    • OpenEmbedded ARMv8 engineering build provides 64bit HipHop VM requirements for porting and optimization purposes.
    • OpenEmbedded test cases (https://wiki.linaro.org/Platform/QA/TestCases/OpenEmbedded) have been automated. See https://git.linaro.org/gitweb?p=qa/test-definitions.git;a=tree;f=openembedded for current list.
    • Linux Linaro 3.9 2013.04 released
      • updated Versatile Express patches from ARM LT
      • updated arndale/exynos patches from Samsung LT
      • a patch to enable perf in Android by Bernhard Rosenkraenzer
      • vexpress64 support (both RTSM and Foundation model)
      • panda-fix-usb topic to make USB and on-board Ethernet to work on Panda with Device Tree enabled (cherry-pick / forward port of some of the dev.omapzoom.org commits)
      • a few fixes for MMC on Snowball from STE Landing Team
      • patch from ARM LT to fix lockups/crashes seen when enabling function tracer on TC2 with the not yet mainlined cpuidle driver
    • New or updated packages available from Linaro’s Overlay PPA: edk2-uefi, gator-daemon, gator, openssl and powerdebug.
  • Graphics
    • dma-buf – (upstream) debugfs support released, accepted for 3.10
    • AV playback bringup on Jelly Bean on Origen Quad complete and released to android team
    • kernel – (upstream) patches to adds common FIMD device node for all Exynos4 SoCs.
    • piglit – gles2-all and android support released via git. opencl-arm established with fixes specifically for ARM
    • audio – Channel swap for panda has been fixed in 3.9 and 3.8 as well.
    • opencl – Proof of Concept SNU CPU only OpenCL lib investigated and ported to armhf, available via git
  • Kernel
    • Refactor EHCI controller code
    • Depopulate the Exynos <mach-exynos/include-mach> directory
    • Expanded Binder Unit Test – Implement base ioctl unit tests
    • Depopulate the ux500 and plat-nomadik <mach/*> and <plat/*>
    • Improve eMMC Power Management Support – Merge patches to add a skeleton for doing background operations at idle time, based on runtime PM
    • Port some of the simpler platforms to multi-platform support
      • integrator: get to a state where DT is working fully as a prerequisite
      • pci: fix PCI device tree problems when resolving IRQs
      • SPEAr
      • Finalize Nomadik DT transition by moving the clocks to DT
      • Convert u300 to DT as a prerequisite
    • Android upstreaming: ashmem
    • Android alarm-dev compat_ioctl support
    • Implement and upstream ARM 32 bit uprobes (userspace probes) support
  • Power Management
    • Porting guide for big.LITTLE switcher is available (https://wiki.linaro.org/Internal/Projects/Big.Little.Switcher/Docs/porting-guide).
    • cpuidle : consolidate ARM drivers
    • DVFS for the Common Clock Framework
    • thermal: Powertop Integration – Add basic RFC patch and send for review
    • Linaro PM QA 0.4.1 2013.04 released. Fixed in this release:
    • Linaro Powerdebug 0.6.3 2013-04 released. Fixed in this release:
  • QA
    • Tests to cover big.LITTLE cluster init and shutdown have been added to the big.LITTLE core test suite
    • big.LITTLE extended test case scenarios have been implemented.
    • Functional and regression tests for scheduler from ARM have been integrated, covering HMP patches.
  • Toolchain
    • Linaro GCC 4.8 2013.04 released, based off the latest GCC 4.8.0+svn197294 release.
      • Initial optimized support for Cortex-A53 for arm*-*-* targets.
      • Improved support for new ARMv8-A instructions for arm*-*-* and aarch64*-*-* targets.
      • Backport of optimizations concerning whether to use Neon for 64-bit bitops for arm*-*-* targets.
    • Linaro GCC 4.7 2013.04 released, based off the latest GCC 4.7.2+svn197188 release.
      • Includes arm/aarch64-4.7-branch up to svn revision 196381.
      • Backport vectorizer cost model.
      • Turn off 64-bit Bitops in Neon.
    • Linaro GCC 4.6 2013.04 released, based off the latest GCC 4.6.3+svn197511 release. It’s the last monthly release of 4.6 series.
    • Linaro Toolchain Binaries 2013.04 released, updated to Linaro GCC 4.7 2013.04 and Linaro GCC 4.8 2013.04
  • LEG
    • Linaro UEFI 2013.04 released – bugfix
    • OpenSSL optimisations
    • SCT (Self-Certification Test)is now running without any crashes.
    • ACPI topic branch is being prepared for inclusion into linux-linaro tree.

Visit https://wiki.linaro.org/Cycles/1304/Release for a list of known issues and further release details about the LEB, Android, Kernel, Graphics, Landing Team,  Platform, Power management and Toolchain (GCC / Qemu) components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 13.01 Release with Linux Kernel 3.8 and Android 4.2.1

February 1st, 2013 2 comments

Linaro has just announced release 13.01 which includes Linux Kernel 3.8-rc4 and Android 4.2.1.

A lot of work seems to have gone in Arndale board and OpenEmbedded ARMv8. It’s the first time an Ubuntu image is released for Arndale Cortex A15 development board. One the kernel side some Android upstreaming work has been done, as well as some fixes for eMMC, and code for ST Ericsson Novathor 8500 SoC has been reorganized. Version 14 of the big.LITTLE MP (Multi Processing) has been released. The LEG has done further work on Linaro UEFI and GRUB.

Here are the highlights of this release:

  • Android
    • Platform Work
      • The first step of the android-build front-end update for new build program has been landed.
      • Origen and Versatile Express manifests have been consolidated into a single manifest.
      • linaro-android-tools were developed to improve development time for kernel developers. See Kernel Update Tools for details.
      • The android-build scripts have been cleaned up and should work from Ubuntu 10.04 and work for restricted builds as well.
      • busybox was upgraded to 1.21
    • Enablement
      • Audio Playback for panda is fixed.
      • External sdcard issue on pandaboard and origen quad was fixed.
    • LAVA/Testing
      • Third party benchmark suite is updated to use the uiautomator testing framework.
  • Developer Platform
    • CI bring up: Arndale
      • Add binary pre-bootloader package for Arndale (BL1)
      • Include Arndale support into Linaro U-Boot
      • Update u-boot-linaro source package to build a binary package for Arndale
      • Update edk2-uefi source package to build a binary package for Arndale
      • Pulls Arndale support into Linux Linaro
      • Add linaro-image-tools support for Arndale
      • Add package-and-publish linux linaro CI job for Arndale
      • Add hwpack configurations for Arndale
      • Setup CI job for Arndale hwpack daily builds
      • Create a pre-built image for Arndale
    • Enable 64-bit HipHop VM development in OpenEmbedded
      • Build dwarfutils, libmcrypt, libmemcached, memcached, onig, google-glog and libevent 1.4.14b with Facebook patch
      • Mark libdwarf and libunwind and google-perftools as optional (JIT requirement)
      • Create meta-toolchain-hhvm
    • Porting userspace applications for ARMv8: fuse ,libaio, xserver-xorg, cmake, nspr …
    • Merge ARMv8 support into OpenEmbedded
      • Merged slang, libffi, libart-lgpl, ghostscript, cmake, linux-libc-headers, libav, oprofile, python-numpy, xserver-xorg, gmp, attr, libaio, fuse and nspr changes into OE (and upstream if applicable)
    • Create Toolchain validation setup
      • Add options to jenkins-setup scripts to pass architecture and GCC version
      • Add ARMv7a gcc-4.7 and gcc-4.6 LAMP builds to ci.linaro.org
      • Update CI jobs publishing to snapshots.linaro.org
      • Merge changes in toolchain-layer
    • Linux Linaro 3.8-rc4 2013.01 released
      • Based off linux-linaro-core-tracking tree, llct-20130123.0 tag
        • Based off v3.8-rc4
        • Updated linaro-android-3.8 topic by John Stultz
        • Gator version 5.13
        • big.LITTLE MP version master-v14
        • eMMC patches from Kernel WG
      • Updated Versatile Express patches from ARM LT
      • Updated patches from Samsung LT: Arndale support added
      • Ethernet fixes for Snowball: ethernet works OK now
      • A patch to enable perf in Android by Bernhard Rosenkraenzer
      • Ashmem patch by Serban Constantinescu
      • VExpress64 support (both RTSM and Foundation models)
    • Linaro U-Boot 2013.01.1 released
      • LP #1103004 [Arndale] u-boot-linaro lacks pxeboot support
    • OpenEmbedded ARMv8 build has been updated
      • Toolchain updated to Linaro GCC 4.7 2013.01
      • Kernel updated to Linux Linaro 3.8-rc4
      • Various bug fixes
  • Graphics
  • Infrastructure
  • Kernel
    • Android upstreaming
      • Mempressure cgroup got an lwn article: https://lwn.net/Articles/531077
      • keyreset work got an initial patch queued with the input driver for 3.9
      • alarm-dev compat_ioctl support for 32-app on 64bit-kernel is queued for 3.9
      • First pass implementation of extended ashmem unit test completed
      • ashmem compat_ioctl support reworked to include feedback from lkml
    • ux500
      • conversion to common clock got several patchsets merged upstream by Torvalds
      • now uses sparse IRQs and accepted in ARM SoC
    • EHCI refactoring separated mxc, spear, orion and tegra host controller driver from ehci-hcd into its own driver modules
    • Research impact on kernel size for multi-platform configs
      • Gather kernel image and runtime size data for i.MX platform with multiplatform config support
    • AB8500 GPIO shape-up
    • Android upstreaming: Ashmem
      • Review Minchan’s v5 vma based approach
    • Android keyreset driver upstreaming
    • Android upstreaming: Lowmem
      • Anton sent out non RFC version of mempressure cgroup patchset, got ack from Kirill A. Shutemov
      • Anton’s work was written up in an lwn article https://lwn.net/Articles/531077/
    • Depopulate the ux500 and plat-nomadik <mach/*> and <plat/*>
    • Refactor USB Host Drivers
      • Write Orine host controller driver to separate from ehci-hcd host code into its own driver module
    • Android alarm-dev compat_ioctl support
    • Refactor EHCI controller code
      • Separate the mxc,spear,orion and tegra host controller driver from ehci-hcd into its own driver modules
    • Improve eMMC Power Management Support
      • Prepare patches for fixup I/O voltage switch in protocol layer
      • Prepare patches for adapt sdhci host driver to new sequence for how I/O voltage switch is done
    • Support for EMMC 4.5 and UFS
      • Submit /integrate patches for fixing Power Off Notify issues
  • Power Management
    • Integration tree to bring together big.LITTLE MP related work (V14 branch)
    • DVFS for the Common Clock Framework
      • improve re-parenting in clk_set_rate
      • create new clk-next branch based on 3.8-rcN
      • brainstorm alternative locking mechanism
    • Thermal framework enhancements for non-ACPI platforms
      • Get feedback from thermal tests PM-QA for all platforms and enable by default in LAVA
    • sched: modify timer and workqueue framework to allow migration
      • Get patches reviewed and accepted in mainline
      • Analyse users of workqueue subsystem to check which drivers would break by migrating work to other cpus, total of 1200 drivers found
      • Implement queue_work_on_any_cpu() type interfaces
    • Upstream stericsson u8500 suspend driver
      • Get clear the kernel requirements/constrains about suspend codes
      • Check the issue of rtc alarm doesn’t work
    • cpuidle: testsuite in PM-QA
      • Understand the existing tests
    • Upstream stericsson ab8500 thermal driver using new thermal framework
      • Keep reviewing and tracking patches for new thermal framework
      • Send out patches for upstreaming
    • Linaro PM QA 0.4.0 released
  • Toolchain
    • Linaro GCC 4.7 2013.01 released, based off GCC 4.7.2+svn194772
      • Includes arm/aarch64-4.7-branch up to svn revision 194808
      • Support for the rev16 and revsh instructions
      • A15 Neon pipeline backported from trunk
      • FMA intrinsic backported from trunk
      • Better extending core to NEON transfers
      • Fused multiply-add support
    • Linaro GCC 4.6 2013.01 released, based off GCC 4.6.3+svn194771
    • AArch64 Boehm GC port upstreamed
    • Multimedia filters in WebP submitted for upstream approval.
    • Linaro Toolchain Binaries 2013.01 released, updated to latest Linaro GCC 4.7 2013.01
  • LAVA
    • Filters now support a “compare” feature that allows comparing the results of two different jobs.
    • Filters results can now be downloaded as JSON data so people can generate their own custom reports.
    • Galaxy Nexus support added
    • pre-built CI images converted to use lava-test-shell
  • LEG
    • Linaro UEFI 2013.01 released. Highlights include fixes for native building of UEFI on ARM platforms and improvements to flashing images on Arndale boards.
      • imgburn.sh: add parameters and defaults
      • panda: Enable native building for Pandaboard
      • LP #1091447 UEFI: A9 crashes on boot with ATAGS
    • Linaro GRUB 2013.01 released.
      • Merge in latest upstream changes, including nested function removal.
      • Add cache line size probing for clean/invalidate operations
      • Fix a bug in D-cache clean operation.
      • Made code, especially Linux loader, more generic.

Visit https://wiki.linaro.org/Cycles/1301/Release for a list of known issues and further release details about the LEB, Android, Kernel, Graphics, Landing Team,  Platform, Power management and Toolchain (GCC / Qemu) components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

The End of Embedded Linux (As We Know It) – ELCE 2012

January 16th, 2013 5 comments

Chris Simmonds, freelance consultant and trainer (2net ltd), discusses the future of embedded Linux now that storage and processing power are no longer an major issue, and try to find the best Linux platform for embedded systems at ELCE 2012.

Abstract:

Embedded Linux is at a cross roads where the combination of Moore’s law making devices more powerful and the mass production of consumer devices, especially mobile, making them cheaper means that the old ways no longer work. Only a few years ago we though in mega: MHz, MBytes, MBits/s. Now we have to think in giga. The days of the single core CPU are almost over, as are the days of the QVGA display.

All this means that there is a need to re-think how embedded devices are programmed. Two obvious roads lie ahead: Android and Ubuntu (or other desktop operating system of your choice). This talk considers the possibilities and challenges in following either route, and considers how embedded engineers can make the best choices for future projects.

Where is Embedded Linux Headed? Mainstream distro, embedded Linux distro or Android?

Where is Embedded Linux Headed? Mainstream distro, embedded Linux distro, or Android?

Chris talk is structured as follows:

  • Overview
  • Evolution of embedded hardware
    • 10 years ago: 80 MHz MCU, 16 MB RAM, 8 MB NOR flash. Price: $500
    • Today: dual core @ 1.2 GHz, 1GB RAM, 4GB (and more) SD card  (Pandaboard). Price: $160
  • Cost of hardware – The Beagleboard started the low-cost board revolution
  • Embedded Linux past
    • Low RAM, clock speed, and amount of storage.  Headless, or simple user interface from keypad or touch screen.
    • Lots of specific tools – Cross toolchain, uClibc, busbox, read-only file systems, lots of custom BSP…
  • Embedded Linux now and the future
    • Clock speed, RAM and storage no longer an issue (less need for busybox, uClibc and small rootfs)
    • Storage move from flash to eMMC and SD card (reduced need for jffs2)
  • New problems: Complexity, user interface, maintainability and skill level.
  • My ideal embedded Linux OS – Multi-platform fully open source OS with good board support, minimal rootfs availability, reduce writes to storage, proper logging, remote upgrade,  good debugging tools and long term support.
  • Options – Choice between Mainstream Distro (e.g. Ubuntu, Debian, Fedora), Embedded Linux (e.g. Open Embedded, Yocto) and Android. He compares those 3 choices according to the criteria mentioned above.
  • Android is the winner? – Android barely won the contest, but it is monolithic, inflexible,  not a community project, and only good for devices that look like smartphones and tablets.
  • Conclusion – Future devices will take more from mainstream distros, but there’s more work to do, and there is always Android for some kind of devices

The presentation slides are available for download.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

F2FS – A New Flash File System for Mobile Devices – ELCE 2012

January 15th, 2013 No comments

Joo-Young Hwang, principal engineer at Samsung, presents F2FS (Flash-Friendly File System), a new file system designed for storage in mobile devices at the Embedded Linux Conference in Barcelona, Spain, on November 5, 2012.

Abstract:

Recent mobile devices adopt various flash storages as a primary storage. File system support for those flash storages is a must for flash device performance and lifespan. I will present a new file system, called F2FS, designed for mobile flash storages. F2FS is designed considering the characteristics of the underlying flash storage which has flash translation layer (FTL). F2FS outperforms EXT4, which is a popular file system for Android phones, in most of benchmarks. I will describe motivation, design, and implementation of the file system, then show performance comparison data with EXT4. Target audiences are those who are interested in file system support for flash storages such as eMMC and SSD. Kernel and file system expertise helps but is not mandatory to listen to this talk.

F2FS vs EXT4 - Bonnie++ Benchmark Result DUT: Pandaboard with Linux 3.3 and 64GB eMMC with 12GB partition

F2FS vs EXT4 – Bonnie++ Benchmark Results
DUT: Pandaboard with Linux 3.3 running in a 64GB eMMC with a 12GB partition

The talk is divided into 4 sections:

  • Introduction – NAND flash memories (SSD, eMMC, SD card) and current file systems and memory management used.
  • F2FS Design Overview
  • Performance Evaluation Results – Ext4 vs F2FS on eMMC in Pandaboard (Linux) and Galaxy Nexus (Android).
  • Summary

You can also download the slides for this presentation. You can find more information on F2FS lwn article. F2FS has been added to Linux 3.6 and greater.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Top 10 Posts of 2012 on CNXSoft Blog

December 31st, 2012 5 comments

This is the last day of the year, so it’s probably a good time to look back and see what interested people on this blog. This has been a banner year for low cost ARM devices and boards starting with the Raspberry Pi, then MK802 and the new mini PCs / HDMI TV dongles / PCs-on-a-stick (whatever you want to call them) that came after, always cheaper and faster. Those low cost devices have in turn made people really interested in ARM Linux, and lots of development on those little devices and boards started.

The top 10 posts of 2012, according to page views, reflect just those trends:

  1. 74 USD AllWinner A10 Android 4.0 Mini PC (May 2012) – MK802 started the whole “low cost mini PCs” craze, and drove the most traffic to this blog this year. People got excited about the price, form factor, and the possibility to run both Android and other Linux based operating systems.
  2. MK802 II Mini PC Now Costs as Much as Raspberry Pi Model B. Let’s Compare Them! (December 2012) – This post features the 2 stars of 2012: the Raspberry Pi and MK802 II HDMI TV donglwe (MK802 with 1GB RAM). As both device can now be bought for $35, and allow you to do very similar things, it’s was time for a head-to-head comparison. I’ve just written about it last week, and it got Slashdotted.
  3. WM8850-MID Android 4.0 Tablet Unboxing and Review (June 2012) – At the time, this Eken W70 clone featuring Wondermedia WM8850 Cortex A9 processor was a real bargain for $72 (including shipping). The firmware has a few issues however, and that’s what drove people to this post: looking for solutions.
  4. AllWinner A10/A1X Processor Resources, Development Board and SDK (December 2011) – This post was written just about one year ago, but traffic was steady all year, as people want to find out how to hack their AllWinner A10 tablets, media players and mini PCs.
  5. Mele A1000: AllWinner A10 (Cortex A8) Based Hackable Android STB (March 2012) – The Mele A1000 was my first Android device, and it got popular thanks to its relatively low cost, available ports (3x USB, SATA, VGA, HDMI…), and serial port which made it ideal for development of U-boot and the kernel. I still think it’s a good platform, but since then low cost development boards such as the Cubieboard has made it a little less attractive, and interest has somewhat faded in the last few months.
  6. Valueplus Tizzbird Stick N1: Android 4.0 HDMI/USB Media Player Dongle (March 2012) -  The Tizzbird Stick N1 was one the first mini PCs, and was showcased at CeBit 2012 several months before MK802. Unfortunately, it took many more months to finalize the design, and the product never took off, as other cheaper Telechips TCC892x based mini PCs appeared on the market. The only reason it got traffic is because I mentioned it in the $74 MK802 post at the top of this list.
  7. Mele A1000 Android 2.3 STB Unboxing and Review (April 2012) – In March, I was still waiting for the Raspberry Pi launch, but I noticed Barry Kauler (Puppy Linux) bought the Mele A1000 to keep him busy while he was also waiting for his Pi, and seeing the development around AllWinner A10, I decided to buy one as well. Apparently, I was not the only one interested as many people came here to read my review of this nice hackable media player.
  8. Mele A2000 Android 2.3 Media Player Powered by AllWinner A10 (April 2012) – The Mele A2000 is the little sister of the Mele A1000, which the same hardware, just a difference casing.
  9. Linaro Android Puts Stock Android To Shame on TI Pandaboard (OMAP4430) (June 2012) – Linaro showcased a demo showing an optimized version of Android could deliver twice the performance of stock Android on a particular benchmark running in Pandaboard. Bero commented on my post with details, and the post quickly became viral as developers wanted to give it a try. It turned out the improvement is actually more like 15 to 20%, but this is enough to double the framerate of this benchmark due to Vsync synchronization. It may also work in real games.
  10. Raspberry Pi Emulator in Ubuntu with Qemu (October 2011) – In 2011 and early 2012, the Raspberry Pi foundation promised much in terms of schedule, but initially failed to deliver, and many people get desperate enough to check the instructions to emulate an ARMv6 device and run Debian in QEMU to get started with development, before the Raspberry Pi hardware is available.

That will be the last post of 2012, so the “hardware team” (pictured below) and I would like to wish you a very happy and prosperous new year 2013, which I’m sure will be as exciting as 2012 for Linux/Android gadgets and boards, and we should see the first big.LITTLE processors and corresponding devices, ever cheaper tablets, smartphones and mini PCs, an interesting Intel vs. ARM fight for mobile devices, a proper XBMC ARM set-top box close to $50, new mobile OSes based on Linux (Tizen, Sailfish OS, Firefox OS…), and more…

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 12.12 Release with Linux Kernel 3.7 and Android 4.2.1

December 21st, 2012 5 comments

Linaro release 12.12 has just been announced, and includes Linux Kernel 3.7 and Android 4.2.1. The tracking version (stable release) uses Kernel 3.4.22.

This release upgrades Android to version 4.2.1, Ubuntu images are now based on Ubuntu 12.10 (Quantal Quetzal) and Linaro U-Boot 2012.12 has been released with support for Origen 4 Quad and Arndale boards. Further improvements have been done for OpenEmbedded ARMv8, where they replaced the php Apache module by php-fpm among other things. On the kernel side, USB drivers have been refactored, and a kernel size analysis have been performed on several platforms. The power management team has mainly worked on big.LITTLE IKS and MP implementations, and it’s the first time LEG (Linaro Enterprise Group) is included in the release, and they worked on UEFI for ARM, GRUB for U-Boot, and provided a Ubuntu server image for Arndale board which can boot via UEFI or UBoot.

Here are the highlights of this release:

  • Android
    • Platform Enablement
      • Android upgraded to 4.2.1
      • Android 12.12 toolchain released
      • Wifi on PandaBoard enabled for 4.2.1
      • Audio enabled for Origen 4210
    • LAVA/Testing
      • Support to handle 4.2.1 images were added
    • Upstreaming
      • Perf patches were rebased for 4.2.1 on 3.7 kernel
  • Developer Platform
    • Ubuntu baseline images are now based on the latest Ubuntu stable release, Quantal Quetzal (12.10)
    • CI loop for OpenEmbedded builds is set up: daily build are produced, boot tested and image report is available on LAVA dashboard
    • The developer rootfs contains the software stack required by the Kernel Working Group
    • Linaro U-Boot 2012.12 released, based off U-Boot v2013.01-rc1
      • include support for Origen quad (4412) and Arndale (5250) boards
    • Kernel package for IKS has been updated and b.L hardware pack converted to v3
    • OpenEmbedded ARMv8 build has been updated
      • Kernel updated to linux-linaro 3.7
      • binutils and gdb updated to HEAD
      • switch setup to use “–network bridged –network-bridge tap0″ by default to have host<>model networking
      • switch to use php-fpm instead of Apache module
    • Linux Linaro has been updated
      • based on linux-linaro-core-tracking tree, llct-20121211.0 tag:
        • based on v3.7 release
        • config fragments: updated config-core-tracking and basic-board-configs topics
        • emmc patches from Kernel WG
        • updated linaro-android-3.7 topic by John Stultz
        • gator version 5.12
        • big-LITTLE-MP version master-v13
        • devfreq topic from Rajagopal Venkat
        • “KBuild: Allow scripts/* to be cross compiled” patch included. This is all that remains from the ubuntu-sauce topic.
        • patches to enable perf in Android by Bernhard Rosenkraenzer
      • updated Versatile Express patches from ARM LT
      • updated Origen patches from Samsung LT
    • Linux Linaro tracking updated, v3.4 based
      • Gator version 5.12
      • updated tilt-3.4 topic from TI LT; now includes the 3.4.22 stable release
  • Graphics and Multimedia
    • A glmark2 canvas (backend) for rendering using the DRM stack without X11
    • A glmark2 scene rendering a translucent model with reflective properties (e.g., a “crystal” statue)
  • Kernel
    • Refactor USB Host Drivers
      • Analyzing ehci-hcd and echi-omap source code
      • Studying existing ehci-platform,echi-mxc, ehci-spear, and ehci-orion code
    • Research impact on kernel size for multi-platform configs
      • Identify appropriate defconfig file: u8500_defconfig, vexpress_defconfig
      • Kernel static size measurement
      • Currently we can start with ‘free’ and ‘/proc/modules’
      • Finalize dts file to use across all the platforms
      • zImage with built-in’s
      • zImage static size with and without init sections
      • Setup mmc rootfs for runtime size analysis for U8500 platform
      • Setup qemu-linaro for runtime size analysis for vexpress platform
      • Prepare mmc based rootfs with *.ko’s
      • Identify the zImage size with built-in and ‘*.ko’
      • Gather kernel image and runtime size data for Ux500 platform, Versatile express platform and i.MX platform
      • For each platform, identify FDT’d Modules that are participating for .ko
      • zImage with *.ko’s
      • Prepare mmc based rootfs with *.ko’s for u8500 platform
      • Identify the number of pages used before and after installing the modules
      • Followup with shawnGuo for runtime size data gathering on i.MX platform
    • Android upstreaming: Ashmem
      • Review Minchan’s v3 vma based appraoch, found an critical issue and reported it
    • Android upstreaming: Lowmem
      • Create mempressure cgroup per David Rientjes suggestions (this also involves making vmpressure calculations per-thread)
      • Develop feedback cycle interface per akpm’s & sent to lkml
      • Got some interest in using the new interface from kvm developer for automatic memory ballooning
    • Pincontrol GPIO range makeover
      • Patches for the above merged into Torvald’s mainline tree
    • Refactor EHCI controller code
      • Study existing ECHI code
      • Studying existing ehci-platform,echi-mxc, ehci-spear, and ehci-orion code
  • Power Management
    • Highlights
      • Getting b.L IKS out the door
        • Lots of benchmarking, kernel optimising, bug fixing and code cleanups
        • Power measurements and tuning using ARM’s workbench
      • Release new version of powertop based on upstream 2.2 version
        • New feature to view devfreq device states
      • cpuidle – create new tool to analyse idle intersection of multiple cores
        • useful for optimising cpuidle driver to achieve cluster shutdown
    • Optimise cpufreq for IKS
      • Refactor cpufreq driver
      • Replicate Mathieu’s work setup at my place to verify power figures
      • Fix cpufreq driver to work with on-the-fly disablement of bl_switcher
      • Host Automated Workload Benchmark Suite in a linaro private repo
      • Optimize/Fix issues in Workbench
      • Fix Nico/next kernel crashes due to cpufreq framework
      • Run lots of benchmark tests
      • Fix potential bugs in cpufreq core
      • Supply the same cpufreq driver to ARM LT Team
      • Work on spreadsheet used for keeping results
      • Fix any pending issues with cpufreq driver
    • Integration tree to bring together big.LITTLE MP related work
      • Host cpufreq-interactive-master (Host patches from Todd Poyners tree) and cpufreq-interactive-exp (master + optimization patches from Linaro) branches
      • Release v13 of big LITTLE MP tree
    • Tasking packing heuristics (Power-aware scheduler)
      • Make MP3 power measurement on TC2 ubuntu image with pack mechanism
      • Create an TC2 android image with packing mecanism
      • Make MP3 power measurement on TC2 android image with pack mechanism
      • Update ARM bench
      • Make power measurement on TC2 android image with pack mechanism and ARM bench
      • Prepare packing small task v2
      • Update TC2 firmware
      • Test IKS-MP kernel with packing small tasks
      • Fix function tracer with new kernel and firmware
      • Test cpu hotplug stree test on TC2 and get results
    • Thermal framework enhancements for non-ACPI platforms
      • Analyse ways to have more than one temp sensor and how to share cooling devices between 2 thermal zones
    • Keep powertop 2.xworking on ARM
      • Add devfreq support into powertop to display all devfreq devices freq stats perhaps in new window
      • Rebase powertop to new 2.2 version
    • Upstream stericsson u8500 suspend driver
      • Look through the u8500 suspend codes
      • Find out if there is any dependencies blocking u8500 suspend upstream
    • cpuidle: support for multi-cluster in the core
      • parse a ftrace file and load data
      • do statistics on average, min, max time on the fly
      • compute intersection intervals
      • optimize intersection algorithm for memory & speed
      • do statistics on intersections on the fly
      • display results
      • add options to the command line
      • add a cstate options to filter results
      • check plotting against intervals
      • create a wiki page the wakeup source and fill it step by step
    • Refactor the acpi cpuidle driver
      • fix power state recomputation and dynamic C-states
  • Toolchain
    • Linaro GCC 4.7 2012.12 released, based off GCC 4.7.2+svn194184
      • better 64 bit shifts in NEON
      • arm/aarch64-4.7-branch up to svn revision 194154
      • LP #1060221 – Fix ICE: libgrypt
    • Linaro GCC 4.6 2012.12 released, based off GCC 4.6.3+svn194340
    • Linaro QEMU 2012.12 released, based off upstream’s recent 1.3.0 release
    • Linaro GDB 7.5 2012.12 released, based the FSF GDB 7.5.1 release
    • Linaro Toolchain Binaries 2012.12 released, updated to latest Linaro GCC 4.7 2012.12 and Linaro GDB 7.5 2012.12
  • LAVA
    • The validation lab increased its IP space from 255 to 65k addresses to prepare for new devices and LEG use cases requirements.
    • The Toolchain WG PandaBoard boards have been updated to support hard and soft float images
    • Image Reports for Automated Testing of OpenEmbedded builds is now availale
    • A new server is deployed in the validation lab for audio, power measurement, and SD-mux capable devices.
    • We started to use the ‘salt’ tool to manage the lab infrastructure
    • LAVA can execute Versatile Express jobs using the test image’s DTB
    • VExpress-tc2 boards are converted to use IKS
    • The validation lab has increased the number of wireless access points available
    • The ‘cbuild’ service for the toolchain group is now running on a VM in the lab
    • The UI for finding, viewing and downloading attachments in the dashboard has been improved
    • Signal handlers can be written in shell and bundled with the tests themselves
    • Most lava-test and lava-android-test tests had lava-test-shell versions written for them
    • Subscriptions to test run filters work properly now. A user can choose to be notified on failed test job or always.
  • LEG
    • Completed the investigation of CRC32 for HDFS (Hadoop Distributed File System) optimisation
    • Ported and submitted Non-Uniform Memory Access patches to upstream
    • Enabled GRUB on U-boot
    • Enabled UEFI on Samsung Arndale board
    • Provide a pre-built Ubuntu server image for Arndale using either U-boot or UEFI

Visit https://wiki.linaro.org/Cycles/1212/Release for a list of known issues and further release details about the LEB, Android, Kernel, Graphics, Landing Team,  Platform, Power management and Toolchain (GCC / Qemu) components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

SoC Power Measurement with ARM Energy Probes and Linux EAP Tools

November 29th, 2012 No comments

Andy Green, TI Landing Team lead at Linaro,  gave an interesting presentation entitled “How to measure SoC power” at Linaro Connect Europe 2012. This talk was specifically aimed at software engineers, so that they know how to properly measure power consumption, and take actions to optimize the software to decrease it.

In the first part of the presentation, he gives an overview of electronics basics with definition of voltage, load, current and power, units used for power measurements (Clue: you need to use Watts), and how voltage, current and power can be measured with voltmeters and ammeters. When you want to measure power in a rail, you would usually insert a shun resistor, use a multimeter and derive the power from the resistance and the measured voltage (P=V2/R). He also gives details about regulator efficiency, choosing measurement sampling…

There are 4 common measurements strategies:

  • DC IN – Easiest way, gives the complete board consumption, but you cannot see exactly which parts of the board consume power
  • Indirect output-side regulator measurements – Measure at the regulator level
  • Shunts on all SoC rails – Useful to measure SoC power
  • Shunts on all board assets – Most ideal scenario, shunts on all power consumption in exact detail, using many channels. Samsung Origen board is particularly suited to this measurement strategy as the board breaks power tree into 14 shunts.

ARM Energy Probe (AEP) Hardware

The ARM Energy Probe (AEP) allows you to measure power via up to 3 channels composed of 2 voltmeters each. The channels appear as ttyACM serial ports in Linux. The green cable below is used for grounding.

ARM Energy Probe

This is the probe used at Linaro for power measurement, and Andy explains in details how to add 3 probes to the Pandaboard by soldering shunts at strategic locations on the board, headers for the probes, etc.. The final result looks like that:

You can get further information and/or a quote on ARM Energy Probe page. Documentation is available in ARM Information Center.

He then explains there can be variability in power measurement due to the weather temperature, measurement bandwidth (if you are really unlucky), differences between channels, low voltage (15mV) challenges, and more.

Power Measurement with Linux AEP App or AEPD + HTML5 User Interface

After going through electronics basics, power measurement methods, and having massively hacked your board to add probes, you can now take power measurement using AEP app, an open source command line tool for Linux or, possibly better, aepd daemon and seeing the result in an HTML5 page in your browser (Google Chrome or Chrome for Android).

Linux AEP app (arm-probe) gather measurements by synchronizes sampling across multiple energy probes, outputs ascii numbers in column format in a Gnuplot-friendly output, e.g.

Sample# volts amps watts

A better way is to capture the data via aepd daemon and transforms your web browser into a “power scope” as it updates data in real-time at 24 fps. The “power scope” is accessible via a local or remote network link.

AEPD “Power Scope” in Google Chrome

What makes it different from an oscilloscope, is that all samples can be recorded in to a file having basically an infinite data memory, and you can just see previous data by scrolling back in the browser. Other features include rail selection (so you only see one channel), instantaneous average, 2 sliders at the top of the window that allow to adjust the duration and power zoom, search function are more.

The source code for arm-probe, aep and libarmep is available on git://git.linaro.org/tools/arm-probe.git. This repo also contains a PDF presentation (arm-energy-probe-101.pdf) that gives further technical details about the ARM Energy Probe, and arm-probe command line  tool.

A recording of the presentation is available on Youtube (56 minutes with rather poor audio).

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter