The main page is at SummerOfCode2013.

All the the project descriptions should follow the following template.

Title of the project

  • Description of the project: At least 8-10 lines describing the project. It is essential to have a good description of your project idea if you want to attract good student applications. You should have enough information here to guide a prospective student when they're deciding whether to work on your project or not. Don't go too technical here, necessarily; you don't need to spell out your complete design for a project, nor should you. Give potential applicants the core idea of what you're thinking/expecting, and be prepared to work with them on their interpretation of the project as/when they apply.

  • Confirmed Mentor: Name of the mentor

  • How to contact the mentor: (mail, IRC, etc)

  • Confirmed co-mentors: It is not compulsory to have co-mentors, but it is definitely a good idea. Secondary mentors do not need to be as knowledgeable as the primary mentor, but they should be available to help the student as/when necessary (e.g. the primary mentor is on vacation)

  • Deliverables of the project: A clear and simple description of what you expect from a successful project

  • Desirable skills: Skills that the student has or is willing to develop. Remember, the students are not likely to have as much experience as the mentor!

  • What the student will learn: Tell the students what they should expect to pick up from the project, and how they will make a difference to Linaro. Help to motivate them here!

Projects with confirmed mentors

Please keep this section clear of project ideas without confirmed mentors, to avoid any confusion for prospective students. Such projects should be published in the next section.

AArch64 porting

  • Description of the project: ARMv8 is the newest version of the ARM CPU architecture, and with it comes a new 64-bit execution state called AArch64. The new 64-bit world includes a new instruction set with features such as more advanced SIMD capability, instructions to speed up software cryptography, increased register files, flexible addressing modes, support for tagged pointers, 64k data pages, a new exception model, enhanced cache management and enhanced floating point operations (IEEE754-2008). Making the most of these new features will necessitate porting of existing software: multimedia making use of SIMD for performance, multi-threaded applications and libraries using atomics for thread safety, etc. We have already identified a large example set of Free and Open Source Software packages where assembly is used and looks like it will need porting (more details). There is much more work here than Linaro engineers are going to be able to cover themselves, so we're looking for bright students to help!

  • Confirmed Mentor: Steve McIntyre

  • How to contact the mentor: , SteveMcIntyre on

  • Confirmed co-mentors: TBA, we may have several iterations of this project targeting different packages

  • Deliverables of the project: A successful student will pick one or more existing Free Software package(s) that will benefit from ARMv8 porting, targeting threading, performance and other issues. Working with a mentor, he/she will generate patches to add useful improvements, document the benefits and submit them upstream.

  • Desirable skills: An appreciation of the challenges of porting software to new architectures, analysing existing software and identifying necessary changes. Low level skills such as assembly programming will be a major plus, depending on the package in question.

  • What the student will learn: How to work on a small team improving existing software; picking up knowledge about the latest CPU architecture which will be coming to mobile and other platforms very soon.

Projects without confirmed mentors

This page contains project ideas that have been suggested but do not (yet!) include confirmed mentors. These projects won't happen if nobody steps up to the task of mentoring them.

If you are willing and able to mentor one of those projects, please add your name to the Mentors section and move the paragraph back up the the first section.

If you want to add an idea, please follow the template below. But before doing so, please consider mentoring the project, and/or looking for co-mentors to help you doing so. Not having mentors means the project won't happen.

DTS schema and linter

  • Description of the project: Device Tree is a technology used to provide kernel with information on available devices and their properties during the boot time. Device tree is the new way of providing this information to kernels on ARM SOCs instead of hard-coding the same data in the kernel itself. In this project we would like to implement a schema against which device tree sources (DTS) can be validated and also a linter kind-of utility to run against DTS and check its proper formatting and style.

  • Confirmed Mentor: none

  • How to contact the mentor: TODO (mail, IRC, etc)

  • Confirmed co-mentors: none

  • Deliverables of the project: DTS schema and linter utility, implemented in a way that will make it easy to use in kernel developer's typical working setup

  • Desirable skills:

    • Basic Linux kernel developer basics
    • Shell scripting
    • Data parsing and validation
  • What the student will learn: You will get deep insight into device tree technology that is the cornerstone of booting linux kernel on ARM SOCs. You will improve you understanding of kernel development process.

SummerOfCode2013/ProjectIdeas (last modified 2014-02-13 17:22:31)