Archive

Posts Tagged ‘toolchain’

Linaro Connect 2016 Bangkok Schedule – March 7-11, 2016

February 15th, 2016 No comments

Linaro Connect Bangkok (BKK16) will take place on March  7 – 11, 2016, and the schedule is now available for the 5-day event with keynotes and sessions. Whether you’re going to attend or not, it’s always interesting to check the schedule to find out what’s going on in terms of ARM Linux development.

Linaro_Connect_2016The five days will focus on work by different Linaro groups, but really sessions are mixed for any given day, and I’ve created a virtual schedule for each day with available information, as Linaro has become a little more closed to the outside than when it was launched a few years ago.

Monday 7 – LITE (Linaro IoT & Embedded Group)

  • 1400 – 14:50 – Evolution of the Reference Software Platform Project

The Reference Software Platform lead project was introduced in Linaro Connect San Francisco 2015, and since then it evolved and matured with the completion of the first tree big milestones (the 15.10, 15.12 and 16.03 releases). This session will revisit the work done as part of the previous releases, covering the projects that were incorporated through the process and our vision for the future milestones.

  • 15:00 – 15:50 – Budget Fair Queueing heuristics in the block layer 

The Budget Fair Queue (BFQ) I/O scheduler in the Linux block layer is a new heuristic approach to improving user-perceived latencies in block accessible media such as hard disks, SSD and (e)MMC and SD cards. Linaro is investing and helping in pushing this development ahead. The session describes what the BFQ patch set does and how.

  • – A Gentle Introduction to Trusted Execution and OP-TEE

Smart connected devices such as mobile phones, tablets and Digital TVs are required to handle data with strong security and confidentiality requirements. A “Trusted Execution Environment” (TEE) provides an environment for processing data securely, protected from normal platform applications. This talk is intended as an introduction to Trusted Execution, and the open-source Trusted Execution Environment OP-TEE in particular. It introduces the GlobalPlatform TEE Specifications, explains how Trusted Execution is implemented by ARM TrustZone and OP-TEE, and outlines how trusted boot software manages the secure boot of an ARM platform. Finally, it gives some pointers on how to get started with OP-TEE.

Tuesday 8 – LHG & LMG (Linaro Digital Home Group and MObile Group)

  • – PlayReady OPTEE Integration with Secure Video Path

This presentation provides a current view of the Security work performed in LHG. The focus is on hardware protected DRM integrated with OP TEE, creation of a Secure Data Path coupled with the Open Content Decryption Module, and the lessons learned from integrating third party libraries into trusted applications.

  • AOSP RAM reduction project retrospective

The Goal: Reduce AOSP memory requirements without hurting performance too badly.

What was tried:

  • Update toolchains
  • Make use of new features in updated toolchains
  • Split libraries into smaller parts
  • Tweak settings
  • Replace the memory allocator
  • Chromium with V4L2 playback – is it ready today?

This BOF session will analyze architectural challenges migrating Chromium from the desktop to embedded devices. The impacts of different GPU libraries with their respective limitations will be discussed. We welcome audience participation in an open discussion on the V4L2 adaptation in Chromium.

  • – What’s broken on ARM64?

The arm64 port is now in pretty good shape with most things ported and built in distros. However we know that there is plenty of software that is not optimised and some may not actually work at all. Please come along and moan about anything you have found which doesn’t work as well on arm64 as it does on x86. We (Linaro, ARM and Debian) want your feedback on where to direct effort next.

  • How to generate power models for EAS and IPA (without talking to a hardware engineer)

Generating a specific power model for the platform is a pre-requirement for deploying EAS (Energy Aware Scheduler) and IPA (Intelligent Power Allocation). This makes understanding power models and how to generate parameters for them a useful skill. In this session we demonstrate how to use workload automation to gather power data from a board. We will then describe how to derive rough values for the EAS and IPA power models using nothing but this easily observable data. We will not rely on any information provided by OEM or SoC vendor.

  • – Upstreaming 201

This session is an advanced course on Linux kernel upstreaming fundamentals. The course covers how the arm-soc kernel tree is maintained and why that is important to ARM Linux kernel developers. The focus of the course is the explanation of the detailed mechanics of creating and posting patch series to upstream mailing lists for several common cases. Annotated session content is made up of previously upstreamed ARM support captured from emails to the kernel mailing lists. The target audience is both software engineers and engineering managers preparing to upstream software into the kernel. The topic requires a solid background in software configuration management terminology and the git SCM tool as well as a good technical understanding of the Linux kernel itself.

Wednesday 9 – LEG (Linaro Enterprise Group)

This presentation provides the background for the requirements of the latest 96Boards TV Platform specification. It describes the range of set-top features that can be delivered and focuses on the key software and firmware support.

  • ARMv8 Server Lab Users BoF

The ARMv8 Server Lab has been up and running for more than a year since the inception in the late Fall of 2014 and helped continuously those who need server-grade hardware to verify their software, from the kernel to user applications. In this BoF at BKK16, the Server Lab users get together for the first time to review what we have accomplished so far and share knowledge obtained from our experiences in the Lab. Constructive feedback from the users should shape the direction of the Lab in the coming months of 2016. The BoF structure is as follows: possibly a few short talks from the users, 10-15 minutes each, will be given after the introductory address of the status of the Lab from the managers, followed by a discussion between the attendees.

  • – ILP32 Performance on AArch64

ILP32 is a programming model that may be useful on AArch64 systems for performance and also for legacy code with 32-bit data size assumptions. We combined ILP32 support from upstream projects with the LEAP distribution to enable experimentation with this model. This talk discusses the relative benchmark performance of the LP64 and ILP32 programming models under AArch64.

  • The tool called Auto-Tuned Optimization System (ATOS)

ATOS is an Auto Tuning Optimization System that is able to find automatically the best performance/size tradeoff from a build system and a training application. The input of ATOS tools are a build command and a run command. From the build command, ATOS will infer an internal build configuration that it will run with different sets of compiler options. These build configurations are executed with the run command from which code size and performance will be extracted.

From the set of build configurations that ATOS explores, one can extract the preferred trade-off between code size and performance. The extracted build configuration can be archived and replayed later in order to generate the optimized executable without any modification into the initial build system.

The nice property of ATOS is that NO modification of the sources or the makefiles are needed. ATOS can work on any large/deep project, as soon as the compiler used is gcc or LLVM under Linux.

  • – Integrating and controlling embedded devices in LAVA

Previous introductory tutorials on LAVA have focused on virtual platforms. This is an end-to-end tutorial as a basis to evaluate LAVA with one or more embedded targets using U-Boot. It integrates both a physical bootloader device with a stand-alone installation of LAVA, along with a simple PDU for target power control which is based on off-the-shelf Arduino components and fully integrated with pdudaemon. It covers device requirements, device configuration for 32- and 64-bit platforms, use of lavatool, tftp, pduclient and logging via the LAVA web interface and /var.

  • – ARMv8 Firmware Mini-Summit

Current state of ACPI on ARM
Support/backing for a longer term organization:  mailing lists ([email protected]), web sites, further meetings…
Use of _DSD device properties
Follow-up on others items from the last meeting (mostly promised documents).

Thursday 10 – LNG (Linaro Networking Group)

  • – Android HAL Consolidation Status

Update on progress and discuss next steps on Android HAL consolidation Lead Project

  • Applications on ODP

Session discussion on various opensource applications on ODP and their implementations. Applications to be discussed include NGiNX, TRex, OFP

  • – Device Tree Standardization

Announcement of the process to update the old specs and kernel documentation into a new Device Tree Specification

  • – Workspace setup tips and tricks 

The complexity of the tools and working environments is very high in IT area, especially in software engineering field. Thanks to Linux’s freedom of choice and flexibility it gets even higher. Due to the amount of time needed for learning all those bits of technology, it is not practically possible to set up an ideal workspace without talking to others and learning the results of their research. So, let’s come together and discuss hardware/software setups for our workspaces and learn from each other.

Friday 11 – 96Boards and Community

  • – Kernel and bootloader consolidation and upstreaming

An update to the state of reference platform kernel and bootloader and a discussion about the patch-inclusion policy. We’ll also cover roadmap plans. Participation is invited if you have ideas on how we can make it easy to use the reference platform kernel for your development projects.

  • 96Boards mezzanine hardware ecosystem

An overview of the work being done to support the mezzanine hardware ecosystem. Will cover the tools available, the boards that have already been created, and materials provided to support mezzanine board designers.

Materials require having registered to Linaro Connect BKK16, but several PDF slides have been uploaded to Linaro slideshare, you can get a peak if one subject interests you.

Anybody can attend, but you’ll need to purchase tickets ranging from 500 GBP ($726) for one day to 1,600 GBP ($2323) for the full week, unless you are a student,work in academia, or open source projects connected with ARM development, in which case you may get a free ticket.

STM32F746G-DISCO is a $49 Cortex-M7 Board with a 4.3″ LCD Display, Arduino Headers

August 7th, 2015 No comments

We’ve already seen Atmel started shipping its SAM V71 Xplained Board based on its latest Cortex M7 a few days ago, but Atmel is not the company which recently introduced a Cortex M7 development kit, as ST Micro also launched an STM32F7 Cortex M7 development kit with Arduino headers and 4.3″ LCD at the end of June.

STM32F7_Development_KitThe “Discovery Kit with STM32F746NG MCU” (STM32F746G-DISCO) comes with the following specifications:

  • MCU – STMicro STM32F746NGH6 Cortex M7 MCU with 1 MB Flash, 340 KB RAM, in BGA216 package
  • Memory – 128-Mbit (16 MB) SDRAM (64 Mbits accessible)
  • Storage – 16 MB Quad-SPI Flash memory, and micro SD slot
  • Display – 4.3″ 480×272 color LCD-TFT with capacitive touch screen
  • Camera – Camera connector
  • Connectivity – Ethernet connector compliant with IEEE-802.3-2002
  • USB
    • USB OTG HS with Micro-AB connectors,  USB OTG FS with Micro-AB connectors
    • USB functions: virtual COM port, mass storage, debug port
  • Audio – SAI audio codec, line IN and OUT jacks, stereo speaker outputs, 2x ST MEMS microphones, and S/PDIF RCA input connector
  • Debugging –  On-board ST-LINK/V2-1 supporting USB re-enumeration capability
  • Misc – 2x push buttons (user and reset)
  • Expansion Headers:
    • Arduino Uno V3 connectors
    • RF-EEPROM daughterboard connector
  • Power Supply
    • ST LINK/V2-1
    • 5V via USB FS connector or USB HS connector
    • VIN from Arduino connector
    • External 5 V from connector
    • Output for external applications: 3.3 V or 5 V
  • Dimensions – N/A

STM32F7-DISCOVERY_PinoutThe board supports various development toolchains such as IAR EWARM (IAR Embedded Workbench), Keil MDK-ARM, GCC-based IDEs (free AC6: SW4STM32, Atollic TrueSTUDIO,…), and ARM mbed online.  The company also released STM32CubeF7 embedded software for STM32F7 series which includes low level drivers, USB, TCP/IP, File system, RTOS, Graphic and more. You’ll need a Windows XP, 7, or 8 computer to use the board, because the drivers for ST-LINK/V2-1 are only available for Windows.

One developer got hold of the board and wrote a C program showing some of its graphics capabilities.

You can find more details, including the board’s user manual and hardware design files, as well as purchase the board on STM32F746G-DISCO product page.

Via Electronics Weekly.com

Thanks to Nanik for the tip.

How to Program STMicro STM8S $1 Board in Linux

April 13th, 2015 29 comments

In January, I discovered there was such thing as a one dollar development board based on STMicro STM8S103F3P6 8-bit MCU with 1KB SRAM, 8KB flash, and 640 bytes EEPROM, some GPIOs as well as I2C, UART, SPI, ADC, and PWM signals. Links to documentation and source code were provided, but development tools were only Windows based. However, one of my reader informed me SDCC (Small Devices C Compiler) supported STM8, and development in Linux should be feasible. So I decided to buy the board on eBay for $1.62, as well as an ST_link V2 programmer for STM8 / STM32 for $4.52 in order to flash the firmware.

The board came pretty quickly, i.e. within 2 to 3 weeks.

STM8S103F3_BoardBut due to a lost package, the programmer took nearly 3 months to reach me, as the seller had to re-send after I failed to receive it within 2 months.

ST-Link_V2_ProgrammerIt comes with 4 wires that need to be connected to RST/NRST, 3.3V, SWIM, and GND. To do so, I had to solder a 4-pin header on the side of the board.

To get started with STM8 on Linux, I found some information on ColeVision website where they explained how to run Drystone on STM8/128-EVAL board using SDCC as the compiler, and stm8flash to program the board.

So I’ve given it a try on Ubuntu 14.04 with the simple goal of blinking the TEST LED on the board. sdcc is an Ubuntu package, so it’s pretty easy to install:

Let’s check the version and some more information:

sdcc --version
SDCC : mcs51/gbz80/z80/z180/r2k/r3ka/ds390/pic16/pic14/TININative/ds400/hc08/s08 3.3.0 #8604 (Dec 30 2013) (Linux)

That’s version 3.3.0 released in December 2013 and it lacks STM8 supports, but the latest version (sdcc v3.4.0) has been released in April 2014, and we can get it with a PPA, so let’s use that one instead:

If you are using Ubuntu 14.10 or greater, you’ll already get the latest version.

Let’s double check stm8 is indeed supported:

sdcc --version
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8 3.4.0 #8981 (Jan 10 2015) (Linux)
published under GNU General Public License (GPL)

Great! stm8 is now present in the list of supported MCUs.

For the next step was to install stm8flash tool to program the device:

Now I had to find some code samples to blink the LED. I started but checking the samples for ST Visual Programmer and IAR tools, combine with a modified version of Drystone source code, but I always had some issues with the header files, and it seems a bit more work than expected. But then I discovered that Valentin Dudouyt, stm8flash developer, also provided code samples in his github account, including a blinky sample:

First, I tried to compile the samples, and they failed because sp_test.c was missing, so I edited the Makefile to remove sp_test.ihx, and build was successful. The LED on the board is connected to B5 GPIO, so at that point I had to check out STM8S103F3 datasheet to find out more about the registers used in the sample. The register map is in section 6.2 of the document, and I need to use three registers:

  • PB_ODR – Port B data output latch register (Sets pin HIGH or LOW)
  • PB_DDR – Port B data direction register (Sets direction to INPUT or OUTPUT)
  • PB_CR1 – Port B control register 1

Since pin 5 correspond to 00100000 (0x20) I updated blinky.c sample as follows:

I typed make again to generate an updated firmware (blinky.ihx), and flash it as follows:

All good and the LED started blinking…
STM8S_Blink_LED

So now you should be able to write simple program to control other GPIOs, I2C, SPI, UART with the board. But if your program is a little more complex a debugger could be useful, and there’s Texane STLink working on Windows, Mac, and Linux, that can run gdbserver for STM32… But I tried it for STM8.

Then I ran st-link:

Hmmm, it does not look good, and sadly there’s no support for STM8 yet, as STM32 and STM8 use different interfaces (SWD vs SWIM).

So if you have troubles debugging your program, you may have to revert to Windows based tools, at least for now, unless you’re up for the task and want to add STM8 support to Texane.

Linaro 15.03 Release with Linux 4.0 and Android 5.1

March 27th, 2015 No comments

Linaro has just announced their 15.03 release with Linux 4.0-rc4 (baseline), Linux 3.10.72 and 3.14.36 (LSK), and Android 5.1.

The organization has worked on hardware platforms from members namely Qualcomm, ARM, HiSilicon, Samsung, and STMicro, including the recently announced 96Boards boards, and other ARMv8 platforms.

Highlights of the release:

  • Linux Linaro 4.0-rc4-2015.03
    • updated linaro-android topic
    • added a few build/boot fixes for Arndale (llct-misc-fixes topic)
    • GATOR topic: version 5.20.1
    • updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support)
    • updated topic from Qualcomm LT (ifc6410 board support)
    • simple EEPROM framework (via Qualcomm LT’s topic)
    • updated topic from HiSilicon LT (Hi36xx, HiP04, and X5HD2 families support)
    • rebased “ILP32 patch set v3” onto 4.0-rc2
  • Linaro builds of AOSP 15.03
    • updated all the baselines to AOSP 5.1
    • added commit based trigger feature to CI builds
  • Linaro OpenEmbedded 2015.03
    • integrated Linaro GCC 4.9-2015.03
    • dismantled meta-aarch64 layer
    • created meta-ilp32 layer
    • cleaned out meta-bigendian layer
    • synced overlayed recipes with upstream
    • added full wget and rt-test on LAMP image as requested by QA team
    • update busybox xargs config as requested by QA team
    • integrated ODP 1.0
    • upstreaming:
      • sysprof: fix arm big-endian build
      • bitbake.conf: use http:// for GNU_MIRROR instead of ftp://
      • kexec-tools: fix build failure on aarch64_be architecture
      • busybox: update to 1.23.1 release
      • mozjs 17.0.0: fix aarch64 and 64k page builds, generic cleanups
  • Linaro Ubuntu 15.03
    • added packages: ti-calibrator
    • updated packages: LSK 3.10.72/3.14.36 and linux-linaro 4.0-rc4 kernels
    • Added ILP32 support for ARM64 to Linaro engineering builds
    • Dismantled meta-aarch64 in favour of OE-core aarch64 support
    • CI bring up: luvOS (Linux UEFI Validation Operating System)
  • KVM – support testing arm32 with arm64
  • Added b2120stxh410 to linux-mainline and linux-arm-soc-for-next build jobs
  • 96boards: enable Xorg by default in eMMC/SD debian build
  • Added 2 new build slaves
  • Migrated lt-qcom-ubuntu-images to docker based infrastructure
  • Upgraded ARMv8 build slaves to 3.19 kernel
  • Cleaned up LCR (Linaro Confectionery Release) information and instructions

Visit https://wiki.linaro.org/Cycles/1503/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.

Linaro 15.02 Release with Linux 3.19 and Android 5.0

February 27th, 2015 1 comment

Linaro 15.02 has just been released with Linux 3.19 (baseline), Linux 3.10.68 and 3.14.34 (LSK), Android 5.0.2, and Ubuntu Linaro Utopic.

Listed changes for Linux Linaro are exactly the same as last month, except they’ve used Linux 3.9 release. Power management tools have been added to their AOSP build, and some work has been done for Android 5.0 on the new Hikey board.

Here are the highlights of this release:

  • Linux Linaro 3.19-2015.02
    • GATOR topic: version 5.20.1
    • updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support)
    • updated topic from Qualcomm LT (ifc6410 board support)
    • updated topic from HiSilicon LT (Hi36xx, HiP04, and X5HD2 families support)
    • updated LLVM topic (the community llvmlinux-latest branch)
    • included ILP32 patch set v3 rebased onto 3.19. Initial tests using syscalls LTP tests done. When using ILP32 userland, a few tests have to be skipped (msgctl07, msgrcv0[1-7], msgsnd01) to avoid the stalls, and to make the testing to complete. No stalls with LP64 userland.
  • Linaro builds of AOSP 15.02 – Added Power Management Working Group tools (PM QAqa, powertop and powerdebug)
  • Linaro OpenEmbedded 2015.02
    • integrated Linaro GCC 4.9-2015.02
    • fixed linux-dummy to work with new rootfs.py depmod
    • fixed udhcpc command options to prevent
    • updated linux-linaro(-stable) recipes
    • dropped qemu overlay in favour of OE-core version
    • dropped kexec-tools overlay in favour of OE-core version
    • upstreaming – busybox: update to 1.23.1 release
  • Linaro Ubuntu 15.02 – added packages: ti-uim; updated packages: LSK 3.10.68/3.14.32 and linux-linaro 3.19 kernels
  • CI bring up: member build for TI J6-Vayu platform
  • Native ARMv8 build slave for CI
  • WIFI, bluetooth and USB integration with Android L for HiKey

Visit https://wiki.linaro.org/Cycles/1502/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.

Linaro 15.01 Release with Linux 3.19 and Android 5.0

January 30th, 2015 No comments

Linaro has just announced the first release of the year with Linux 3.19-rc3 (baseline), Linux 3.10.65 and 3.14.29 (LSK), Android 5.0.2, and Ubuntu Linaro Utopic.

Changes seem to have focused on ARM, Qualcomm, and HiSilicon hardware platforms such as Juno, and IFC6410, and some work has been done on Debian ARM64 rootfs.

Here are the highlights of this release:

  • Linux Linaro 3.19-rc5-2015.01
    • GATOR topic updated to version 5.20.1
    • builddeb topic: fixes for the dtb files location changes in 3.19 (vendor subdir introduced)
    • updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support)
    • updated topic from Qualcomm LT (IFC6410 board support)
    • updated topic from HiSilicon LT (Hi36xx, HiP04, and X5HD2 families support)
    • updated LLVM topic (uses the community llvmlinux-latest branch)
    • Included ILP32 patch set v3 rebased on 3.19-rc5. Initial tests using syscalls LTP tests are done: msgctl07 stalls when using ILP32 userland (no stall with LP64 userland).
    • config fragments updated:  audit.conf added to enable the audit feature testing on ARMv8; vexpress64: enabled devices used on Juno; Linaro builds of AOSP 15.01 is released
  • Android builds have been updated to 5.0.2
  • Juno firmware has been updated to 0.10.1
  • Linaro OpenEmbedded 2015.01
    • integrated Linaro binutils 2.25-2015.01
    • fixed linux-dummy after shared workdir changes in oe-core
    • updated linux-linaro(-stable) recipes
    • cleaned up overlayed recipes
    • added image recipe for ILP32 with LTP included
    • fixed GCC-4.8 builds
    • fixed LNG x86 machines
    • added workaround LAVA-isms with shell prompt
    • updated GATOR recipe to 5.20.1
    • upstreaming – fixed libgpg recipe in oe-core
  • Linaro Ubuntu 15.01
    • updated packages: Juno firmware 0.10.1, linux-firmware (include firmware needed for Linaro Community Builds), LSK 3.10.65/3.14.29 and linux-linaro 3.19-rc5 kernels
  • CI bring up: UpdateCapsule functionality testing
  • Debian x86_64 kernel/rootfs build with NFS support
  • CI bring up: audit enabled build
  • Add Debian ARM64 rootfs

You can visit https://wiki.linaro.org/Cycles/1501/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.

Linaro Connect Hong Kong 2015 Schedule and Demos

January 27th, 2015 2 comments

Linaro Connect Hong Kong 2015 will take place on February 9 – 13,2015 in Hong Kong, and the organization has released the schedule for the five days events with keynotes, sessions, and demos.

Linaro_Connect_Hong_Kong_2015Each day will start with the keynote including speakers such as:

  • George Grey, Linaro CEO, who will welcome attendees to Linaro Connect, and provide an update on the latest Linaro developments
  • Jon Masters, Chief ARM Architect, Redhat, who will present Red Hat update and latest ARMv8-A demonstrations
  • Dejan Milojicic, Senior Researcher & Manager, HP Labs
  • Bob Monkman, Enterprise Segment Marketing Manager, ARM, will discuss about  the impact of ARM in next generation cloud and communication network infrastructure
  • Greg Kroah-Hartman, Linux Foundation Fellow, will introduce the Greybus Project (Linux for Project Ara modular phones)
  • Warren Rehman,  Android Partner Engineering Manager, Google

The agenda also features sessions covering Android, ARMv8-A, Automation & Validation, Digital Home, Enterprise Servers, LAVA, Linux Kernel, Networking, Power Management, Security, Toolchain, Virtualization and multiple training sessions. I’ve gone through the full schedule to make my own virtual list of sessions.

Monday 9th

  • 14:00 – 14:50 – maddog: ARMv8 Optimization (No abstract)
  • 15:00 – 15:50 – ACPI Power Management on ARM64 Servers (No abstract)
  • 16:10 – 17:00 – Standardizing Linux Kernel Power Management on ARM 32/64-bit

The 32-bit ARM kernel supports a wide variety of processors harking back to ARM v4 architecture up to the latest v7 SMP processors. This huge legacy forced kernel developers to adapt the power management code for the newest processors (eg v7 multi-cluster systems) to an infrastructure that was developed to support simpler uniprocessor (UP) ARM architectures, resulting in code fragmentation and lack of unified drivers.

The brand new ARMv8 architecture provides kernel developers a clean slate to start developing new code, a nice opportunity to learn lessons from the past and bring about a kernel power management (PM) subsystem completely generic and up to the latest standards. This talk will provide details of the undergoing effort carried out at ARM to develop a kernel PM framework for ARM v8 systems, with kernel design details of the respective DT and ACPI implementations.

Tuesday 10th

  • 10:10 – 11:00 – UMEQ (User Mode Emulation Quest)

UMEQ (user-mode emulation quest) and has been developed to eliminate the functional deficiencies of qemu in user mode (multi-threaded applications, signal handling, etc). Umeq primarily targets ARM 64-bit. The presentation will focus on the architecture principles of umeq and on its implementation.

  • 11:15 – 12:05 – Solving the year 2038 problem in Linux

The concept of ‘time’ in Linux is encoded in many different ways, but the most common one is based on the ‘time_t’ type that counts the number of seconds that have passed since Jan 1, 1970. This type is currently defined as ‘long’, which on 32-bit systems is a signed 32-bit number that will overflow on Jan 19 2038 and likely cause all systems existing today to stop working.

In our presentation, we give an introduction to range of problems that we see across user space and kernel, and we talk about the work that we are doing to address some of these issues.

  • 12:10 – 13:00 – Browser Testing Framework for LHG

The purpose of this talk is to provide the audience with an introduction to the testing framework used in Web browser performance testing as implemented by LHG (Linaro Home Group). The browser test suite is used to compare browser performance and compliance by using a series of benchmarks in key test categories. Sample browser results for both Android and RDK will be presented.

  • 14:00 – 14:50 – Training 1 – FOSS
  • 15:00 – 15:50 – Training 2 – Upstreaming 101
  • 16:10 – 17:00 – Training 3 – Upstreaming 200

Wednesday 11th

  • 10:10 – 11:00 – Art’s Quick Compiler: An unofficial overview

One of the important technical novelties introduced with the recent release of Android Lollipop is the replacement of Dalvik, the VM which was used to execute the bytecode produced from Java apps, with ART, a new Android Run-Time. One interesting aspect in this upgrade is that the use of Just-In-Time compilation was abandoned in favour of Ahead-Of-Time compilation. This delivers better performance, also leaving a good margin for future improvements. ART was designed to support multiple compilers. The compiler that shipped with Android Lollipop is called the “Quick Compiler”. This is simple, fast, and is derived from Dalvik’s JIT compiler. In 2014 our team at ARM worked in collaboration with Google to extend ART and its Quick Compiler to add support for 64-bit and for the A64 instruction set. These efforts culminated with the recent release of the Nexus 9 tablet, the first 64-bit Android product to hit the market. Despite Google’s intention of replacing the Quick Compiler with the so-called “Optimizing Compiler”, the job for the the Quick Compiler is not yet over. Indeed, the Quick Compiler will remain the only usable compiler in Android Lollipop. Therefore, all competing parties in the Android ecosystem have a huge interest in investigating and improving this component, which will very likely be one of the battlegrounds in the Android benchmark wars of 2015. This talk aims to give an unofficial overview of ART’s Quick compiler. It will first focus on the internal organisation of the compiler, adopting the point of view of a developer who is interested in understanding its limitations and strengths. The talk will then move to exploring the output produced by the compiler, discussing possible strategies for improving the generated code, while keeping in mind that this component may have a limited life-span, and that any long-term work would be better directed towards the Optimizing Compiler.

  • 11:15 – 12:05 – Secure Media using DMA-buf

Secure data path for media streams involve lots of differents software and hardware elements and is very complexe. The goal of this talk is to expose an hardware independent proposition using open-TEE and dmabuf. Feedback from all SoC experts is more than welcome.

  • 12:10 –  13:00 – OP-TEE for Beginners and Porting Review

Explains the building blocks involved in Security including TrustZone, OP-TEE, Trusted Firmware etc. Goes into detail on how Secure Boot Works.. and Why. Explains how a simple secure Trusted Application interacts with OP-TEE and works. Brief overview on how to port OP-TEE to an ARM platform. Opens discussions for Potential Challenges and Hardware limitations and how they can be overcome.

  • 14:00 – 18:00 – Hacking sessions or training (no description provided)

Thursday 12th

  • 10:10 – 11:00 – Chromium Blink on Wayland with HW accelerated video playback using Gstreamer

Linaro and STM implemented an integration layer between Chromium and Wayland/Gstreamer. The solution allows HW accelerated video playback, high performance GPU accelerated HTML5 rendering. The approach uses hole punching mechanism to compose the UI layer on the top of the video content. The Gstreamer Chromium plugin is implemented trough the Pepper API. The presentation will provide implementation details on the Wayland/Chromium/Gstreamer integration.

  • 11:15 – 12:05 – EME implementation in Chromium: Linaro Clear Key

An example of a key system from a Clear Key point of view. Linaro implemented a sample CDM plugin for Chromium capable to exercise the EME implementation of the browser. The presentation gives an insight to the EME/CDM implementation in Chromium and the guidelines to integrating various DRM systems. We will present call flows with example classes, experiences learned, and example of things to watch out for.

  • 12:10 – 13:00 – ARM v8-A NEON optimization

With FFT optimization as an example, the following topics are discussed:

  1. Performance boost using ARM v8-A NEON
  2. NEON-optimization workflow for Ne10
  3. Some tips with example of Ne10 FFT and Android libraries
  4. Performance comparison between assembly and intrinsic
  • 14:00 – 18:00 – Hacking sessions or training (no description provided)

Friday 13th

  •  10:10 – 11:00 – Toolchain Performance Analysis and Investigations

This session will present a workflow of analyzing application or benchmark performance and ways investigate how performance can be increased by improving the toolchain. The session will cover use of profiling tools, reading of compiler optimization dumps, reducing optimization problems using compiler debug counters, and submitting optimization request/bug report to compiler developers

  • 11:15 – 12:05 – Power Management interactions with OP-TEE and Trusted Firmware

Understand what use cases related to Power Management have to interact with Trusted Firmware via Secure calls. Walk through some key use cases like CPU Suspend and explain how PM Linux drivers interacts with Trusted Firmware / PSCI (Power State Coordination Interface).

That’s it for the schedule, I find there are a lot of sessions about security, mainly OP-TEE, so this should become something important.

Linaro 2015 Demos

Beside keynotes, sessions, and training, there will be several demos during the event including:

  • Linaro Clear Key CDM
  • Chromium on Wayland with Gstreamer
  • Linaro Web Browser Test Framework
  • Demo of VLANd
  • l2fwd (See code on github)
  • OVS – x86 – ARM
  • ODP on Cavium platform
  • OpenJDK running on ARMv8 hardware
  • OpenStack running on ARMv8 hardware
  • Android support for clang 3.6 and gcc 5.0
  • Ceph on remote server cluster
  • UEFI on BeagleBone Black

If you want to attend Linaro Connect HK 2015, you can register online for £941.50 (~$1420 US). Live and recorded sessions should also be available for free via Linaro OnAir YouTube account.

Linaro 14.11 Release with Kernel 3.18, Android 5.0, & Ubuntu Utopic. Debian 8.0 Gets ARM64 Port

November 28th, 2014 3 comments

Linaro 14.11 has been released with Linux kernel 3.18-rc5 (baseline), Linux 3.10.61 & 3.14.25 (LSK, same versions as last month), and Android 4.4.2, 4.4.4, and for the first time Android 5.0 Lollipop. There’s also been some news with regards to Linux desktop distributions, as Ubuntu baseline has been upgraded to Utopic (14.10), and Debian 8.0 (Jessie) will officially support ARM64 with 93% of packages built as of November 5th. Android Lollipop images are said to be built for TC2, Juno, Nexus 7, Nexus 10, and FVP models, but I could not find the images. Finally, it’s the first time I’ve noticed Hisilicon X5HD2 development board with a dual core Cortex A9 processor, but apparently it’s the same as Hi3716cv200.

Here are the highlights of this release:

  • Linux Linaro 3.18-rc5-2014.11
    • updated GATOR to version 5.20
    • updated topic from Qualcomm LT (include IFC6410 board support)
    • updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support)
    • updated integration-hilt-linux-linaro topic by HiSilicon LT (Hi36xx, HiP04, and X5HD2 families support)
    • updated LLVM topic (uses the community llvmlinux-latest branch) includes ILP32 patch set v3 rebased on 3.18-rc5. Build tested only.
  • Linaro builds of AOSP 14.11
    • built with Linaro GCC 4.9-2014.11
    • migrated to Android 5.0 (Lollipop) for all the targets on all CI loops. Here are the combinations: TC2-LSK-3.10, TC2-LSK-3.14, Juno-LSK, Nexus 7, Nexus 10, FVP-LSK-3.10 and FVP-LSK-3.14.
    • updated LSK pre-merge CI for 3.10 and 3.14
    • revamped to use overlay manifest with local_manifests
    • added AOSP master builds setup for Versatile Express TC2, Juno, Nexus 7 and Nexus 10
  • Linaro OpenEmbedded 2014.11
    • integrated Linaro GCC 4.9-2014.11
    • included perf tools in the rootfs
    • fixed gator FTBS
    • updated strace aarch64_be patch
    • fixed external toolchain support
    • upstreaming:
      • updated LTP to 20140828 release
      • updated PM QA to 0.4.14 release
      • updated ACPICA to 20140828 release
  • Linaro Ubuntu 14.11
    • Ubuntu baseline migrated from Trusty to Utopic
    • updated packages: Juno firmware 0.9.2, LSK 3.10.60/3.14.24 and linux-linaro 3.18-rc5 kernels
  • Debian release team announced ARM64 architecture has made enough progress to be a released architecture for Debian 8.0 (Jessie)
  • SELinux support is enabled in linux-linaro kernel
  • Test usage of Linaro toolchain binary to build OE rootfs has been added
  • CI bring up: coresight enabled build for TC2

You can visit https://wiki.linaro.org/Cycles/1411/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.