Feel free to keep your application short. A 15 page essay is no better than a 2 page summary. If you wish to write 15 pages, you are of course welcome to do so, and we will gladly put your paper up on the web page. But it is not required for the application.

How to apply

Some Caveats

Google Summer-of-Code projects are a full (day-) time job. This means we expect roughly 30-40 hours per week on your project, during the three months of coding. Obviously we have flexibility, but if your schedule (exams, courses) does not give you this amount of spare time, then maybe you should not apply.

Getting paid by Google requires that you meet certain milestones. First, you must be in good standing with the community before the official start of the program. We suggest you post some design emails to the mailing list, and get feedback on them, both before applying, and during the "community bonding period" between acceptance and official start. Also, you must have made progress and committed significant code before the mid-term point.

We are thinking of requiring accepted students to have a blog, where you will write about your project on a regular basis. This is so that the community at large can be involved and help you. SoC is not a private contract between your mentor and you.

Note that "regular basis" in the last item does _not_ mean "3 days before evaluation deadlines". You should be "around" all the time (reporting your feedback, sending in partial successes).
We don't expect our students to be experts in our problem domain, but we don't want you to fail because some basic misunderstanding was in your way of completing the task.

Time Frame

DEADLINE FOR STUDENT APPLICATIONS: Students who are interested in working on a coreboot-related GSoC project must apply between March 29, 2010 and April 9, 2010! If you want to apply, please get in contact with us right away, not just when you send your application!

Student requirements

We will only accept your proposal if you have demonstrated that you can work with our codebase. For that, you have to send a patch to the list which is acceptable. Just ask for simple tasks on the mailing list or on IRC.

Contact

If you are interested in becoming a GSoC student, please contact Stefan Reinauer.

There is also an IRC channel on irc.freenode.net: #coreboot

Possible ideas

Infrastructure for automatic code checking

We already have a build bot that builds various configurations of coreboot. It would be nice to extend it with various code validation routines, for example:

Validate that there's no regression in doxygen documentation (eg. are all arguments to functions still explained in @param tags, eg. after new arguments were added?)

Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions

Use LLVM's static code checking facilities, report regressions.

Work on code coverage support for coreboot code (dump data into ram, or via serial. Provide tools to fetch it). Analyse that data.

Links

Mentors

TianoCore on coreboot

Tiano Core is Intel's EFI implementation. Unlike coreboot, it is not a firmware, but rather a bootloader. Last year we started porting TianoCore to run on coreboot, but there are many things left to do. Improve Tiano Core running as a coreboot payloads, or change coreboot so it can load Tiano Core as a payloads.

This project requires no hardware skills, but especially in case of TianoCore might require knowledge of Windows compilers (VC2005?)

Links

Mentors

coreboot port to Marvell ARM SOC's with PCIe

Marvell Processors These ARM SOC's with PCIe will become popular in netbooks later this year. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.

coreboot port to AMD 800 series chipsets

(probably too big of a task)

coreboot mass-porting to AMD 780 series mainboards

(since code is now available)

coreboot panic room

(maybe just reuse the SerialICE core, too small project for full GSoC)

coreboot cheap testing rig

create a cheap testing rig which works with the existing board test infrastructure

coreboot GeodeLX port from v3 to v4

significant parts of that are already done, so it's hard to fill a full GSoC with that. One thing could be "verify that everything is brought over", but that's nothing that can be reasonably proven (and it might also be too close to "documentation tasks", which are not allowed)

drivers for libpayload

IDE, AHCI, Bluetooth, Firewire, Smartcards, maybe filesystems. Work towards making FILO only a shell, which uses libpayload for the "real" work. Notice that libpayload code must be licensed BSD-style (so ports from FILO, SeaBIOS or Linux won't work).
Pick a given set and tell us why it's enough work for the allocated time, but not too much for you. Also, which sources (if any) you want to draw from.

Board config infrastructure

Design data structures that host information about the board layout so coreboot can better initialize components and generate all kinds of tables (mptable, pirq, acpi, ...) from that dynamically (at build or runtime, as appropriate). Adapt boards to use that instead of the current hardcodes.

flashrom

Note: The list below is an idea collection. Many of the projects are simple enough to serve only as partial GSoC task

Your own Project Ideas

We have come up with some ideas for cool Summer of Code projects here. These are projects that we think can be managed in the short period of GSoC, and they cover areas where coreboot is trying to reach new users and new use cases.

But of course your application does not need to be based on any of the ideas listed below. The opposite: Maybe you have a great idea that we just didn't think of yet. Please let us know!

Feel free to contact us at the email address above, and don't hesitate to suggest whatever you have in mind.