Archive

Posts Tagged ‘linaro’

Linaro 14.03 Release with Linux Kernel 3.14 and Android 4.4.2

March 28th, 2014 No comments

Linaro 14.03 has just been released with Linux Kernel 3.14-rc7 (baseline), Linux Kernel 3.10.33 (LSK), and Android 4.4.2.

This month, I could not find any major changes or updates, but work has been performed on big.LITTLE, Samsung Arndale / Arndale-octa, HiSilicon K3V2 and D01 boards and Broadcom Capri hardware, as well as ARMv8 models.

Here are the highlights of this release:

  • Linaro Stable Kernel (LSK) 3.10.33-2014.03
    • big.LITTLE support – ARM MP patch set, IKS (ARMv7 only). Interactive scheduler enhancements
    • ARMv8 features – CPU frequency scaling, CPU topology, CPU suspend
    • Power efficient workqueue support
    • Android v3.10 patch set from AOSP
    • GATOR
    • ARMv8 4xA57 4xA53 FVP (Fixed Virtual Platform) and Versatile Express TC2 support
  • Linux Linaro 3.14-rc7-2014.03
    • GATOR version 5.17
    • Android topic (linaro-android-3.14-merge) updated to get the recent code from AOSP
    • uprobes v7 (new version)
    • Updated big-LITTLE-pmu topic from ARM LT (Landing team)
    • Updated basic Capri board support from Broadcom LT (bcm590xx pmu and regulator drivers, Kona PWM controller support, and bcm21664 board added)
    • Updated big endian topic
    • Updated Arndale_Octa/Arndale/Origen patches from Samsung LT.
      • proper fix for the data abort issue on Arndale-Octa added (“ARM: dts: Disable MDMA1 node for Arndale-octa board”)
      • drivers/thermal/samsung/exynos_tmu* code cleaned up, TMU support for Exynos5420 SoCs added
    • Updated Versatile Express patches from ARM LT
    • Versatile Express arm64 support (FVP Base and Foundation models) from ARM LT
    • Updated K3V2 board support from HiSilicon LT
    • HiSilicon HiP0x Cortex A15 family / D01 Dev Board support added by HiSilicon LT
    • cortex-strings-arm64 topic (same as in 2014.02)
    • config fragments changes – Thermal config for arndale and arndale_octa enabled
  • Linaro Toolchain Binaries 2014.03
    • updated to latest Linaro TCWG (Toolchain Working Group) releases – Linaro GCC 4.8-2013.03, Linaro binutils 2.24-2014.03
    • updated Android NDK to new upstream release r9d
  • Linaro Android 14.03 – Built with Linaro GCC 4.8-2014.03, mmtest failures in LAVA have been fixed
  • Linaro OpenEmbedded 2014.03
    • integrated Linaro GCC 4.8-2013.03 and Linaro binutils 2.24-2014.03
    • added extra ACPI tools to images
    • switched recipes using git.linaro.org from git to http protocol
    • upstreaming – updated git to 1.9.0, updated FWTS (Firmware Test Suite) to 14.02.00
  • Linaro Ubuntu 14.03 – new package: xf86-video-freedreno 1.0.0, updated packages: libdrm 2.4.52 and linux-linaro kernels
  • Initial HiSilicon D01 member build is delivered
  • Arndale Octa build based on LT kernel has been setup for SWG (Security Working Group)
  • Made good progress on integrating VPS build slaves into android-build.linaro.org

You can visit https://wiki.linaro.org/Cycles/1403/Release for a list of known issues, and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, 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
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

OpenCL Accelerated SQL Database with ARM Mali GPU Compute Capabilities

March 20th, 2014 5 comments

We’ve previously seen GPU compute on ARM could improve performance for mobile, automotive and consumer electronics application. GPU compute offload CPU task that can be parallelized to the GPU using APIs such as OpenCL or RenderScript. Most applications that can leverage GPU compute are related to media processing (video decoding, picture processing, audio decoding, image reconigion, etc…), but one thing I did not suspect could be improve is database access. That’s what Tom Gall, Linaro, has achieved in a side project by using OpenCL to accelerate SQLite database operations by around 4 times for a given benchmark.

SQLite Architecture and "Attack Point" for OpenCL Implementation

SQLite Architecture and “Attack Point” for OpenCL Implementation

The hardware used was a Samsung Chromebook with an Exynos 5250 SoC featurig a dual core Cortex A15 processor and an ARM Mali T604 GPU. CPU compute is only possible on ARM Mali T6xx and greater, and won’t work on Mali 400 / 450 GPUs. Other GPU vendors such as Vivante and Imagination technologies also support GPU compute in their latest processors.

As a first implementation, he added an API to SQLite, but eventually the code may be merged inside SQLite, as it would also to accelerate existing applications using SQLite. This type of acceleration will work best with large tables, and parallel tasks.  For benchmark purpose, Tom used a 100,000 row database with 7 columns and ran the same query (select * from testdb) using the SQLite C API and his OpenCL accelerated API. Here are the results:

  • SQLite C API – 420.274 milliseconds
  • OpenCL accelerated SQLite API – 110.289 milliseconds

The first test ran fully on the Cortex A15 cores @ 1.7 GHz, whereas the OpenCL test mostly ran on the Mali-T604 GPU clocked at 533 MHz (TBC). The time includes both the running of the OpenCL kernel and the data transfer from the result buffer.

More work is needed, but that seems like an interesting application for GPU compute in some use cases. I would expect to see no gain for query performed in small tables for example. The modified OpenCL code does not appear to be available right now, but you may want to read GPGPU on ARM presentation at Linaro Connect Asia 2014 for a few more details about the implementation, and if you want to play around OpenCL 1.1 (or OpenGL ES) in Linux on a Chromebook, you can follow those instructions.

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

Huawei D01 Server Board Features 16 ARM Cortex A15 Cores with up to 64 GB RAM, 3 SATA, 2 GbE Ports

March 18th, 2014 7 comments

During Linaro 14.02 release, I noticed a Huawei D01 board with 16 ARM Cortex A15 core, but details were lacking. Charbax was a Linaro Connect Asia earlier this month, and he could film the board in action, and interview the development team about this server board, and software development.

Huawei D01 Server Board

Huawei D01 Server Board

Huawei D01 specifications:

  • Processor
    • HiSilicon SoC with16 x ARM Cortex-A15 CPU Core @ max. 1.5GHz (up to 84000 DMIPS)
    • Support for CPU configuration as AMP/SMP
    • Configurable Big or Little endian. Default: Little endian
  • System Memory – 2x 64bit DDR3 DRAM Dual Inline Memory up to 1600 MHz, Module(DIMM) sockets:(2)&(3) . Default capacity: 8GB, upgradeable to 64GB
  • Storage – 2x 1Gb NOR Flash, 2x 512MB NAND Flash, 3x SATA III for 2.5″ hard drives or SSD, 1x SD card
  • Connectivity – 2x 10/100/1000Mbit/s Gigabit Ethernet ports, 1x 10/100Mbit/s FE port
  • Other Peripheral Interfaces
    • 2x USB 2.0 Host ports
    • 2x UART, 4x I2C, 2x SPI supporting four CSs
    • GPIO – 8x LED interfaces, 8x switches
    • 2x Tracer Connector
    • 1x JTAG interfaces( 5×2 pin CPU Connector, ARM Connector)
  • Expansions – 1x PCI Express interfaces, 3x MDIO interfaces
  • Hardware Monitor Subsystem – Power consumption sense
  • Misc -  Power-off and reset buttons

The BIOS resides in the NOR Flash and support update via FTP. The board runs Ubuntu server OS with Linux 3.13 (upgraded to 3.14 soon), and the target market is mostly cloud based applications. Linaro will use the board for developing software for Hisilicon, and as a native ARM build machine.

Watch the video below. Warning: Noisy ARM server!

You can find more technical details on Linaro D01 page.

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

Linux Kernel Upstreaming How-To – Linaro Connect Asia 2014

March 4th, 2014 1 comment

I’ve already written a post about submitting kernel patches to mainline based on a 2011 presentation by Greg Kroah-Hartman, but Matt Porter, Broadcom Landing Team (LT) Technical Lead at Linaro, has given two updated talks entitled “Upstreaming 101″ and “Upstreaming 201″ at Linaro Connect Asia 2014. There are many planned talked during LCA 2014, and you can get the list as well as links to presentation and videos, as they become available on LCA 14 resources page.

Upstream Code Flow

Upstream Code Flow

The first session “Upstream 101″ starts with some definitions such as “upstreaming” (basically getting your code to  kernel.org), “mainline”, etc, explains how to get information about the (912) maintainers (tip: it’s in the MAINTAINERS file), how to deal with the 2-week merge windows occurring every 10 weeks or so, but the bulk of the talk detailing the work flow required to upstream code to the Linux kernel.

There are basically 5 steps:

  1. Preparation – Read the kernel documentation, check what others are going.
  2. Creation – Follow the docs, ask questions, run checkpatch.pl, etc…
  3. Posting – Post to code the the relevant mailing list via git
  4. Feedback – You’ll most probably get feedback, asking for clarification or changes to your patch. Answer promptly.
  5. Maintenance – Once you patch is accepted you’ll have to responsibility to maintain the code.

You can download the presentation slides.

The next session “Upstream 201″ is described as “advanced course on kernel upstreaming fundamentals”, but Matt Porter spends time showing example how commit messages, mailing discussion DO and DON’T, as well as example upstreaming a new SoC (AllWinner A1X), and a new driver (Watchdog for bcm281xxx).


The presentation slide are also 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
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro Connect Asia 2014 Opening Keynote – Status and Future of ARMv8 Linux & Android [Video]

March 3rd, 2014 No comments

Linaro Connect Asia 2014 has just started in Macau today and will take place until Friday. You can follow the sessions live and/or their recordings via Linaro OnAir YouTube Channel. I’ve watched the opening keynote, and embedded the video at the bottom of this post. The keynote focuses on ARMv8 for Linux and Android on servers, mobile devices, digital home, and more, and involves two main speakers: George Grey, Linaro CEO , and Jon Masters, Chief ARM Architecture at Red Hat.

Linaro_Connected_Asia_2014

The speaker beginning of the video provides some practical information and the schedule for Linaro Connect. The keynote itself really starts around 15:50 with George Grey who spends the first 10 minutes introducing the latest Linaro members: Qualcomm, Mediatek, ZTE, AllWinner and Comcast. He then talks about the new Mobile sub-committee (MOBSCOM) that will focus on big.LITTLE, Android optimization and Android on ARMv8, as well as the soon-to-be-announced Linaro Digital Home Group composed of AllWinner, ARM, Comcast, Fujitsu, HiSilicon, and STMicro, that will work on STB / IPTV software implementation such as secure media playback. A large part of the talk is about boot architecture (ACPI, UEFI, ARM Trusted firmware…), and the debates ACPI vs FDT (Device Tree), U-boot vs UEFI, and so on. Other subjects discussed are ARM security with the recently formed Security Working Group, Virtualization, Middleware working on Aarch64 (LAMP and OpenJDK) and Android on 64-bit. The latter will require a lot more work, and actual hardware for validation of the work done on ARMv8 fast models, and to speed up code development. Finally he quickly mentions Linaro is still working on ARMv7 architecture, and preliminary work is done for Cortex-M with Yocto/OpenEmbedded support.

At the 50 minutes mark, Jon Masters takes over to talk about 64-bit ARM servers. He stresses several key points for ARM to be successful in the server market:

  1. Upstream first (to kernel.org), as Red Hat will only use code from mainline for servers
  2. Single binary required
  3. Must follow standards (SBSA, ACPI, UEFI…)
  4. Default to open (source and communication)

He explains that compared to last year hardware is now available, talks about hyperscale computing, and mention the “up to 25% market share for ARM servers in 2019″ quote from AMD. He explains there are challenges however, and the server market is much different from the embedded world, so CENH (Cute Embedded Nonsense Hacks) are not allowed for ARM servers. Long term (10+ years) support for toolchain and kernel are needed, with backports if necessary, and Fedora/Red Hat will never ever release an OS with a device tree file and/or U-Boot.

Finally he announces a Red Hat ARM Server Developer Preview will be released later this year, compliant with SBSA, and using UEFI and ACPI, and show demo running on Applied Micro X-gene Mustang board running an early version of the developer preview which boots with UEFI, and supports ACPI.

Watch the full keynote below for details (1h30).

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

Linaro 14.02 Release with Linux Kernel 3.14 and Android 4.4.2

February 28th, 2014 No comments

Linaro 14.02 has just been released with Linux Kernel 3.14-rc3 (baseline), Linux Kernel 3.10.30 (LSK), and Android 4.4.2 r2.

There are been a lot of patches for Linaro members boards, and including the latest GTS big.LITTLE processing patch, as well as speeds up to Android 4.4 performance. There’s also a Linux image (password protected) for Huawei D01 board with a 16-core ARM Cortex A15 @ 1.5 GHz SoC with up to 64 GB memory, that must be an unannounced SoC for base stations or other network equipment.  This month Linaro also made two important announcements: Qualcomm is now a Linaro member, and the Linaro Security Working Group (SWG) has been setup to develop open source secure software for the ARM architecture. The first projects will be reference implementations of the W3C Embedded Media Extension (EME), and secure boot for the 64-bit ARM Cortex-A series processors. They’ll also work on security for the Linux kernel.

Here are the highlights of this release:

  • Linaro Stable Kernel (LSK) 3.10.30-2014.02 released – Updated to latest version of GTS patch set for big.LITTLE, and Android support (from Google and Linaro)
  • Linux Linaro 3.14-rc3-2014.02 released
    • gator version 5.17 (same as in 2014.01)
    • new version of the Android topic (linaro-android-3.14-merge) by John Stultz
    • uprobes v5 (new version)
    • new cortex-strings-arm64 topic (optimized memcpy, memmove, memset, memcmp, strcmp, and strlen functions)
    • updated big-LITTLE-pmu topic from ARM LT
    • updated basic Capri board support from Broadcom LT (updates to gpio driver and clock framework support)
    • updated big endian topic
    • updated Arndale_Octa/Arndale/Origen patches from Samsung LT
    • updated Versatile Express patches and added vexpress64 support (FVP Base and Foundation models) from ARM LT
    • updated K3V2 board support from HiSilicon LT
    • config fragments changes – added config fragments for uprobes/kprobe, android.conf: enable CONFIG_SYNC and family, add ION configs.lt-arndale.conf and lt-arndale-octa.conf introduced to hold the options specific for linux-linaro tree
  • Linaro Toolchain Binaries 2014.02- Include a Fortran compiler, updated to Linaro GCC 4.8-2014.02 release, updated Newlib to 2.1, featuring various optimizations and better aarch64 support
  • Linaro Android 14.02 released:
    • built with Linaro GCC 4.8-2014.02
    • updated to the 4.4.2_r2 upstream version
    • memory handling functions from cortex-strings have been merged into Bionic, leading to significant speedups
    • updated pm-qa to 0.4.7
    • improved CTS and methanol test results
    • Linaro Android tree can now be built with gcc 4.9 without modifications
  • Linaro OpenEmbedded 2014.02 released:
    • updated OpenDataPlane to track git
    • added LNG x86 machines
    • merged toolchain fixes, contributed by Khem Raj
    • integrated 2014.02 toolchain
    • added extra tools to images (build-essential, git, xz) to enable more test suites at runtime
    • enabled GRUB2 for aarch64
    • included EFI/ACPI related tools for LEG
    • upstreaming – added mongodb recipe, fixed curl and git SSL issues, submitted git 1.9.0 recipe, updated LTP recipe
  • Linaro Ubuntu 14.02 released
    • added startup-nsh package, contains startup script used to boot with UEFI
    • updated packages: u-boot-linaro-arndale-octa (support HDMI audio and network boot), idlestat
  • Linux Linaro LNG 3.10.27-2014.02 released – Updated to PREEMPT_RT patchset rt25
  • Linux Linaro LT HiSilicon 3.14-rc1-2014.02 released – Included support for K3V2
  • Linaro UEFI 2014.02 is released (source only)
  • Linaro Image Tools 2014.02 released – Added Arndale Octa support for Android builds
  • Linaro Test Suites 2014.02 released
    • Openembedded SDK tests modifications
    • jtreg: updates to blacklist
    • ACPI: updated maintainers and removed ABAT
    • ubuntu/exec-latency.yaml: Add new test
    • Add openembedded smoke tests
    • pmqa: run sanity file before starting tests
    • is-cpu-isolated: Print exact isolation time instead of STRESS_DURATION
    • is-cpu-isolated: Check again if stress is already completed or not
    • KVM: added parsing hackbench measurements
    • aapits: Update git repo link
    • is-cpu-isolated: Increase stress duration to analyze interruptions
    • Add lshw test
    • netperf-client: fix set local_ip to the correct ip
    • netperf-server: if netserver started pass else start it
    • OE/netperf: adding mac mapping table for the LNG-lab
    • common/scripts/netperf-client: tee to view output
    • network-test-basic: Add support for different interface
  • Linaro PM QA 0.4.7-2014.02 released
    • cpuhotplug: skip hotplug check for cpu0
    • added common function to check the userid
    • test feature supported before running suite
  • Linaro GCC 4.8-2014.02 released – Based off the latest GCC 4.8.3+svn207411 release, ARM-v8 crypto intrinsics support, new vectorizer cost model
  • Linaro Newlib 2.1.0-2014.02 released – Based off the latest upstream newlib release, resynced with upstream newlib trunk, added specs file for ARM validation model,provided ftruncate() and truncate() stubs for ARM and AArch64

Visit https://wiki.linaro.org/Cycles/1402/Release for a list of known issues, and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, 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
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

ARM Unveils System Base Architecture Specification to Standardize ARM based Servers

January 31st, 2014 1 comment

64-bit ARM based servers should hit the market later this year or earlier in 2015 with SoCs such as Applied Micro X-Gene or AMD Opteron A1100. ARM still has the lead in terms of efficiency with a lower dollar per watt ratio, but Intel is closing in with their new Avoton server-on-chips. However, there’s one aspect where Intel is clearly in the lead: standardization and compatibility. ARM is very flexible, and allow SoC designers to create more or less what they want, but it comes at the cost that most ARM based systems are not capable of running mainline Linux, and instead use vendor trees.  With many applications, that may not be critical, but when it comes to data-centers, companies want to be able to run the latest Linux version with the latest security patches as soon as possible, and want to lower the total cost of ownership (TCO), so they don’t want to spend considerable resources to handle different hardware platform. This is currently not feasible, but ARM together with their partners, including silicon vendors such as AMD, Applied Micro Cavium, and Texas Instruments, and software companies such as Canonical, Citrix, Linaro, Microsoft, Red Hat and SUSE, have jointly announced the System Base Architecture Specifications to standardize all ARM based servers so that one single OS image can run on all ARMv8-A server.

SBSA_Specifications

The SBSA specification does not address the application layer, but it standardizes low-level CPU and SoC attributes such as timers, interrupt controllers, watch dog timers, performance counters and also specifies minimum hardware requirements that firmware and OS vendors expect to be present. To be compliant, server will also need to run industry standards for bootloader and firmware,  with all hardware being describable or discoverable. There are three levels of standardization:

  • Level 0 – Defines CPU Architecture, Interrupt Controller, Memory Map, IO Visualization, Clock and Timer Subsystem, Wake up semantics, Power State Semantics and Peripheral Subsystems
  • Level 1 – Based on Level 0 with extra requirements with regards to CPU Architecture, Interrupt Controller, Clock and Timer Subsystem, Watchdogs, Requirements on power state semantics, and Peripheral Subsystems
  • Level 2 – Based on Level 1 with extra requirements with regards to CPU Architecture, Interrupt Controller (inc. PPI assignments),  Memory Map, Requirements on power state semantics, IO Visualization, Clock and Timer Subsystem, Wake up semantics and Watchdogs

Most recent ARM SoCs, such as Opteron A1100, are likely to only support Level 0 or 1 at first. I haven’t read the specifications in details, but for example, Level 0 defines SoC with up to 8 CPU cores, Level 1 is still limited to a maximum of 8 cores, but adds minimum requirements for the number of PMU counters, watchpoints and breakpoints, and Level 2 supports SoC with up to 2^28 (268,435,456) CPU cores which is the maximum supported by GICv3 architecture.

If you want to find out the details, you can download the specifications from ARM website, after registration and accepting an EULA. Alternatively, since the document is non-confidential, the EULA is also listed in page 2 to 4 of the document, you can download it directly here.

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