<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.coreboot.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.coreboot.org/api.php?action=feedcontributions&amp;user=Hailfinger&amp;feedformat=atom</id>
		<title>coreboot - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.coreboot.org/api.php?action=feedcontributions&amp;user=Hailfinger&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Special:Contributions/Hailfinger"/>
		<updated>2013-05-20T09:21:37Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.5</generator>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T01:39:07Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Board config infrastructure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and mostly based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Rudolf Marek?&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SoC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
While the links below are still relevant, we nowadays have a coreboot port for ARM Exynos. It was contributed by Google and the chip is used in a Chromebook. This means porting to other ARM SoCs is now easier due to generic infrastructure being in place.&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SoC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
We had some data structure work being done in coreboot v3 (based on DTS device tree source), but the approach back then didn't have the desired results. Still, if you want to tackle this task you can get some valuable information in past coreboot v3 discussions about what's feasible and what's infeasible.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* Check out the various devicetree.cb files in the src/ directory of the coreboot repository.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Depends on your choice of data structures (different mentors have different areas of expertise for this)&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* src/cpu/amd/ inside the coreboot source tree&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[OpenVSA]], [[AMD Geode Porting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Marc Jones?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T01:37:45Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Board config infrastructure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and mostly based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Rudolf Marek?&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SoC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
While the links below are still relevant, we nowadays have a coreboot port for ARM Exynos. It was contributed by Google and the chip is used in a Chromebook. This means porting to other ARM SoCs is now easier due to generic infrastructure being in place.&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SoC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
We had some data structure work being done in coreboot v3 (based on DTS device tree source), but the approach back then didn't have the desired results. Still, if you want to tackle this task you can get some valuable information in past coreboot v3 discussions about what's feasible and what's infeasible.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* Check out the various devicetree.cb files in the src/ directory of the coreboot repository.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* src/cpu/amd/ inside the coreboot source tree&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[OpenVSA]], [[AMD Geode Porting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Marc Jones?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T01:31:23Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot port to ARM SOC's with PCIe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and mostly based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Rudolf Marek?&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SoC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
While the links below are still relevant, we nowadays have a coreboot port for ARM Exynos. It was contributed by Google and the chip is used in a Chromebook. This means porting to other ARM SoCs is now easier due to generic infrastructure being in place.&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SoC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* src/cpu/amd/ inside the coreboot source tree&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[OpenVSA]], [[AMD Geode Porting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Marc Jones?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T01:24:10Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot ACPI 4.0 and S3 power management support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and mostly based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Rudolf Marek?&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SOC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SOC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* src/cpu/amd/ inside the coreboot source tree&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[OpenVSA]], [[AMD Geode Porting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Marc Jones?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T01:23:38Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Refactor AMD code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and moslty based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SOC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SOC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* src/cpu/amd/ inside the coreboot source tree&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[OpenVSA]], [[AMD Geode Porting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Marc Jones?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T01:19:12Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* AMD VSA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and moslty based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SOC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SOC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[OpenVSA]], [[AMD Geode Porting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Marc Jones?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T00:50:43Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: Undo revision 11699 by me, it was a bad idea&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and moslty based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SOC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SOC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Project_Ideas</id>
		<title>Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Project_Ideas"/>
				<updated>2013-03-30T00:34:24Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: Mention that some links are missing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are some ideas that have come up in the community. Some are more or less suitable for [[GSoC]] and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
'''''NOTE: Some links/mentors are missing. Those will be filled in before the org application review starts (April 1st, see official GSoC timeline).'''''&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Minimal coreboot and firmware experience, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* https://wiki.ubuntu.com/Kernel/Reference/fwts&lt;br /&gt;
* http://biosbits.org/ &lt;br /&gt;
* http://linuxfirmwarekit.org/&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker], http://klee.llvm.org/&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Semantic Tester: https://code.google.com/p/c-semantics/&lt;br /&gt;
* [http://frama-c.com/ Frama-C]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== Implement coreboot features for more boards ==&lt;br /&gt;
A lot of cool coreboot features are only available for a subset of the supported mainboards:&lt;br /&gt;
* global variables in romstage&lt;br /&gt;
* relocatable ramstage&lt;br /&gt;
* cbmem console&lt;br /&gt;
* timestamps&lt;br /&gt;
&lt;br /&gt;
This project would analyze how to bring those features forward to more boards and work on doing so.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools like benchmarks for CPU and RAM performance. Konstantin Aladyshev reported according to the benchmark [http://www.cs.virginia.edu/stream/ STREAM],  RAM access on his system with coreboot is four times slower than with the proprietary vendor BIOS. Such issues should be easily spotted with the test suite.&lt;br /&gt;
&lt;br /&gt;
The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
* [[Supported Motherboards]]&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:MJones|Marc Jones]], [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently release cpu and chipset support. The goal would be to support publicly available platforms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
&lt;br /&gt;
* [[User:ruik|Rudolf Marek]]&lt;br /&gt;
&lt;br /&gt;
== Tianocore as payload ==&lt;br /&gt;
&lt;br /&gt;
What SeaBIOS is for PC-BIOS interfaces, Tianocore is for UEFI - in fact, it's the reference implementation that most commercial UEFIs are built on. While coreboot favors other design goals than UEFI, it's really useful to support this standard that's being pushed on the market, just like SeaBIOS really helped coreboot by providing a BIOS &amp;quot;frontend&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There's already some code, but there's still much room for improvement: A graphics driver that uses a preinitialized (by coreboot) framebuffer. A CBFS driver so Tiano can access coreboot flash storage. Based on that, a flash driver (maybe adapted from flashrom) to implement non-volatile variable storage by writing to flash.&lt;br /&gt;
&lt;br /&gt;
Possible tasks depend a lot on existing knowledge of the candidate. Few of the tasks are large enough to fill the entire GSoC time frame with one of them. Feel free to discuss with us on IRC what a suitable target could be for you.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* http://www.tianocore.org/&lt;br /&gt;
* https://github.com/pgeorgi/edk2/tree/coreboot-pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI 4.0 and S3 power management support  ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific and moslty based on ACPI 2.0. Create a generic solution for ACPI 4.0 table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==coreboot port to ARM SOC's with PCIe==&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/products/silicon-devices/epp/zynq-7000/index.htm Xilinx Zynq-7030]&lt;br /&gt;
&lt;br /&gt;
[http://www.altera.com/devices/fpga/cyclone-v-fpgas/hard-processor-system/cyv-soc-hps.html  Altera Cyclone V ]&lt;br /&gt;
&lt;br /&gt;
[http://www.st.com/internet/mcu/product/251211.jsp  ST spear1340]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ARM]] SOC's with PCIe are available. These systems can take advantage of coreboot's strength in properly configuring PCI devices, fast boot time and payload support.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
There was an ARM project started in 2011. &lt;br /&gt;
&lt;br /&gt;
http://blogs.coreboot.org/blog/2011/05/11/gsoc2011-project-porting-coreboot-to-arm-architecture/&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system. &lt;br /&gt;
&lt;br /&gt;
The basic idea is that the system flash image always contains executable for SerialICE. Instead of loading a coreboot romstage, firmware can boot to SerialICE based on some GPIO state, a keypress sequence or a logged failure on earlier boots. It is possible to integrate this into the coreboot build tree as a bootblock option, in the same spot as the fallback/normal switch and the simple loader.&lt;br /&gt;
&lt;br /&gt;
Having this capability opens up new possibilities:&lt;br /&gt;
&lt;br /&gt;
During the lifetime of a mainboard, new requirements for ACPI hacks and CPU microcodes introduce the need to update boot firmware at customer site. The firmware shall have recovery path against any failures during the firmware update process. The most straight-forward solution is to do intelligent allocation of files in the CBFS such that files critical to the recovery are located on write-protected pages. The recovery path shall require only an USB mass-storage with compatible filesystem (ext2, fat32).&lt;br /&gt;
&lt;br /&gt;
The ability to dual-boot reduces the amount of tools required to reverse-engineer proprietary BIOS on ports for new mainboards. It is increasingly common that the flash chips are a) not socketed or b) physically hard to access (laptops). Even if chipset support existed already for a board, there are a lot of configuration registers for PCI-e links and GPIO signals that are difficult to get right by code disassembly only. With panic room implementation there would be no need to use external programmers or flashchip hot-swap method to alternate between SerialICE (for proprietary BIOS) and coreboot romstage boots.&lt;br /&gt;
&lt;br /&gt;
SerialICE requires minimal hardware resources and does not require installed RAM or display hardware. It could be used as the first power-on environment after mainboard PCB verification and assembly to verify integrated components enumerate correctly. At the end of this first power-on, actual board firmware can be programmed without the need for external programmers and SOIC-8 clips, as the SPI controller embedded in the chipset can be used instead. As setting up EHCI debug port console is fairly simple across different chipsets, it can be used to print detailed diagnostics instead of POST codes on LPC bus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GSoC 2011 project [http://blogs.coreboot.org/blog/2011/05/09/gsoc-project-coreboot-panic-room-diagnostics-also-remote-flashing/] was able to:&lt;br /&gt;
* Link flashrom with libpayload and flash from USB drive in a pre-OS environment.&lt;br /&gt;
* Optimise flashrom memory usage to flash in pre-ram/cache-as-ram environment.&lt;br /&gt;
* Build SerialICE boot ROM inside the coreboot tree and share some of the PnP/SuperIO source code.&lt;br /&gt;
* Demonstrate booting alternative payload on keypress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are remaining open tasks to:&lt;br /&gt;
* Bring the GSoC 2011 patches up-to-date with current flashrom and libpayload trees.&lt;br /&gt;
* Create generic solution to jump to recovery mode using input from GPIOs and/or use of power-button override.&lt;br /&gt;
* Use SMBus/SMLink to send POST failure codes over ethernet using integrated network controllers.&lt;br /&gt;
* After panic(), dump RAM contents before they are overwritten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
Alternatively, figure out a way how to build them in parallel and have coreboot select the right one on runtime.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AMD VSA ==&lt;br /&gt;
&lt;br /&gt;
Get the source code of AMD's VSA compiled and working with an open source toolchain. Integrate the it into the current build system.&lt;br /&gt;
&lt;br /&gt;
'''Links'''&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
'''Mentors'''&lt;br /&gt;
* ?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GSoC</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GSoC"/>
				<updated>2013-03-28T23:24:49Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot Mentors */ add myself&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to coreboot [http://www.google-melange.com/gsoc/homepage/google/gsoc2013 Google Summer of Code, 2013]. &lt;br /&gt;
&lt;br /&gt;
coreboot has many [[Project Ideas]] for various firmware ability levels. The coreboot project also hosts [http://flashrom.org/GSoC flashrom] and [http://serialice.com/GSoC SerialICE] projects.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
== Important dates ==&lt;br /&gt;
&lt;br /&gt;
* March 29: Mentoring organization application deadline.&lt;br /&gt;
* April 1–5: Google program administrators review organization applications.&lt;br /&gt;
* April 8: List of accepted mentoring organizations published on the Google Summer of Code 2013 site.&lt;br /&gt;
* April 9–21: Would-be student participants discuss application ideas with mentoring organizations.&lt;br /&gt;
* April 22: Student application period opens.&lt;br /&gt;
* May 3: Student application deadline.&lt;br /&gt;
&lt;br /&gt;
== coreboot contact ==&lt;br /&gt;
&lt;br /&gt;
If you are interested in becoming a GSoC student, please contact the coreboot [[Mailinglist|mailing list]] or visit our [[IRC]] channel &amp;lt;code&amp;gt;#coreboot&amp;lt;/code&amp;gt; on [https://webchat.freenode.net irc.freenode.net].&lt;br /&gt;
&lt;br /&gt;
If you need to contact someone directly, [mailto:marcj303@gmail.com Marc Jones] is the GSoC admin for coreboot.&lt;br /&gt;
&lt;br /&gt;
= Why work on coreboot for GSoC 2013? =&lt;br /&gt;
&lt;br /&gt;
* coreboot offers you the opportunity to work with modern technology “right on the iron”. coreboot supports current silicon from AMD and Intel. &lt;br /&gt;
* coreboot has a worldwide developer and user base.&lt;br /&gt;
* We are a very passionate team – so you will interact directly with the project initiators and project leaders. &lt;br /&gt;
* We have a large, helpful community. coreboot has some extremely talented and helpful experts in firmware involved in the project. They are ready to assist and mentor students participating in GSoC 2013.&lt;br /&gt;
* One of the last areas where open source software is not common is firmware. Running proprietary firmware can have severe effects on user's freedom and security. coreboot changes that by providing a common framework for initial hardware initialization and you can help us succeed.&lt;br /&gt;
&lt;br /&gt;
= GSoC Student requirements =&lt;br /&gt;
&lt;br /&gt;
What will be required of you to be a coreboot GSoC student?&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a full (day)time job. This means we expect roughly 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. &lt;br /&gt;
&lt;br /&gt;
# Prior to project acceptance, you have demonstrated that you can work with the coreboot codebase. &lt;br /&gt;
#* By the time you have submitted your application, you should have downloaded, built and booted coreboot in QEMU, SimNow, or on real hardware. Please, email your serial output results to the mailing list. &lt;br /&gt;
#* Send a patch to Gerrit for review. Check [[Easy projects]] or ask for simple tasks on the mailing list or on IRC.&lt;br /&gt;
# To pass and to be paid by Google requires that you meet certain milestones. &lt;br /&gt;
#* 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 &amp;quot;community bonding period&amp;quot; between acceptance and official start.&lt;br /&gt;
#* You must have made progress and committed significant code before the mid-term point and by the final.&lt;br /&gt;
# We require that accepted students to maintain a blog, where you will write about your project weekly. This is a way to measure progress and for the community at large to be able to help you. SoC is not a private contract between your mentor and you. http://blogs.coreboot.org/&lt;br /&gt;
# Student must be active on IRC and the mailing list. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Projects =&lt;br /&gt;
There are many development tasks available in coreboot. Please visit the following pages for some ideas or come up with your own idea. &lt;br /&gt;
* [[Project Ideas|coreboot project ideas]]&lt;br /&gt;
* [http://www.flashrom.org/GSoC flashrom project ideas]&lt;br /&gt;
* [http://serialice.com/GSoC SerialICE project ideas]&lt;br /&gt;
&lt;br /&gt;
We keep a list of [[previous GSoC Projects]] which might be of interest to you to see what others have accomplished.&lt;br /&gt;
Similarly the [http://blogs.coreboot.org/blog/category/gsoc/ blog posts related to previous GSoC projects] might give some insights to what it is like to be a coreboot GSoC student.&lt;br /&gt;
&lt;br /&gt;
== Your own Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
We have come up with some ideas for cool Summer of Code projects. 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.&lt;br /&gt;
&lt;br /&gt;
But of course your application does not need to be based on any of the ideas listed. The opposite: Maybe you have a great idea that we just didn't think of yet. Please let us know!&lt;br /&gt;
&lt;br /&gt;
= coreboot Mentors =&lt;br /&gt;
&lt;br /&gt;
The following coreboot developers are interested in being GSoC mentors. Please stop by IRC and say hi to them and ask them questions about coreboot.&lt;br /&gt;
&lt;br /&gt;
Note to mentors: Each accepted project will have a lead mentor and a backup mentor. We will match mentors and students based on the project, experience level, and geographic location (native language, culture and time zone). &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Role !! Comms&lt;br /&gt;
|-&lt;br /&gt;
| Marc Jones || coreboot:  co-organizer and mentor  || IRC: marcj&lt;br /&gt;
|-&lt;br /&gt;
| Patrick Georgi || coreboot: possible co-organizer and mentor || IRC: patrickg, pgeorgi&lt;br /&gt;
|-&lt;br /&gt;
| Stefan Reinauer || coreboot/serialice:  mentor  || IRC: stepan&lt;br /&gt;
|-&lt;br /&gt;
| David Hendricks || flashrom: possible mentor || IRC: dhendrix, [http://www.flashrom.org/mailman/listinfo/flashrom flashrom ML]&lt;br /&gt;
|-&lt;br /&gt;
| Joshua Roys || flashrom: possible mentor || IRC: roysjosh&lt;br /&gt;
|-&lt;br /&gt;
| Rudolf Marek || coreboot: possible mentor || IRC: ruik&lt;br /&gt;
|-&lt;br /&gt;
| QingPei Wang || coreboot: possible mentor || IRC:QingPei&lt;br /&gt;
|-&lt;br /&gt;
| Martin Roth || coreboot: possible mentor || IRC: martinr&lt;br /&gt;
|-&lt;br /&gt;
| Carl-Daniel Hailfinger || flashrom: possible mentor || IRC: carldani&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= coreboot Summer of Code Application =&lt;br /&gt;
&lt;br /&gt;
Please complete the standard Google SoC application and project proposal. Prospective coreboot GSoC student should provide the following information as part of their application. If you are applying for a flashrom or SerialICE project use common sense when using the template below, this is part of the test. ;)&lt;br /&gt;
&lt;br /&gt;
:Name:&lt;br /&gt;
:Email:&lt;br /&gt;
:IM/IRC/Skype/other contact:&lt;br /&gt;
&lt;br /&gt;
:Country/Timezone:&lt;br /&gt;
:School:&lt;br /&gt;
:Degree Program:&lt;br /&gt;
:Expected graduation date:&lt;br /&gt;
&lt;br /&gt;
:Most students have some time off planned during GSoC. Do you have any vacations? When and how long?&lt;br /&gt;
&lt;br /&gt;
coreboot welcomes students from all backgrounds and levels of experience. To be seriously considered for coreboot GSoC, we recommend joining the mailing list and IRC channel. Introduce yourself and mention that you are a prospective GSoC student. Ask questions and discuss the project that you are considering. Community involvement is a key component of coreboot development. By the time you have submitted your application, you should have downloaded, built a and booted coreboot in QEMU, SimNow, or on real hardware. Please, email your serial output results to the mailing list. &lt;br /&gt;
&lt;br /&gt;
The following information will help coreboot match students with mentors and projects.&lt;br /&gt;
&lt;br /&gt;
Please comment on your software and firmware experience.&lt;br /&gt;
&lt;br /&gt;
Have you participated in the coreboot community before?&lt;br /&gt;
&lt;br /&gt;
Have you contributed to an open source project? Which one? What was your experience?&lt;br /&gt;
&lt;br /&gt;
Have you built and run coreboot? Did you have problems?&lt;br /&gt;
&lt;br /&gt;
Did you find and fix a coreboot bug? Did you send a patch to Gerrit? Please provide a link to the Gerrit page. &lt;br /&gt;
&lt;br /&gt;
Please provide an overview of your project and a break down of your project in small specific goals. Think about the potential timeline. Explain what risks or potential problems your project might experience. What would you expect as a minimum level of success? Do you have a stretch goal? &lt;br /&gt;
&lt;br /&gt;
== Advice on how to apply ==&lt;br /&gt;
&lt;br /&gt;
Your application should include a complete project proposal. You should document that you have the knowledge and the ability to complete your proposed project. This may require a little research and understanding of coreboot prior to sending your application. Mentors are your best resource in flushing out your project ideas and helping with a project timeline. We recommend that you get feedback and recommendations on your proposal before the application deadline.&lt;br /&gt;
&lt;br /&gt;
The Drupal project has a great page on [http://drupal.org/node/59037 how to write an SOC application].&lt;br /&gt;
&lt;br /&gt;
Please also read Google's [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students].&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Fun_Stuff</id>
		<title>Fun Stuff</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Fun_Stuff"/>
				<updated>2012-06-11T22:23:01Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Train ticket machine */ typo in url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Failure at scale ==&lt;br /&gt;
&lt;br /&gt;
A BIOS gets confused in a very visible way: &lt;br /&gt;
&lt;br /&gt;
[[File:Billboard_bios_fail.jpeg|640px]]&lt;br /&gt;
&lt;br /&gt;
Photo courtesy Greg Kurtzer of LBL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What floor am I on?  ==&lt;br /&gt;
&lt;br /&gt;
An elevator in Spain: &lt;br /&gt;
&lt;br /&gt;
[[File:Elevator_spain.jpeg|640px]]&lt;br /&gt;
&lt;br /&gt;
Photo courtesy Gorka Guardiola&lt;br /&gt;
&lt;br /&gt;
== Confused payphone ==&lt;br /&gt;
&lt;br /&gt;
A payphone in trouble. Taken during the LinuxBIOS summit in Hamburg, Germany in October 2006. Bonus: two coreboot hackers visible in the reflection.&lt;br /&gt;
&lt;br /&gt;
[[File:Dscn3815.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
Photo by Ward Vandewege&lt;br /&gt;
&lt;br /&gt;
== Clipper Machine ==&lt;br /&gt;
&lt;br /&gt;
At the Palo Alto Caltrain station&lt;br /&gt;
&lt;br /&gt;
[[File:Clipper_caltrain.jpeg|640px]]&lt;br /&gt;
&lt;br /&gt;
From Ed Swierk&lt;br /&gt;
&lt;br /&gt;
== Train ticket machine ==&lt;br /&gt;
&lt;br /&gt;
Somewhere in Berlin&lt;br /&gt;
&lt;br /&gt;
[http://www.tagesspiegel.de/images/foto_1/5914068/2.jpg?format=format36]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Fun_Stuff</id>
		<title>Fun Stuff</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Fun_Stuff"/>
				<updated>2012-06-11T22:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Failure at scale ==&lt;br /&gt;
&lt;br /&gt;
A BIOS gets confused in a very visible way: &lt;br /&gt;
&lt;br /&gt;
[[File:Billboard_bios_fail.jpeg|640px]]&lt;br /&gt;
&lt;br /&gt;
Photo courtesy Greg Kurtzer of LBL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What floor am I on?  ==&lt;br /&gt;
&lt;br /&gt;
An elevator in Spain: &lt;br /&gt;
&lt;br /&gt;
[[File:Elevator_spain.jpeg|640px]]&lt;br /&gt;
&lt;br /&gt;
Photo courtesy Gorka Guardiola&lt;br /&gt;
&lt;br /&gt;
== Confused payphone ==&lt;br /&gt;
&lt;br /&gt;
A payphone in trouble. Taken during the LinuxBIOS summit in Hamburg, Germany in October 2006. Bonus: two coreboot hackers visible in the reflection.&lt;br /&gt;
&lt;br /&gt;
[[File:Dscn3815.jpg|640px]]&lt;br /&gt;
&lt;br /&gt;
Photo by Ward Vandewege&lt;br /&gt;
&lt;br /&gt;
== Clipper Machine ==&lt;br /&gt;
&lt;br /&gt;
At the Palo Alto Caltrain station&lt;br /&gt;
&lt;br /&gt;
[[File:Clipper_caltrain.jpeg|640px]]&lt;br /&gt;
&lt;br /&gt;
From Ed Swierk&lt;br /&gt;
&lt;br /&gt;
== Train ticket machine ==&lt;br /&gt;
&lt;br /&gt;
Somewhere in Berlin&lt;br /&gt;
&lt;br /&gt;
[http://www.tagesspiegel.de/images/foto_1/5914068/2.jpg?format=format3]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GSoC</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GSoC"/>
				<updated>2012-03-04T18:15:06Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* SPI bitbanging hardware support */ update status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Google Summer of Code 2011 = &lt;br /&gt;
&lt;br /&gt;
http://1.bp.blogspot.com/-61a6mHfP1bU/TWbmtb5TAAI/AAAAAAAAABo/w56YXLjXDGY/s400/GSOC_2011_300x200px.png&lt;br /&gt;
&lt;br /&gt;
Welcome to the [http://www.google-melange.com/ Google Summer of Code(tm)] page of the [[Welcome to coreboot|coreboot project]]. &lt;br /&gt;
&lt;br /&gt;
Apply for a coreboot GSoC project at: http://www.google-melange.com/gsoc/org/show/google/gsoc2011/coreboot&lt;br /&gt;
&lt;br /&gt;
This year, coreboot also tries to host some flashrom projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deadlines ==&lt;br /&gt;
&lt;br /&gt;
Make sure you check the https://socghop.appspot.com/document/show/gsoc_program/google/gsoc2011/timeline&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Why work for coreboot =&lt;br /&gt;
&lt;br /&gt;
Why would you like to work for coreboot?&lt;br /&gt;
&lt;br /&gt;
* coreboot offers you the opportunity to work with modern technology &amp;quot;right on the iron&amp;quot;.&lt;br /&gt;
* Your application will be available to users worldwide and promoted along with all other coreboot projects.&lt;br /&gt;
* We are a very passionate team - so you will interact directly with the project initiators and project leaders. &lt;br /&gt;
* We have a large, helpful community. Over 100 experts in hardware and firmware lurk on our mailing list, many of them waiting to help you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Summer of Code Application =&lt;br /&gt;
&lt;br /&gt;
Please complete the standard Google SoC 2011 application. Prospective corebot GSoC student should provide the following information as part of their application. &lt;br /&gt;
&lt;br /&gt;
:Name:&lt;br /&gt;
:Email:&lt;br /&gt;
:IM/IRC/Skype/other contact:&lt;br /&gt;
&lt;br /&gt;
:Country/Timezone:&lt;br /&gt;
:School:&lt;br /&gt;
:Degree Program:&lt;br /&gt;
:Year:&lt;br /&gt;
&lt;br /&gt;
:Most students have some time off planned during GSoC. Do you have any vacations? When and how long?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:coreboot welcomes students from all backgrounds and levels of experience. To be seriously consider for coreboot GSoC, we recommend joining the mailing list and IRC channel. Introduce yourself and mention that you are a prospective GSoC student. Ask questions and discuss the project that you are considering. Community involvement is a key component of coreboot development. By the time you have submitted your application, you should have downloaded, built a and booted coreboot  in QEMU, SimNow, or on real hardware. Please, email your serial output results to the mailing list. &lt;br /&gt;
&lt;br /&gt;
:The following information will help coreboot match students with mentors and projects.&lt;br /&gt;
&lt;br /&gt;
:Please comment on your software and firmware experience.&lt;br /&gt;
&lt;br /&gt;
:Have you participated in the coreboot community before?&lt;br /&gt;
&lt;br /&gt;
:Have you contributed to an open source project? Which one? What was your experience?&lt;br /&gt;
&lt;br /&gt;
:Have you built and run coreboot? Did you have problems?&lt;br /&gt;
&lt;br /&gt;
:Bonus, Did you find and fix a coreboot bug? Did you send a patch to the email list?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Please provide an overview of your project and a break down your project in small specific goals. Explain what risks or potential problems your project might experience. What would you expect as a minimum level of success? Do you have a stretch goal?  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to apply ==&lt;br /&gt;
&lt;br /&gt;
The Drupal project has a great page on [http://drupal.org/node/59037 How to write an SOC application].&lt;br /&gt;
&lt;br /&gt;
Please also read Google's [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Some Caveats ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 &amp;quot;community bonding period&amp;quot; between acceptance and official start. Also, you must have made progress and committed significant code before the mid-term point.&lt;br /&gt;
* We require 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. http://blogs.coreboot.org/&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;regular basis&amp;quot; in the last item does _not_ mean &amp;quot;3 days before evaluation deadlines&amp;quot;. You should be &amp;quot;around&amp;quot; all the time (reporting your feedback, sending in partial successes).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Time Frame ==&lt;br /&gt;
&lt;br /&gt;
'''DEADLINE FOR STUDENT APPLICATIONS:''' Students who are interested in working on a coreboot-related GSoC project must apply between '''March 28, 2011''' and '''April 8, 2011'''! If you want to apply, please get in contact with us right away, not just when you send your application!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Student requirements ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
If you are interested in becoming a GSoC student, please contact [mailto:marcj303@gmail.com Marc Jones].&lt;br /&gt;
&lt;br /&gt;
There is also an IRC channel on irc.freenode.net: #coreboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= coreboot GSoC Mentor =&lt;br /&gt;
Please add you name to this list and follow the coreboot mentor link to [http://www.google-melange.com/gsoc/profile/mentor/google/gsoc2011?org=coreboot apply to be a coreboot mentor]&lt;br /&gt;
&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
http://www.google-melange.com/gsoc/profile/mentor/google/gsoc2011?org=coreboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Possible ideas =&lt;br /&gt;
The following are some ideas that have come up in the community. Some are more or less suitable for GSoC and prospective students' application should expand on some ideas and pair back others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== flashrom ==&lt;br /&gt;
&lt;br /&gt;
Note: The list below is an idea collection. Individual list items are simple enough to serve only as partial GSoC task, but they are grouped to reasonable tasks.  If you're interested, please talk to us on the flashrom mailing list and/or on IRC irc://irc.freenode.net/#flashrom&lt;br /&gt;
&lt;br /&gt;
''[http://www.flashrom.org/GSoC/2010 http://www.flashrom.org/GSoC/2010] has more flashrom ideas and suggestions.''&lt;br /&gt;
&lt;br /&gt;
=== Multiple UIs for flashrom ===&lt;br /&gt;
* flashrom TUI (text mode user interface) (for command line and flashrom-as-payload)&lt;br /&gt;
* flashrom GUI (graphics mode user interface) (should be cross-platform, Sean Nelson has preliminary code you can base this on)&lt;br /&gt;
&lt;br /&gt;
=== Recovery of dead boards and onboard flash updates ===&lt;br /&gt;
* flashrom as payload&lt;br /&gt;
* flashrom remote flashing for coreboot panic room mode&lt;br /&gt;
* flashrom remote flashing with modified SerialICE&lt;br /&gt;
&lt;br /&gt;
=== SPI bitbanging hardware support ===&lt;br /&gt;
* flashrom support for Nvidia SPI chipset hardware (DONE)&lt;br /&gt;
* flashrom support for RayeR SPIPGM hardware (DONE)&lt;br /&gt;
* flashrom support for [[Paraflasher]] hardware&lt;br /&gt;
* flashrom support for Willem hardware (unfinished patch exists)&lt;br /&gt;
* flashrom support for some-yet-uninvented cheap universal LPC/FWH/SPI flasher hardware (e.g. Raspberry Pi, patch exists)&lt;br /&gt;
* flashrom support for bitbanging LPC/FWH (code exists, Uwe Hermann needs to post it somewhere)&lt;br /&gt;
* flashrom support for bitbanging Parallel (total coding time estimated ~2-3 days, not sufficient for GSOC)&lt;br /&gt;
&lt;br /&gt;
=== Generic flashrom infrastructure improvements ===&lt;br /&gt;
* flashrom support for automatic recovery in case something goes wrong&lt;br /&gt;
* flashrom support for partial reflashing&lt;br /&gt;
* flashrom support for bytewise flashing (similar to the point above)&lt;br /&gt;
&lt;br /&gt;
== Linux Firmware Kit, BITS ==&lt;br /&gt;
&lt;br /&gt;
There are various test suites for firmware aspects, esp. those that interacts with the operating systems. Unfortunately, some of these projects are dead, some seem to be forked and developed semi-publically, and having all that stuff in lots of different places is a big hassle.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to pick up the pieces, and create a single tool (most likely a bootable CD/USB drive image) that can be booted on vendor BIOS (for the Red Hat and Canonical developers that work on these) as well as coreboot (preferably seabios and FILO to improve testability - is an issue created/fixed by coreboot or seabios?). This can then be improved in various ways.&lt;br /&gt;
&lt;br /&gt;
There's also intel-gpu-tools that might have some useful tests (at least for intel-boards): http://article.gmane.org/gmane.comp.video.dri.devel/63948&lt;br /&gt;
&lt;br /&gt;
When applying for this task, please state in your proposal what you think might be worthy extensions to the existing tests.&lt;br /&gt;
&lt;br /&gt;
Required knowledge for this task: Not so much coreboot/firmware level, but you should have some idea of the boot process of a Linux system (as these test suites are mostly Linux based). GSoC probably won't provide enough time to learn all that (Linux boot process, firmware interfaces such as ACPI) and still develop the tools in some useful way.&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
* Work on code coverage support for coreboot code (dump data into ram, or via serial. Provide tools to fetch it). Analyse that data.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker]&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Coverage: [http://ltp.sourceforge.net/test/coverage/lcov.php LCOV], [http://ggcov.sourceforge.net GGCOV]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot test suite ==&lt;br /&gt;
Create a test suite to gather and report coreboot mainboard and payload settings. This project may leverage libpayload, coreinfo, memtest86, BITS, and other tools. The suite should gather result and report them at summary and detailed levels.  The goal is to help coreboot developers identify problems and to test coreboot features. This project should work closely with the testing rig and test reporting projects. It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [http://biosbits.org/ BITS]&lt;br /&gt;
http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* [[User:MJones|Marc Jones]] &lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
The goal of this project is to create a cheap testing rig which works with the existing board test infrastructure. We have a hardware test system since 2006:&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/Slides-LinuxBIOS-QA.pdf Quality Assurance Talk (Slides)]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestIntegrationManual.pdf Test Integration Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/DevelopersManual.pdf Test Developers Manual]&lt;br /&gt;
* [http://www.coresystems.de/PDFs/LinuxBIOS-testing/TestSpecification.pdf Test Specification]&lt;br /&gt;
&lt;br /&gt;
The initial version of our testing rig used a remote power switch and was rather expensive. With cheaper technologies such as X10, it's possible to drop the testing costs per board significantly.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* http://qa.coresystems.de&lt;br /&gt;
* [[InSystemFlasher]] is a cheap DIY hardware prototype for building an automated testing rig for modern SPI-based boards. This could be used as a starting point.&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot mainboard test result reporting ==&lt;br /&gt;
One of the biggest challenges in coreboot is support many systems in the same codebase. As systems age and coreboot continues to develop, the condition of mainboards becomes unknown. This project would define a coreboot test results reporting mechanism, gather data, and report passing and failing systems on a webpage. This project would work closely with the coreboot test suite project and/or the hardware test rig project. A good example of test results gathering and reporting is done by the Phoronix/Openbenchmark. The student should investigate other test and reporting solutions to leverage the best options for coreboot.  It is important the the student considers how testing and reporting can be extended as features and tests are added in the future.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* http://openbenchmarking.org/&lt;br /&gt;
* http://www.coreboot.org/Supported_Motherboards&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ports for Family14 mainboards == &lt;br /&gt;
Identify potential mainboards to port based on the recently released AMD Family 14 support. The goal would be to support publicly available plaftorms with a number of payloads and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
*[[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== coreboot ACPI/S3/power managment ==&lt;br /&gt;
coreboot has support for ACPI tables and S3 support for some platforms, but it is very mainboard specific. Create a generic solution for ACPI table generation and S3 support.&lt;br /&gt;
&lt;br /&gt;
=== Mentor ===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==coreboot port to Marvell ARM SOC's with PCIe==&lt;br /&gt;
[http://www.marvell.com/products/processors/embedded/kirkwood/ 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.&lt;br /&gt;
&lt;br /&gt;
Note that coreboot has in the past supported three different CPUs (x86, Alpha, PPC), so the structure is there for adding in a new processor family. &lt;br /&gt;
We will need to find the right platform to do the work, but I (Ron) can provide a board and JTAG debugger if needed. &lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* Bari Ari&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Jason Wang|QingPei Wang]]&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
&lt;br /&gt;
Create a safe boot solution for coreboot to easily and cheaply recover the system in case of a panic(). &lt;br /&gt;
&lt;br /&gt;
Ron would like to base this solution around SerialICE. The basic idea is that the system always boots to SerialICE. There is a test in CMOS for 'last boot worked' and, if this is set, SerialICE finds a coreboot in cbfs and runs it. If 'last boot worked' is not set, or the user hits some magic keyboard sequence, SerialICE takes control. &lt;br /&gt;
&lt;br /&gt;
SerialICE needs to be extended (not much) to make this work. Having this capability would make it possible for Ron to get some very hard ports working that are just not possible today. At the same time, there are lots of hardware boards to test this idea on, so it should be easy to get it working. &lt;br /&gt;
&lt;br /&gt;
It might be possible to integrate this into the coreboot build as a bootblock option (in the same spot as the fallback/normal switch and the simple loader).&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Refactor AMD code ==&lt;br /&gt;
&lt;br /&gt;
AMD K8 and AMD Fam10 are different enough to have their own code. This is unfortunate, as you have to decide which CPU type you use in a given mainboard. Refactor AMD code so a single image can support both chip types on a given board. Also move tables from get_bus_conf and the like to the device tree or kconfig options (or runtime detection), as appropriate.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Laptop support ===&lt;br /&gt;
&lt;br /&gt;
This one is really HARD. If you're lucky and if you have datasheets, you can do it in maybe 1 month. If you're unlucky, it can take the whole GSoC or more. If there is interest, we'll try to find an embedded controller which won't cause you to give up in frustration. Still, it might be beneficial if you're willing to solder.&lt;br /&gt;
* flashrom support for embedded controllers (ECs) in laptops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [http://www.flashrom.org/ flashrom]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Your own Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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!&lt;br /&gt;
&lt;br /&gt;
Feel free to contact us at the email address above, and don't hesitate to suggest whatever you have in mind.&lt;br /&gt;
&lt;br /&gt;
= Previous Summer of Code projects =&lt;br /&gt;
&lt;br /&gt;
We successfully participated in Google's Summer of Code in 2007, 2008, 2009, and 2010. See our [[Previous GSoC Projects|list of previous GSoC projects]].&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2012</id>
		<title>Talk:FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2012"/>
				<updated>2012-02-03T20:57:41Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Carl-Daniel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who is coming?=&lt;br /&gt;
&lt;br /&gt;
* Idwer Vollering&lt;br /&gt;
* Sven Schnelle&lt;br /&gt;
* Peter Stuge&lt;br /&gt;
* Rudolf Marek&lt;br /&gt;
* Carl-Daniel Hailfinger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Who brings what?=&lt;br /&gt;
&lt;br /&gt;
==Idwer==&lt;br /&gt;
&lt;br /&gt;
==Sven==&lt;br /&gt;
Xeon i5000 system + Thinkpad T60, both running coreboot&lt;br /&gt;
&lt;br /&gt;
==Peter==&lt;br /&gt;
&lt;br /&gt;
==Rudolf==&lt;br /&gt;
&lt;br /&gt;
* Asus M2V-MX SE CPU + ATX PSU + keyboard + HDD (sata and IDE)&lt;br /&gt;
* A8V-E SE + PCIe Radeon + port80&lt;br /&gt;
* bifferboard&lt;br /&gt;
* USB serial&lt;br /&gt;
* JTAG xilinx&lt;br /&gt;
* flash chips&lt;br /&gt;
* openflashprog for USB SPI flashing&lt;br /&gt;
&lt;br /&gt;
==Carl-Daniel==&lt;br /&gt;
* Lots of power sockets and extension cords&lt;br /&gt;
* Bus Pirate&lt;br /&gt;
* HP 635 laptop&lt;br /&gt;
* Various flash chips&lt;br /&gt;
* Artec FlexyICE&lt;br /&gt;
* 19&amp;quot; flat screen monitor with DVI+VGA incl. cables&lt;br /&gt;
* flashrom flyers&lt;br /&gt;
* posters&lt;br /&gt;
* thousands of cables&lt;br /&gt;
&lt;br /&gt;
==Stuff we need (please check if you can bring it)==&lt;br /&gt;
* Thinkpad X60/T60 with working VGA out for the beamer so it can be demoed at the talk. (Preferably two of them.)&lt;br /&gt;
* Flyers for coreboot and flashrom. Who has the PDFs for our latest flyers (probably Carl-Daniel)?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2012</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2012"/>
				<updated>2012-02-03T20:46:56Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot+flashrom booth/stand */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 4th and 5th of February 2012, at FOSDEM2012 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom talk ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2012/schedule/event/coreboot_laptops coreboot - The last frontier: Laptops]&lt;br /&gt;
*Speaker: Carl-Daniel Hailfinger&lt;br /&gt;
*Day: Sunday&lt;br /&gt;
*Room: Janson&lt;br /&gt;
*Start time: 12:00&lt;br /&gt;
*End time: 12:50&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom have a joint booth at FOSDEM, AW building. Please stop by.&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2012]]&lt;br /&gt;
&lt;br /&gt;
See [[FOSDEM 2011]] and [[Talk:FOSDEM 2011]] for info on what we did last year.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2012</id>
		<title>Talk:FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2012"/>
				<updated>2012-02-02T23:19:04Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Carl-Daniel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who is coming?=&lt;br /&gt;
&lt;br /&gt;
* Idwer Vollering&lt;br /&gt;
* Sven Schnelle&lt;br /&gt;
* Peter Stuge&lt;br /&gt;
* Rudolf Marek&lt;br /&gt;
* Carl-Daniel Hailfinger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Who brings what?=&lt;br /&gt;
&lt;br /&gt;
==Idwer==&lt;br /&gt;
&lt;br /&gt;
==Sven==&lt;br /&gt;
Xeon i5000 system + Thinkpad T60, both running coreboot&lt;br /&gt;
&lt;br /&gt;
==Peter==&lt;br /&gt;
&lt;br /&gt;
==Rudolf==&lt;br /&gt;
&lt;br /&gt;
==Carl-Daniel==&lt;br /&gt;
* Lots of power sockets and extension cords&lt;br /&gt;
* Bus Pirate&lt;br /&gt;
* HP 635 laptop&lt;br /&gt;
* Various flash chips&lt;br /&gt;
* Openbench Logic sniffer (if I can find it)&lt;br /&gt;
* Artec FlexyICE (if I can find it)&lt;br /&gt;
* 19&amp;quot; flat screen monitor with DVI+VGA incl. cables&lt;br /&gt;
* flashrom flyers&lt;br /&gt;
* posters (need to check if they are usable)&lt;br /&gt;
&lt;br /&gt;
==Stuff we need (please check if you can bring it)==&lt;br /&gt;
* Thinkpad X60/T60 with working VGA out for the beamer so it can be demoed at the talk. (Preferably two of them.)&lt;br /&gt;
* Flyers for coreboot and flashrom. Who has the PDFs for our latest flyers (probably Carl-Daniel)?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2012</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2012"/>
				<updated>2012-02-02T23:17:44Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot+flashrom talk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 4th and 5th of February 2012, at FOSDEM2012 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom talk ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2012/schedule/event/coreboot_laptops coreboot - The last frontier: Laptops]&lt;br /&gt;
*Speaker: Carl-Daniel Hailfinger&lt;br /&gt;
*Day: Sunday&lt;br /&gt;
*Room: Janson&lt;br /&gt;
*Start time: 12:00&lt;br /&gt;
*End time: 12:50&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom have a joint booth at FOSDEM, FIXME building, booth FIXME. Please stop by.&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2012]]&lt;br /&gt;
&lt;br /&gt;
See [[FOSDEM 2011]] and [[Talk:FOSDEM 2011]] for info on what we did last year.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2012</id>
		<title>Talk:FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2012"/>
				<updated>2012-01-29T03:07:18Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Stuff we need (please check if you can bring it) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who is coming?=&lt;br /&gt;
&lt;br /&gt;
* Idwer Vollering&lt;br /&gt;
* Sven Schnelle&lt;br /&gt;
* Peter Stuge&lt;br /&gt;
* Rudolf Marek&lt;br /&gt;
* Carl-Daniel Hailfinger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Who brings what?=&lt;br /&gt;
&lt;br /&gt;
==Idwer==&lt;br /&gt;
&lt;br /&gt;
==Sven==&lt;br /&gt;
&lt;br /&gt;
==Peter==&lt;br /&gt;
&lt;br /&gt;
==Rudolf==&lt;br /&gt;
&lt;br /&gt;
==Carl-Daniel==&lt;br /&gt;
* Lots of power sockets and extension cords&lt;br /&gt;
* Bus Pirate&lt;br /&gt;
* HP 635 laptop&lt;br /&gt;
* Various flash chips&lt;br /&gt;
* Openbench Logic sniffer (if I can find it)&lt;br /&gt;
* Artec FlexyICE (if I can find it)&lt;br /&gt;
* 19&amp;quot; flat screen monitor with DVI+VGA (if needed)&lt;br /&gt;
&lt;br /&gt;
==Stuff we need (please check if you can bring it)==&lt;br /&gt;
* Thinkpad X60/T60 with working VGA out for the beamer so it can be demoed at the talk. (Preferably two of them.)&lt;br /&gt;
* Flyers for coreboot and flashrom. Who has the PDFs for our latest flyers (probably Carl-Daniel)?&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2012</id>
		<title>Talk:FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2012"/>
				<updated>2012-01-29T03:06:38Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Carl-Daniel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who is coming?=&lt;br /&gt;
&lt;br /&gt;
* Idwer Vollering&lt;br /&gt;
* Sven Schnelle&lt;br /&gt;
* Peter Stuge&lt;br /&gt;
* Rudolf Marek&lt;br /&gt;
* Carl-Daniel Hailfinger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Who brings what?=&lt;br /&gt;
&lt;br /&gt;
==Idwer==&lt;br /&gt;
&lt;br /&gt;
==Sven==&lt;br /&gt;
&lt;br /&gt;
==Peter==&lt;br /&gt;
&lt;br /&gt;
==Rudolf==&lt;br /&gt;
&lt;br /&gt;
==Carl-Daniel==&lt;br /&gt;
* Lots of power sockets and extension cords&lt;br /&gt;
* Bus Pirate&lt;br /&gt;
* HP 635 laptop&lt;br /&gt;
* Various flash chips&lt;br /&gt;
* Openbench Logic sniffer (if I can find it)&lt;br /&gt;
* Artec FlexyICE (if I can find it)&lt;br /&gt;
* 19&amp;quot; flat screen monitor with DVI+VGA (if needed)&lt;br /&gt;
&lt;br /&gt;
==Stuff we need (please check if you can bring it)==&lt;br /&gt;
* Thinkpad X60/T60 with working VGA out for the beamer so it can be demoed at the talk. (Preferably two of them.)&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2012</id>
		<title>Talk:FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2012"/>
				<updated>2012-01-29T02:59:19Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who is coming?=&lt;br /&gt;
&lt;br /&gt;
* Idwer Vollering&lt;br /&gt;
* Sven Schnelle&lt;br /&gt;
* Peter Stuge&lt;br /&gt;
* Rudolf Marek&lt;br /&gt;
* Carl-Daniel Hailfinger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Who brings what?=&lt;br /&gt;
&lt;br /&gt;
==Idwer==&lt;br /&gt;
&lt;br /&gt;
==Sven==&lt;br /&gt;
&lt;br /&gt;
==Peter==&lt;br /&gt;
&lt;br /&gt;
==Rudolf==&lt;br /&gt;
&lt;br /&gt;
==Carl-Daniel==&lt;br /&gt;
* Lots of power sockets and extension cords&lt;br /&gt;
* Bus Pirate&lt;br /&gt;
* HP 635 laptop&lt;br /&gt;
* Openbench Logic sniffer (if I can find it)&lt;br /&gt;
* Artec FlexyICE (if I can find it)&lt;br /&gt;
* Various flash chips&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stuff we need (please check if you can bring it)==&lt;br /&gt;
* Thinkpad X60/T60 with working VGA out for the beamer so it can be demoed at the talk. (Preferably two of them.)&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2012</id>
		<title>Talk:FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2012"/>
				<updated>2012-01-29T02:58:59Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: Who brings what&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Who is coming??&lt;br /&gt;
&lt;br /&gt;
* Idwer Vollering&lt;br /&gt;
* Sven Schnelle&lt;br /&gt;
* Peter Stuge&lt;br /&gt;
* Rudolf Marek&lt;br /&gt;
* Carl-Daniel Hailfinger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Who brings what?=&lt;br /&gt;
&lt;br /&gt;
==Idwer==&lt;br /&gt;
&lt;br /&gt;
==Sven==&lt;br /&gt;
&lt;br /&gt;
==Peter==&lt;br /&gt;
&lt;br /&gt;
==Rudolf==&lt;br /&gt;
&lt;br /&gt;
==Carl-Daniel==&lt;br /&gt;
* Lots of power sockets and extension cords&lt;br /&gt;
* Bus Pirate&lt;br /&gt;
* HP 635 laptop&lt;br /&gt;
* Openbench Logic sniffer (if I can find it)&lt;br /&gt;
* Artec FlexyICE (if I can find it)&lt;br /&gt;
* Various flash chips&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stuff we need (please check if you can bring it)==&lt;br /&gt;
* Thinkpad X60/T60 with working VGA out for the beamer so it can be demoed at the talk. (Preferably two of them.)&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Current_events</id>
		<title>Current events</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Current_events"/>
				<updated>2012-01-29T02:42:46Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: FOSDEM 2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please contact [[User:Stepan|Stefan Reinauer]], [[User:Rminnich|Ronald Minnich]] or [[User:Stuge|Peter Stuge]] for more information on the events.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
'''2012'''&lt;br /&gt;
&lt;br /&gt;
* coreboot and flashrom share a booth at [[FOSDEM 2012]] in Brussels on February 4-5, 2012, and a presentation about coreboot on laptops will be held by [[User:Hailfinger|Carl-Daniel Hailfinger]].&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
'''2011'''&lt;br /&gt;
&lt;br /&gt;
* coreboot and flashrom exhibit at [http://www.linuxtag.org/ LinuxTag] in Berlin on May 11-14, 2011.&lt;br /&gt;
&lt;br /&gt;
* coreboot and flashrom shared a booth at [[FOSDEM 2011]] in Brussels on February 5-6, 2011, and several presentations were held by [[User:Ruik|Rudolf Marek]] and [[User:Hailfinger|Carl-Daniel Hailfinger]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2010'''&lt;br /&gt;
&lt;br /&gt;
* coreboot exhibited at [http://www.linuxtag.org/ LinuxTag 2010] in Berlin on June 9-12, 2010.&lt;br /&gt;
* coreboot had its [[FOSDEM 2010|very first DevRoom]] at [http://www.fosdem.org/ FOSDEM] in Brussels on February 6, 2010.&lt;br /&gt;
&lt;br /&gt;
'''2009'''&lt;br /&gt;
&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://events.ccc.de/congress/2009/Fahrplan/events/3661.en.html coreboot] at [http://events.ccc.de/congress/2009/ the 26th Chaos Communication Congress (26C3)] in Berlin on December 27, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://www.databadge.net/ifsec2009/reg/lin/show_sessions.php coreboot] at [http://www.linux-world.nl/nl-NL/Bezoeker.aspx?sc_lang=en LinuxWorld Conference &amp;amp; Expo] in Utrecht on November 4, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [https://har2009.org/program/events/210.en.html coreboot] at [https://wiki.har2009.org/page/Main_Page HAR2009] in Vierhouten on August 13, 2009.&lt;br /&gt;
* coreboot had a booth at [[LinuxTag 2009|LinuxTag]] in Berlin on June 24-27, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at [http://freedomhectaipei.pbworks.com/ FreedomHEC Taipei] on June 11, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at [http://goopen2009.friprog.no/ GoOpen 2009] in Oslo on April 16-17, 2009.&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:Stuge|Peter Stuge]] and [[User:Ruik|Rudolf Marek]] made a visit at [http://www.embedded-world.de/ embedded world 2009] in Nürnberg on March 3-5.&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]] had a [http://scale7x.socallinuxexpo.org/dotorg/coreboot coreboot booth] at the [http://scale7x.socallinuxexpo.org/ Southern California Linux Expo] (SCALE 7x) on February 20-22, 2009.&lt;br /&gt;
&lt;br /&gt;
'''2008'''&lt;br /&gt;
&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://events.ccc.de/congress/2008/Fahrplan/events/2970.en.html coreboot: Beyond The Final Frontier] and held a coreboot workshop at [http://events.ccc.de/congress/2008/ the 25th Chaos Communication Congress (25C3)] on December 27-30.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at the [http://www.nluug.nl/events/nj08/ NLUUG Autumn Conference on Mobile Computing] and [http://www.embeddedlinuxconference.com/elc_europe08/ CE Linux Forum - Embedded Linux conference Europe 2008] on November 6-7.&lt;br /&gt;
* [[User:Rminnich|Ronald Minnich]], [[User:Stuge|Peter Stuge]] and [[User:Stepan|Stefan Reinauer]] presented coreboot in a [[Screenshots#Google_Tech_Talks_2008:_coreboot_.28aka_LinuxBIOS.29:_The_Free.2FOpen-Source_x86_Firmware|Google TechTalk]] on October 30.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://fscons.org/events/?action=event&amp;amp;id=32 coreboot] at the [http://fscons.org/ Free Society Conference and Nordic Summit 2008] on October 24-26.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at the [http://slackathon.se/2008/ Slackathon 2008] OpenBSD meeting in September.&lt;br /&gt;
* Coreboot was exhibiting at [[LinuxTag 2008]] in Berlin on May 28-31.&lt;br /&gt;
* The [[Coreboot Symposium 2008|coreboot symposium 2008]] was held in Denver, April 3 – 5, 2008 during the High Performance Computer Science Week [http://www.hpcsw.org HPCSW].&lt;br /&gt;
&lt;br /&gt;
'''2007'''&lt;br /&gt;
&lt;br /&gt;
* There was a [[News#2007.2F05.2F23_LinuxBIOS_booth_at_LinuxTag_in_Berlin.2C_29.2F5-2.2F6|LinuxBIOS booth at the LinuxTag in Berlin, May 29 - June 6, 2007]], as well as a hands-on workshop by Peter Stuge.&lt;br /&gt;
* Ron Minnich gave [http://www.fosdem.org/2007/schedule/events/linuxbios a talk about LinuxBIOS] on February 24, 2007 at [http://www.fosdem.org/2007/ FOSDEM 2007].&lt;br /&gt;
&lt;br /&gt;
'''2006'''&lt;br /&gt;
&lt;br /&gt;
* The [[LinuxBIOS Symposium 2006]] took place on October 1-3, 2006 in Hamburg, Germany.&lt;br /&gt;
&lt;br /&gt;
'''2005'''&lt;br /&gt;
&lt;br /&gt;
* The [[LinuxBIOS Summit 2005]] took place on October 11-13 in Santa Fe, NM.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Welcome_to_coreboot</id>
		<title>Welcome to coreboot</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Welcome_to_coreboot"/>
				<updated>2012-01-29T02:41:01Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: FOSDEM 2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;td width=&amp;quot;80%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top:0.5em; margin-bottom:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#efefff; align:right; border:1px solid #aabbcc;&amp;quot;&amp;gt;&lt;br /&gt;
'''coreboot''' is a Free Software project aimed at replacing the proprietary [http://wikipedia.org/wiki/BIOS BIOS] (firmware) found in most computers. coreboot performs a little bit of hardware initialization and then executes additional boot logic, called a [[Payloads|payload]].&lt;br /&gt;
&lt;br /&gt;
With the separation of hardware initialization and later boot logic, coreboot can scale from specialized applications that run directly from firmware, run operating systems in flash, load custom bootloaders, or implement firmware standards, like [[SeaBIOS | PC BIOS services]] or [[TianoCore | UEFI]]. This allows for systems to only include the features necessary in the target application, reducing the amount of code and flash space required.&lt;br /&gt;
&lt;br /&gt;
coreboot currently supports over '''[[Supported Motherboards|230]]''' different mainboards. Check the [[Support]] page to see if your system is supported.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
coreboot was formerly known as [http://www.coreboot.org/pipermail/coreboot/2008-January/029133.html LinuxBIOS]. &lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top:0.5em; margin-bottom:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#efefff; align:right; border:1px solid #aabbcc;&amp;quot;&amp;gt;&lt;br /&gt;
coreboot recently switched to [[git]] and [http://review.coreboot.org gerrit] is now used as patch review tool.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=0 cellpadding=8 border=0 margin=0 padding=0 align=&amp;quot;top&amp;quot; width=100%&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{{Box|&lt;br /&gt;
BORDER = #8898bf|&lt;br /&gt;
BACKGROUND = yellow|&lt;br /&gt;
WIDTH = 100%|&lt;br /&gt;
ICON = &amp;lt;small&amp;gt;[[Benefits|More...]]&amp;lt;/small&amp;gt;|&lt;br /&gt;
HEADING = &amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Benefits]]&amp;lt;/span&amp;gt;|&lt;br /&gt;
CONTENT =&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* 100% Free Software (GPL), no royalties, no license fees!&lt;br /&gt;
* Fast boot times (3 seconds to Linux console)&lt;br /&gt;
&amp;lt;!-- * Avoids the need for a slow/buggy/proprietary BIOS --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * Runs in 32-Bit protected mode almost from the start --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * Written in C, contains virtually no assembly code --&amp;gt;&lt;br /&gt;
* Supports many [[Supported Motherboards|mainboards]], [[Supported Chipsets and Devices|chipsets]], and [[payloads]]&lt;br /&gt;
&amp;lt;!-- * Further features: netboot, serial console, remote flashing, ... --&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{{Box|&lt;br /&gt;
BORDER = #8898bf|&lt;br /&gt;
BACKGROUND = #d1adf6|&lt;br /&gt;
WIDTH = 100%|&lt;br /&gt;
ICON = &amp;lt;small&amp;gt;[[Use Cases|More...]]&amp;lt;/small&amp;gt;|&lt;br /&gt;
HEADING = &amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Use Cases]]&amp;lt;/span&amp;gt;|&lt;br /&gt;
CONTENT =&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* Desktop PCs, servers, [[Laptop|laptops]]&lt;br /&gt;
* [[Clusters]]&lt;br /&gt;
&amp;lt;!-- * Set-Top-Boxes, thin clients --&amp;gt;&lt;br /&gt;
* Embedded solutions&lt;br /&gt;
&amp;lt;!-- * [http://en.wikipedia.org/wiki/Small_form_factor Small form factor computers], [http://en.wikipedia.org/wiki/Home_theater_PC Home-theater PCs] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * No-moving-parts solutions (ROM chip as &amp;quot;disk&amp;quot;) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * Non-standard scenarios (e.g. FPGA in Opteron socket) --&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{{Box|&lt;br /&gt;
BORDER = #8898bf|&lt;br /&gt;
BACKGROUND = lime|&lt;br /&gt;
WIDTH = 100%|&lt;br /&gt;
ICON = &amp;lt;small&amp;gt;[[Payloads|More...]]&amp;lt;/small&amp;gt;|&lt;br /&gt;
HEADING = &amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Payloads]]&amp;lt;/span&amp;gt;|&lt;br /&gt;
CONTENT =&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* [[SeaBIOS]] / [[FILO]] / [[GRUB2]] / [[Payloads|...]] &amp;lt;!-- / [[OpenFirmware]] / [[OpenBIOS]] --&amp;gt;&lt;br /&gt;
* [[Linux]] / [[Windows]] / [[FreeBSD]] / [[NetBSD]] / [[Payloads|...]] &amp;lt;!-- / [http://openbsd.org/ OpenBSD]--&amp;gt;&lt;br /&gt;
* [[Etherboot]] / [[GPXE]] / [[Payloads|...]]&lt;br /&gt;
&amp;lt;!--* [[Memtest86]]&lt;br /&gt;
* [[Bayou]] / [[Coreinfo]] / [[Tint]] / [[Libpayload]]--&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=5 cellpadding=15 border=0 valign=&amp;quot;top&amp;quot; width=100%&lt;br /&gt;
| width=50% style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_cb.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;About&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Find out more about coreboot.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Press]] | [[Logo]] | [[History]] | [[Screenshots|Screenshots/Videos]] | [[Contributors]] | [[Sponsors]] | [[Products]] | [[Vendors]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_devel.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Developers&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Get involved! Help us make coreboot better.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Development Guidelines]] | [[Developer Manual]] | [http://qa.coreboot.org/docs/doxygen.php Doxygen] | [http://review.coreboot.org/gitweb?p=coreboot.git;a=tree Browse Source] | [[GSoC]] | [[Flag Days]] | [[Distributed and Automated Testsystem|Testsystem]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=50% style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_status.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Status&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Find out whether your hardware is already supported.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Supported Motherboards|Supported Boards]] | [[Supported Chipsets and Devices|Supported Chipsets]] | [[:Category:Tutorials|Board Status Pages]] | [http://qa.coreboot.org Build Status]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_tools.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Related Tools&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Tools and libraries related to coreboot.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Flashrom]] | [[Superiotool]] | [[Nvramtool]] | [[Buildrom]] | [[Mkelfimage]] | [[Inteltool]] | [[Msrtool]] | [[Ectool]] | [[Developer_Manual/Tools|Hardware tools]] | [[Abuild]] | [[SerialICE]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=50% style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_101.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Getting Started&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Download coreboot and get started.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Build HOWTO]] | [[Download coreboot|Downloads]] | [[Documentation]] | [[QEMU]] | [[AMD SimNow]] | [[Build from Windows]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_support.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Support&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Learn how to contact us and find help and support.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[FAQ]] | [[Mailinglist]] | [[IRC]] | [http://tracker.coreboot.org/trac/coreboot/ Issue Tracker] | [[Glossary]] | [[coreboot Options|coreboot Options]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;20%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Coreboot menuconfig.png|center|thumb|[[Build HOWTO|make menuconfig]] in coreboot]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[http://blogs.coreboot.org News (blog)]&amp;lt;/span&amp;gt;'''&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;rss max=5&amp;gt;http://blogs.coreboot.org/feed/&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Current events|Upcoming Events]]&amp;lt;/span&amp;gt;'''&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;!-- List of upcoming events (remove events after they have taken place). --&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;!-- * '''2011/mon/day:''' coreboot event at [[Link]] in somecity --&amp;gt;&lt;br /&gt;
* '''2012/02/04-05:''' coreboot and flashrom booths and talk at [[FOSDEM 2012]] in Brussels, Belgium&lt;br /&gt;
* '''2011/05/11-14:''' coreboot and [[Flashrom|flashrom]] booths at [http://www.linuxtag.org/ LinuxTag] in Berlin&lt;br /&gt;
* [[GSoC|2011 Google Summer of Code]]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all /&amp;gt;&lt;br /&gt;
{{#widget:Ohloh Project|id=coreboot|type=partner_badge}}&lt;br /&gt;
{{#widget:Ohloh Project|id=coreboot|type=cocomo}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2012</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2012"/>
				<updated>2012-01-29T02:38:27Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: New page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 4th and 5th of February 2012, at FOSDEM2012 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom talk ==&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom have a joint booth at FOSDEM, FIXME building, booth FIXME. Please stop by.&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2012]]&lt;br /&gt;
&lt;br /&gt;
See [[FOSDEM 2011]] and [[Talk:FOSDEM 2011]] for info on what we did last year.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Embedded_controller</id>
		<title>Embedded controller</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Embedded_controller"/>
				<updated>2011-02-23T00:27:05Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Supported by coreboot */ other ECs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Dell_latitude_cpi_a366xt_superio.jpg|thumb|right|SMSC FDC37N958FR]]&lt;br /&gt;
[[File:Dell_latitude_c610_superio.jpg|thumb|right|SMSC LPC47N252]]&lt;br /&gt;
&lt;br /&gt;
The '''embedded controller''' is a small microcontroller typically used in laptops for various purposes.&lt;br /&gt;
&lt;br /&gt;
== Supported by coreboot ==&lt;br /&gt;
&lt;br /&gt;
=== Renesas M3885/M3886 ===&lt;br /&gt;
&lt;br /&gt;
These ECs are supported by coreboot. There are several versions, with flash and with mask ROMs. Only the flash versions are update-able. These ECs are Family 740 based. A development environment including compiler and simulator is available from Renesas.&lt;br /&gt;
&lt;br /&gt;
=== Other ECs ===&lt;br /&gt;
ECs are supportable if you either have&lt;br /&gt;
* interface docs for the vendor supplied closed source EC firmware or&lt;br /&gt;
* complete docs for the EC, and docs for the hardware it should control (backlight, battery charging, power sequencing of the mainboard)&lt;br /&gt;
* open source EC firmware&lt;br /&gt;
Some of the info (interface docs) can be reverse engineered to some degree, but that is very tedious.&lt;br /&gt;
&lt;br /&gt;
== Embedded controller table ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Vendor&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Model&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Type&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Architecture&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Datasheet(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Comments&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB910 || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB926C || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB926D || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB3310 || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB3700 || EC || 8bit, 8051 core || [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf] || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2256 KB3910] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2268 KB3920] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2269 KB3925] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2270 KB3926] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.fujitsu.com Fujitsu] || MB90378 || EC || 16bit, F&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;MC-16LX family || [http://edevice.fujitsu.com/fj/DATASHEET/e-ds/e713740.pdf] || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8500 || EC &amp;amp; Super I/O || ? || ? || Source: [http://gmb.viatech.com.cn/resource/downloads/VGTF-Autumn/ITE/ITE.pdf]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8502E || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || Source: [http://de.viatech.com/de/initiatives/spearhead/surfboard_c855/] [http://gmb.viatech.com/resource/jsp/PartnersSolutions/Partners/ITE/index.jsp]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,79 IT8510E/TE/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,80 IT8511E/TE/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,81 IT8512E/F/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,82 IT8513E/F/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8516 || EC &amp;amp; Super I/O || ? || ? || Source: [http://gmb.viatech.com.cn/resource/downloads/VGTF-Autumn/ITE/ITE.pdf]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,84 IT8301E] || External GPIO chip || ? || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || 87541V || EC || 16 bit, CR16B core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || PC97551&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; || EC || 16 bit, CR16B core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951DG_W83L951FG.htm W83L951DG/FG]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 8 bit, 8051 core || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951ADG_W83L951AFG.htm W83L951ADG/AFG]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 8 bit, 8051 core || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPC8769L.htm WPC8765L/WPC8769L]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 16 bit, ? core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPC8763L.htm WPC8763L]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 16 bit, CR16CPlus core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPCE775x.htm WPCE775x]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 16 bit, CR16CPlus core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || NPCE78nx || EC || ? || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || [http://eu.renesas.com/fmwk.jsp?cnt=3885_root.jsp&amp;amp;fp=/products/mpumcu/740_family/38000_740_series/3885_group/ M38859]&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; || EC || 8bit, 740 family || [http://documentation.renesas.com/eng/products/mpumcu/e3885g.pdf] || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || [http://eu.renesas.com/fmwk.jsp?cnt=3886_root.jsp&amp;amp;fp=/products/mpumcu/740_family/38000_740_series/3886_group/ M38867M8A]&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; || EC || 8bit, 740 family || [http://documentation.renesas.com/eng/products/mpumcu/e3886g.pdf] || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || [http://eu.renesas.com/fmwk.jsp?cnt=h8s2117_root.jsp&amp;amp;fp=/products/mpumcu/h8s_family/h8s2100_series/h8s2117_group H8S/2117R]&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || Source: [http://www.intelcommsalliance.com/kshowcase/view/view_item/4ddd1dbe78eb6b235cc4f07eabb79ae562ae690e]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || H8S/2161B&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || Source: [http://www.thinkwiki.org/wiki/Embedded_Controller_Chips], [http://www.thinkwiki.org/wiki/Embedded_Controller_Firmware], [http://forum.thinkpads.com/viewtopic.php?t=20958], [http://www.thinkwiki.org/wiki/Renesas_H8S/2161BV]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || H8S/2169AV &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || Source: [http://www.thinkwiki.org/wiki/Embedded_Controller_Chips], [http://www.thinkwiki.org/wiki/Embedded_Controller_Firmware], [http://forum.thinkpads.com/viewtopic.php?t=20958]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || H8S/64F3169ATE10&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.national.com NSC] || PC87570 || EC &amp;amp; Super I/O || ? || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || FDC37N958FR || EC &amp;amp; Super I/O || ? || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || LPC47N252  || EC &amp;amp; Super I/O || ? || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || [http://www.smsc.com/index.php?tid=252&amp;amp;pid=173 MEC1308] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || [http://www.smsc.com/index.php?tid=252&amp;amp;pid=172 KBC1122/KBC1122P] || EC &amp;amp; Super I/O || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.sst.com/ SST] || [http://www.sst.com/about_sst/news/detail.dot?crumbTitle=NewsDetail&amp;amp;id=320 SST79LF008] || EC &amp;amp; Super I/O &amp;amp; BIOS flash || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Previously Mitsubishi, now Renesas.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Previously Hitachi, now Renesas.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; Previously National (NSC), then Winbond, now Nuvoton.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; Previously Winbond, now Nuvoton.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
=== ENE KB3310/KB3910/KB3920 ===&lt;br /&gt;
&lt;br /&gt;
Very common ECs in netbooks are the KB3310, KB3910 and KB3920 from [http://www.ene.com.tw/en/index.asp ENE Technology]. The ENE ECs are 8051 based.&lt;br /&gt;
&lt;br /&gt;
The Quanta IL1 reference design seems to use ENE3310 controller. The q1d25i.rom was examined. The EC code is on 0xFFF00000 on One Mini A110. Its 64KB big HOLE0.ROM.&lt;br /&gt;
&lt;br /&gt;
More discussion and info on the ENE ECs: &lt;br /&gt;
&lt;br /&gt;
* [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf ENE KB3700 datasheet].&lt;br /&gt;
* [http://forum.eeeuser.com/viewtopic.php?pid=99076 eeeUser Discussion] &lt;br /&gt;
* [http://code.google.com/p/eeetune/wiki/KBMemoryMap Memory map of ENE KB3310]&lt;br /&gt;
* [https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/ 8051 simulator]&lt;br /&gt;
* [http://dev.laptop.org/git?p=projects/olpcflash;a=blob;f=olpcflash.c;hb=HEAD OpenEC Firmware] &lt;br /&gt;
* [http://wiki.laptop.org/go/OpenEC OpenEC Project]&lt;br /&gt;
* [http://www.cagnulein.com/tmp/eee.c-20080812 Example code] that makes use of the KB3310's &amp;quot;Index IO&amp;quot; access functions.&lt;br /&gt;
&lt;br /&gt;
=== Renesas H8 ===&lt;br /&gt;
&lt;br /&gt;
Some ECs are H8 based.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnuh8.org/ Port of the GNU compiler suite to the H8]&lt;br /&gt;
* [http://wunderkis.de/h8-gcc/h8tools.tar.gz H8 bootloader]&lt;br /&gt;
* [http://h8300-hms.sourceforge.net/ Sourceforge project for H8/300]&lt;br /&gt;
&lt;br /&gt;
== Toolchains ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
{{PD-self}}&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Laptop</id>
		<title>Laptop</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Laptop"/>
				<updated>2011-02-23T00:20:23Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Recent progress of coreboot on laptops */ Thinpad X60s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Recent progress of coreboot on laptops ==&lt;br /&gt;
&lt;br /&gt;
* coreboot supports the [http://en.getac.com/products/P470/P470_overview.html Getac P470] semi rugged notebook, based on Intel 82945GM/ICH7.&lt;br /&gt;
* coreboot supports the [http://www.roda-computer.com/en/products/notebooks/rocky-iii-rk886ex.html Roda RK886EX (Rocky III+)] laptop, based on Intel 82945GM/ICH7.&lt;br /&gt;
* VIA has recently released open documentation for the VX700 and VX800 chipsets at the [http://linux.via.com.tw/support/downloadFiles.action VIA Download Portal].&lt;br /&gt;
* coreboot supports one variant of the Lenovo [[Thinkpad X60s]].&lt;br /&gt;
&lt;br /&gt;
== Embedded controllers ==&lt;br /&gt;
&lt;br /&gt;
The remaining issue with supporting netbooks may be open firmware support for the [[Embedded controller]] (EC).&lt;br /&gt;
These ECs used to support keyboard scan, lid open/closed, battery charging, power management, etc.&lt;br /&gt;
&lt;br /&gt;
coreboot should work with the &amp;quot;stock&amp;quot; EC firmware. This may still be a challenge because &amp;quot;we don't know what we don't know&amp;quot;. Behavior at runtime is fairly standardized, but we don't know what we need to do for initialization - do we need to set up registers, put in tables, kick things, or will it all Just Work (TM)?&lt;br /&gt;
&lt;br /&gt;
== HOWTO to find a way ==&lt;br /&gt;
&lt;br /&gt;
* find a model and manufacturer of your laptop&lt;br /&gt;
* download these tools:&lt;br /&gt;
  # superiotool ( svn co svn://coreboot.org/coreboot/trunk/util/superiotool )&lt;br /&gt;
  # inteltool ( svn co svn://coreboot.org/coreboot/trunk/util/inteltool )&lt;br /&gt;
  # ectool ( svn co svn://coreboot.org/coreboot/trunk/util/ectool )&lt;br /&gt;
  # dmidecode ( cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/dmidecode co dmidecode )&lt;br /&gt;
  # msrtool (svn co svn://coreboot.org/coreboot/trunk/util/msrtool )&lt;br /&gt;
  # nvramtool ( svn co svn://coreboot.org/coreboot/trunk/util/nvramtool )&lt;br /&gt;
  # flashrom ( svn co svn://coreboot.org/flashrom/trunk flashrom )&lt;br /&gt;
* make and install them (make; sudo make install) - you need at least libpci/pciutils&lt;br /&gt;
* check that your distro have this tools and install them:&lt;br /&gt;
  # lspci&lt;br /&gt;
  # dmesg&lt;br /&gt;
  # acpitool&lt;br /&gt;
  # lspnp&lt;br /&gt;
  # lsusb&lt;br /&gt;
* Do this commands:&lt;br /&gt;
  # lspci -nnvvvxxxx &amp;gt; lscpi.log&lt;br /&gt;
  # lspnp -vv &amp;gt; lspnp.log&lt;br /&gt;
  # lsusb -vvv &amp;gt; lsusb.log&lt;br /&gt;
  # superiotool -deV &amp;gt; superiotool.log&lt;br /&gt;
  # inteltool -a &amp;gt; inteltool.log&lt;br /&gt;
  # ectool &amp;gt; ectool.log&lt;br /&gt;
  # msrtool &amp;gt; msrtool.log&lt;br /&gt;
  # dmidecode &amp;gt; dmidecode.log&lt;br /&gt;
  # biosdecode &amp;gt; biosdecode.log&lt;br /&gt;
  # nvramtool -x &amp;gt; nvramtool.log&lt;br /&gt;
  # dmesg &amp;gt; dmesg.log&lt;br /&gt;
  # flashrom -V -p internal:laptop=force_I_want_a_brick &amp;gt; flashrom_info.log&lt;br /&gt;
  # flashrom -V -p internal:laptop=force_I_want_a_brick -r rom.bin &amp;gt; flashrom_read.log&lt;br /&gt;
* Save all logs in safe place, and also rom.bin file. &lt;br /&gt;
* try to find information - what EC or Super I/O chip is used in your laptop (may be some info in Service Manuals or Disassembly guides)&lt;br /&gt;
* if you see that ectool return some fake staff - like only 'FF' or '00' - so you have custom EC configuration, it's a hard work for support&lt;br /&gt;
* if you see that ectool return looks like 'right' output - you have a big chances for support&lt;br /&gt;
* you need to find from thease outputs Super I/O / EC chip name, or if not see this - disassembly your laptop&lt;br /&gt;
* try to find your Super I/O / EC chip datasheet&lt;br /&gt;
&lt;br /&gt;
== Laptop survey ==&lt;br /&gt;
&lt;br /&gt;
This page attempts to list chipsets, Super I/Os, flash chips, and especially [[embedded controller]]s used in various laptops.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Vendor&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Model&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | CPU&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Chipset NB&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Chipset SB&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Super&amp;amp;nbsp;I/O&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | [[Embedded controller|EC]]&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Flash Chip&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Flash Size&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Flash S.&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Flash T.&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Owner&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| ASUS || S96F/Z96F || Intel&amp;amp;nbsp;Core&amp;amp;trade;2 Duo T7400 || Intel&amp;amp;nbsp;i945 || Intel ICH7 || ITE IT8510E || in Super I/O || ? || ? || ? || ? || [http://www.flashrom.org/pipermail/flashrom/2010-January/001986.html macavity]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Acer || Aspire One ZG5 || Intel Atom N270 1.6GHz  || Intel 82945GME  || Intel NH82801GBM ICH7-M || Winbond WPCE775LA0DG  || in Super I/O || Winbond 25x80AVSIG || 8Mb || no || SOIP/DIP || [[User:XVilka|XVilka]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Acer || Aspire 3613LC || Intel Celeron M 370 1.5GHz L2: 1MB ||  Intel 82910GML  || Intel FW82801FBM SL7W6 ICH6-M || ?  || ? || PMC 0537 PM39LV040-70JCE || 1Mb || no || SOIP/DIP || [[User:XVilka|XVilka]]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Dell || [[Dell Latitude CPi A366XT|Latitude CPi A366XT]] || PII, 360 MHz || Intel 440BX |||| SMSC&amp;amp;nbsp;FDC37N958FR || in Super I/O || AMD AM29F040B || 512KB || yes || PLCC || [[User:Uwe|UH]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Dell || [[Dell Latitude C610|Latitude C610]] || PIII, 1.2 GHz || Intel i830 |||| SMSC&amp;amp;nbsp;LPC47N252 || in Super I/O || SST SST49LF004A || 512KB || no || PLCC || [mailto:coreboot@miradou.com CybFr]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Dell || [[Dell Vostro V13]] || Intel Celeron 743 1.2GHz, L2: 1MB (Ultra Low Voltage)  || Mobile Intel GS45 Express GHMC ||Intel 82801IEM ICH9M-E|| none || ITE IT8502E || Winbond 25Q16BVSIG || 2Mb || no || SOIP/PDIP || [[User:XVilka|XVilka]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Dell || XPS M1530 || Intel&amp;amp;nbsp;Core&amp;amp;trade;2 Duo T7700 || Intel PM965 || Intel ICH8 || none || Winbond WPC8763L || Winbond 25X16VSIG || 16Mb || ?? || SPI || Corey Osgood&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Fujitsu-S. || Lifebook S-4572 || PIII, 750 MHz || Intel 82440MX |||| SMSC FDC37N769 || ? || Fujitsu&amp;amp;nbsp;MBM29F400T&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; || ? || no || TSOP(?) || [[User:Uwe|UH]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Fujitsu-S. || Lifebook S7110 || Intel&amp;amp;nbsp;Core&amp;amp;trade;2 Duo T7200 || Intel&amp;amp;nbsp;i945 || Intel ICH7 || SMSC&amp;amp;nbsp;LPC47N217 || Fujitsu MB90378 || Spansion S25FL008A&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || 1024 kB || no || SO8 / SPI || twice11&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Gateway || [[Gateway W730-K8X | W730-K8X]] || Socket 754 |||| ?? || ?? || ?? || SST 39VF040 || ?? || yes || PLCC || [[User:Juri|Juri]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Gateway || [[Gateway 6020GZ|6020GZ]] || Celeron M 1.4Ghz || Intel 855GME |||| ?? || ?? || ?? || ?? || no || ?? || [[User:Juri|Juri]]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Gericom || Webboy 340S2 || PIII || SiS630 |||| NSC PC87393VJG || NSC PC87570 || Winbond&amp;amp;nbsp;29C020 || 256 kB || yes || PLCC || [http://thread.gmane.org/gmane.linux.bios/13081 NS]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Getac || P470 || Intel&amp;amp;reg;&amp;amp;nbsp;Core 2 Duo Mobile || Intel 945 || Intel ICH7 || ? || ? || ? || 8Mb || no || SPI / SOIC8 || [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Highscreen || XD 14-C1700 || Intel&amp;amp;nbsp;Celeron&amp;amp;nbsp;1.7&amp;amp;nbsp;GHz || SiS650 |||| NSC&amp;amp;nbsp;PC87391(?) || ? || EON EN29F040(A) || 512 kB || yes || PLCC || [[User:Uwe|UH]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| HP || Omnibook XE3(L) || PIII, 750 MHz || Intel&amp;amp;nbsp;82371MB ||Intel PIIX4M || SMSC&amp;amp;nbsp;FDC37N869 || NSC&amp;amp;nbsp;PC87570 || SST 28SF040A || 512 kB || no || PLCC || [[User:Uwe|UH]]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| IBM || Thinkpad T30 || Intel P4 Mobile, 1.8 GHz || Intel&amp;amp;nbsp;i845 || Intel ICH3-M || NSC&amp;amp;nbsp;PC87392 || Renesas H8S&amp;amp;nbsp;64F3169ATE10 || ST&amp;amp;nbsp;M50FW080N5 || 1024 kB || no || TSOP40 / FWH || edgecase&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| IBM || Thinkpad X60s || Intel Core Duo CPU L2300 || Intel&amp;amp;nbsp;i945GM || Intel ICH7-M || NSC&amp;amp;nbsp;PC87392 (in Ultrabase) || Renesas H8S2161B || MX25L1605D || 2048 kB || no ||  SOIC-8 || [[User:SvenS|Sven Schnelle]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| MSI || Wind U100 || Intel Atom N280 1.66Ghz || Intel 945GSE || Intel ICH7-M || ? || ENE KB3310 || SST MX25L8005 || 8 Mb|| no || TSOP40 / SPI || ?&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| One || [http://www.a110wiki.de A110] || VIA&amp;amp;nbsp;C7-M&amp;amp;nbsp;ULV&amp;amp;nbsp;1.0&amp;amp;nbsp;GHz || VIA VX800 |||| none || ENE KB3310 || ? || ? || no || ? || [[User:Uwe|UH]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Panasonic || Toughbook&amp;amp;nbsp;CF-25 || P166MMX || FW82439TX&amp;amp;nbsp;(430TX) || FW82371AB || NSC PC87336VJG || Renesas&amp;amp;nbsp;3886 || SST SST29EE020 || 256 kB || no || ? || [[User:Miernik|Miernik]]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Roda || Rocky III+ RK886EX || Intel&amp;amp;reg;&amp;amp;nbsp;Core 2 Duo Mobile T5500 || Intel 945 || Intel ICH7 || SMSC&amp;amp;reg;&amp;amp;nbsp;LPC47N227 || Renesas&amp;amp;nbsp;M38859 || SST SST49LF080 || 8Mb || yes || PLCC || [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Roda || Rocky II+ RT686 || Intel&amp;amp;nbsp;Pentium III || Intel 430BX || Intel FW82371EB || SMSC&amp;amp;reg;&amp;amp;nbsp;FDC37N769 || Renesas&amp;amp;nbsp;M38867M8A || SST SST29LE020 || 256KB || yes || PLCC/parallel || [[User:Uwe|UH]]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Sony || Vaio&amp;amp;nbsp;Picturebook&amp;amp;nbsp;PCG-C1XD || P2 400 || 443ZX |||| ? || ? || ST M29W004BT || 512 kB || no || || [[User:Miernik|Miernik]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Sony || Vaio&amp;amp;nbsp;Picturebook&amp;amp;nbsp;PCG-C1X || P266MMX || 430TX |||| ? || ? || ? || ? || ? || ? || [[User:Miernik|Miernik]]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| Toshiba   || Libretto&amp;amp;nbsp;50M PA1243CM || P133 || custom FPGA |||| ? || ? || ? || ? || ? || ? || [[User:Miernik|Miernik]]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| Toshiba   || Satellite&amp;amp;nbsp;A80-117 || Intel&amp;amp;nbsp;Celeron || Intel&amp;amp;nbsp;915GM || Intel ICH6 || SMSC&amp;amp;nbsp;LPC47N217 || ENE KB910 || ? || 1024 kB || no || TSOP (?) || [[User:Uwe|UH]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; According to the vendor BIOS update tool.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Nice thing: EC/Flash is not shared, so you can erase the whole flash during system operation (this was tested).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Further links:&lt;br /&gt;
&lt;br /&gt;
* [http://tuxmobil.org/mylaptops.html Tuxmobil Laptop Survey]&lt;br /&gt;
* [http://mcelrath.org/laptops.html Laptops/Notebooks with Linux Preinstalled]&lt;br /&gt;
* [http://www.fsf.org/campaigns/free-bios.html The Free Software Foundation's Campaign for Free BIOS]&lt;br /&gt;
&lt;br /&gt;
== Mailinglist discussion ==&lt;br /&gt;
&lt;br /&gt;
A few earlier coreboot discussions on laptops are linked here, you might get useful information out of them: &lt;br /&gt;
&lt;br /&gt;
* [http://www.coreboot.org/pipermail/linuxbios/2005-February/010985.html Any update on coreboot for laptops] &lt;br /&gt;
* [http://comments.gmane.org/gmane.linux.bios/13081 Notebook 340s2 (sis630) 256k Flash] &lt;br /&gt;
* [http://www.coreboot.org/pipermail/linuxbios/2005-February/010972.html yet another reason to use coreboot in laptops I guess] &lt;br /&gt;
* [http://www.coreboot.org/pipermail/linuxbios/2005-April/011429.html coreboot laptop hunt wiki page] &lt;br /&gt;
* [http://www.coreboot.org/pipermail/linuxbios/2005-March/011140.html HP Pavillion ZV5000 (Laptop)] &lt;br /&gt;
* [http://www.coreboot.org/pipermail/linuxbios/2005-July/011942.html SA1100] &lt;br /&gt;
* [http://www.coreboot.org/pipermail/linuxbios/2003-September/004954.html Laptop with Sis 650 chipset] &lt;br /&gt;
* [http://www.coreboot.org/pipermail/linuxbios/2006-September/015551.html coreboot on Laptops]&lt;br /&gt;
&lt;br /&gt;
== Who really makes your laptop? ==&lt;br /&gt;
&lt;br /&gt;
There are several various brands of laptops, but there are only a few actual laptop makers.&lt;br /&gt;
&lt;br /&gt;
Name brand companies like Hewlet Packard, Compaq, IBM, Dell, Gateway, Sony, Micron, Toshiba and others; including Alienware and Voodoo do not make their own laptops. The exceptions are Asus and Apple, and even Apple doesn't make all of their laptops.&lt;br /&gt;
&lt;br /&gt;
Original Design Manufacturers (ODM) make the laptops for Original Equipment Manufacturers (OEM). They in turn, add their preloaded hard drives and sell them to consumers. This is why a laptop is a bit more complicated to support with coreboot. The OEM's may not even have all the specifications for the laptop since the ODM has done all the design and assembly.&lt;br /&gt;
&lt;br /&gt;
Some laptop ODMs are:&lt;br /&gt;
&lt;br /&gt;
* [http://www.quantatw.com Quanta] makes laptops for Sony, Dell, and IBM &lt;br /&gt;
* [http://www.inventec.com/ Inventec] and [http://www.arima.com.tw/ Arima] make the Compaq line&lt;br /&gt;
* [http://www.compal.com/ Compal] also makes IBM and Dell lines, as well as Hewlett Packard&lt;br /&gt;
* [http://www.clevo.com.tw/ Clevo] makes the popular Alienware and Voodoo gaming laptops&lt;br /&gt;
&lt;br /&gt;
Further links:&lt;br /&gt;
&lt;br /&gt;
* [http://www.laptopworldwide.com/laptops.html Makers of Laptops]&lt;br /&gt;
* [http://tuxmobil.org/laptop_oem.html Laptop and NoteBook Manufacturer - OEM/ODM Relation Matrix]&lt;br /&gt;
* [http://tuxmobil.org/reseller.html Where to Buy a Preinstalled Linux Laptop, Notebook, Mobile Phone or PDA? - Vendor Overview]&lt;br /&gt;
&lt;br /&gt;
== Random product links ==&lt;br /&gt;
&lt;br /&gt;
VIA has a list of many netbooks at [http://via.com.tw/en/products/notebook/notebook.jsp VIA Partner Mobility Devices]. &lt;br /&gt;
&lt;br /&gt;
VIA also has information on other mobile platforms at [http://via.com.tw/en/products/notebook/index.jsp VIA Mobility Platform]. &lt;br /&gt;
&lt;br /&gt;
The [http://www.a110wiki.de Quanta IL1] vx800 based reference design covers similar models/clones such as: &lt;br /&gt;
&lt;br /&gt;
*[http://www.one.de/shop/one-notebooks-one-mini-notebooks-c-213_214.html One Mini A110/A115/A120/A140/A150/A470] &lt;br /&gt;
*[http://preview.tinyurl.com/5zbzl6 Airis Kira 100/350/740] &lt;br /&gt;
*[http://www.norhtec.com/products/gecko/index.html Norhtec Gecko] &lt;br /&gt;
*[http://www.pioneercomputers.com.au/products/configure.asp?c1=3&amp;amp;c2=12&amp;amp;id=2458 Pioneer DreamBook Light IL1] &lt;br /&gt;
*[http://www.ctlcorp.com/v4/p-697-ctl-il1a-89-netbook-with-windows-xp-home.aspx CTL IL1] More [http://www.a110wiki.de/wiki/CTL_IL1 CTL IL1 info] with tear-down pics. &lt;br /&gt;
*[http://www.aci-asia.com/html/Ethos_7.html ACi Ethos 7] &lt;br /&gt;
*[http://www.ilikeblue.net/products/umpc.htm BDSI Deep Blue H1]&lt;br /&gt;
&lt;br /&gt;
Other vx800 based netbooks: &lt;br /&gt;
&lt;br /&gt;
*[http://www.everex.com/products/cloudbook_max/cloudbook_max.htm Everex CloudBook MAX] &lt;br /&gt;
*[http://www.fic.com.tw/product/ce2a1.aspx FIC CE2A1]&lt;br /&gt;
&lt;br /&gt;
There are still a few netbook designs currently on the market that use the VIA vx700 chipset:&lt;br /&gt;
&lt;br /&gt;
*[http://www.sylvaniacomputers.com/products.php?p=g Sylvania G] &lt;br /&gt;
*[http://www.everex.com/products/cloudbook/cloudbook.htm Everex Cloudbook] &lt;br /&gt;
*[http://www.fic.com.tw/product/ce260.aspx FIC CE260] &lt;br /&gt;
*[http://www.fic.com.tw/product/ce268.aspx FIC CE268]&lt;br /&gt;
&lt;br /&gt;
There are also several AMD 690/600 laptops still available that may be candidates as well: &lt;br /&gt;
&lt;br /&gt;
*[http://reviews.cnet.com/laptops/acer-extensa-4420-5963/4505-3121_7-33361062.html Acer Extensa 4420] &lt;br /&gt;
*[http://www.raondigital.com EVERUN NOTE]&lt;br /&gt;
&lt;br /&gt;
Intel Atom with i945 chipset netbooks: &lt;br /&gt;
&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Aspire_One Acer Aspire One] &lt;br /&gt;
*[http://en.wikipedia.org/wiki/MSI_Wind_PC MSI Wind] &lt;br /&gt;
*[http://en.wikipedia.org/wiki/ASUS_Eee_PC ASUS eeePC]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Embedded_controller</id>
		<title>Embedded controller</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Embedded_controller"/>
				<updated>2011-02-23T00:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Embedded controller table */ I have docs for IT8502, IT8510, IT8511, IT8512, W83L951DG/FG, W83L951ADG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Dell_latitude_cpi_a366xt_superio.jpg|thumb|right|SMSC FDC37N958FR]]&lt;br /&gt;
[[File:Dell_latitude_c610_superio.jpg|thumb|right|SMSC LPC47N252]]&lt;br /&gt;
&lt;br /&gt;
The '''embedded controller''' is a small microcontroller typically used in laptops for various purposes.&lt;br /&gt;
&lt;br /&gt;
== Supported by coreboot ==&lt;br /&gt;
&lt;br /&gt;
=== Renesas M3885/M3886 ===&lt;br /&gt;
&lt;br /&gt;
These ECs are supported by coreboot. There are several versions, with flash and with mask ROMs. Only the flash versions are update-able. These ECs are Family 740 based. A development environment including compiler and simulator is available from Renesas.&lt;br /&gt;
&lt;br /&gt;
== Embedded controller table ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#6699dd&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Vendor&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Model&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Type&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Architecture&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Datasheet(s)&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Comments&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB910 || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB926C || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB926D || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB3310 || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || KB3700 || EC || 8bit, 8051 core || [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf] || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2256 KB3910] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2268 KB3920] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2269 KB3925] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ene.com.tw/en/index.asp ENE] || [http://www.ene.com.tw/en/product_detail.asp?pid=366&amp;amp;id=2270 KB3926] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.fujitsu.com Fujitsu] || MB90378 || EC || 16bit, F&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;MC-16LX family || [http://edevice.fujitsu.com/fj/DATASHEET/e-ds/e713740.pdf] || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8500 || EC &amp;amp; Super I/O || ? || ? || Source: [http://gmb.viatech.com.cn/resource/downloads/VGTF-Autumn/ITE/ITE.pdf]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8502E || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || Source: [http://de.viatech.com/de/initiatives/spearhead/surfboard_c855/] [http://gmb.viatech.com/resource/jsp/PartnersSolutions/Partners/ITE/index.jsp]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,79 IT8510E/TE/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,80 IT8511E/TE/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,81 IT8512E/F/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,82 IT8513E/F/G] || EC &amp;amp; Super I/O || 8bit, 8032 core (8051 compatible) || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || IT8516 || EC &amp;amp; Super I/O || ? || ? || Source: [http://gmb.viatech.com.cn/resource/downloads/VGTF-Autumn/ITE/ITE.pdf]&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.ite.com.tw/EN/index.aspx ITE] || [http://www.ite.com.tw/EN/products_more.aspx?CategoryID=3&amp;amp;ID=6,84 IT8301E] || External GPIO chip || ? || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || 87541V || EC || 16 bit, CR16B core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || PC97551&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; || EC || 16 bit, CR16B core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951DG_W83L951FG.htm W83L951DG/FG]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 8 bit, 8051 core || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/ECAndNBKeyboardController/W83L951ADG_W83L951AFG.htm W83L951ADG/AFG]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 8 bit, 8051 core || on request || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPC8769L.htm WPC8765L/WPC8769L]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 16 bit, ? core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPC8763L.htm WPC8763L]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 16 bit, CR16CPlus core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/ECAndNBKeyboardController/AdvancedEmbeddedController/WPCE775x.htm WPCE775x]&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; || EC || 16 bit, CR16CPlus core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.nuvoton.com/ Nuvoton] || NPCE78nx || EC || ? || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || [http://eu.renesas.com/fmwk.jsp?cnt=3885_root.jsp&amp;amp;fp=/products/mpumcu/740_family/38000_740_series/3885_group/ M38859]&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; || EC || 8bit, 740 family || [http://documentation.renesas.com/eng/products/mpumcu/e3885g.pdf] || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || [http://eu.renesas.com/fmwk.jsp?cnt=3886_root.jsp&amp;amp;fp=/products/mpumcu/740_family/38000_740_series/3886_group/ M38867M8A]&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; || EC || 8bit, 740 family || [http://documentation.renesas.com/eng/products/mpumcu/e3886g.pdf] || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || [http://eu.renesas.com/fmwk.jsp?cnt=h8s2117_root.jsp&amp;amp;fp=/products/mpumcu/h8s_family/h8s2100_series/h8s2117_group H8S/2117R]&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || Source: [http://www.intelcommsalliance.com/kshowcase/view/view_item/4ddd1dbe78eb6b235cc4f07eabb79ae562ae690e]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || H8S/2161B&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || Source: [http://www.thinkwiki.org/wiki/Embedded_Controller_Chips], [http://www.thinkwiki.org/wiki/Embedded_Controller_Firmware], [http://forum.thinkpads.com/viewtopic.php?t=20958], [http://www.thinkwiki.org/wiki/Renesas_H8S/2161BV]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || H8S/2169AV &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || Source: [http://www.thinkwiki.org/wiki/Embedded_Controller_Chips], [http://www.thinkwiki.org/wiki/Embedded_Controller_Firmware], [http://forum.thinkpads.com/viewtopic.php?t=20958]&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://eu.renesas.com/ Renesas] || H8S/64F3169ATE10&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; || EC || 16 bit, H8S family || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.national.com NSC] || PC87570 || EC &amp;amp; Super I/O || ? || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || FDC37N958FR || EC &amp;amp; Super I/O || ? || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || LPC47N252  || EC &amp;amp; Super I/O || ? || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || [http://www.smsc.com/index.php?tid=252&amp;amp;pid=173 MEC1308] || EC || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
|- bgcolor=&amp;quot;#dddddd&amp;quot;&lt;br /&gt;
| [http://www.smsc.com/ SMSC] || [http://www.smsc.com/index.php?tid=252&amp;amp;pid=172 KBC1122/KBC1122P] || EC &amp;amp; Super I/O || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|- bgcolor=&amp;quot;#eeeeee&amp;quot;&lt;br /&gt;
| [http://www.sst.com/ SST] || [http://www.sst.com/about_sst/news/detail.dot?crumbTitle=NewsDetail&amp;amp;id=320 SST79LF008] || EC &amp;amp; Super I/O &amp;amp; BIOS flash || 8bit, 8051 core || ? || &amp;amp;mdash;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Previously Mitsubishi, now Renesas.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Previously Hitachi, now Renesas.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; Previously National (NSC), then Winbond, now Nuvoton.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; Previously Winbond, now Nuvoton.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
=== ENE KB3310/KB3910/KB3920 ===&lt;br /&gt;
&lt;br /&gt;
Very common ECs in netbooks are the KB3310, KB3910 and KB3920 from [http://www.ene.com.tw/en/index.asp ENE Technology]. The ENE ECs are 8051 based.&lt;br /&gt;
&lt;br /&gt;
The Quanta IL1 reference design seems to use ENE3310 controller. The q1d25i.rom was examined. The EC code is on 0xFFF00000 on One Mini A110. Its 64KB big HOLE0.ROM.&lt;br /&gt;
&lt;br /&gt;
More discussion and info on the ENE ECs: &lt;br /&gt;
&lt;br /&gt;
* [http://wiki.laptop.org/images/a/ab/KB3700-ds-01.pdf ENE KB3700 datasheet].&lt;br /&gt;
* [http://forum.eeeuser.com/viewtopic.php?pid=99076 eeeUser Discussion] &lt;br /&gt;
* [http://code.google.com/p/eeetune/wiki/KBMemoryMap Memory map of ENE KB3310]&lt;br /&gt;
* [https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/ 8051 simulator]&lt;br /&gt;
* [http://dev.laptop.org/git?p=projects/olpcflash;a=blob;f=olpcflash.c;hb=HEAD OpenEC Firmware] &lt;br /&gt;
* [http://wiki.laptop.org/go/OpenEC OpenEC Project]&lt;br /&gt;
* [http://www.cagnulein.com/tmp/eee.c-20080812 Example code] that makes use of the KB3310's &amp;quot;Index IO&amp;quot; access functions.&lt;br /&gt;
&lt;br /&gt;
=== Renesas H8 ===&lt;br /&gt;
&lt;br /&gt;
Some ECs are H8 based.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnuh8.org/ Port of the GNU compiler suite to the H8]&lt;br /&gt;
* [http://wunderkis.de/h8-gcc/h8tools.tar.gz H8 bootloader]&lt;br /&gt;
* [http://h8300-hms.sourceforge.net/ Sourceforge project for H8/300]&lt;br /&gt;
&lt;br /&gt;
== Toolchains ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
{{PD-self}}&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Current_events</id>
		<title>Current events</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Current_events"/>
				<updated>2011-02-04T15:06:22Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: link FOSDEM 2011&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please contact [[User:Stepan|Stefan Reinauer]], [[User:Rminnich|Ronald Minnich]] or [[User:Stuge|Peter Stuge]] for more information on the events.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
'''2011'''&lt;br /&gt;
&lt;br /&gt;
* [[FOSDEM 2011]]&lt;br /&gt;
* Linux Tag?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
'''2010'''&lt;br /&gt;
&lt;br /&gt;
* coreboot exhibited at [http://www.linuxtag.org/ LinuxTag 2010] in Berlin on June 9-12, 2010.&lt;br /&gt;
* coreboot had its [[FOSDEM 2010|very first DevRoom]] at [http://www.fosdem.org/ FOSDEM] in Brussels on February 6, 2010.&lt;br /&gt;
&lt;br /&gt;
'''2009'''&lt;br /&gt;
&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://events.ccc.de/congress/2009/Fahrplan/events/3661.en.html coreboot] at [http://events.ccc.de/congress/2009/ the 26th Chaos Communication Congress (26C3)] in Berlin on December 27, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://www.databadge.net/ifsec2009/reg/lin/show_sessions.php coreboot] at [http://www.linux-world.nl/nl-NL/Bezoeker.aspx?sc_lang=en LinuxWorld Conference &amp;amp; Expo] in Utrecht on November 4, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [https://har2009.org/program/events/210.en.html coreboot] at [https://wiki.har2009.org/page/Main_Page HAR2009] in Vierhouten on August 13, 2009.&lt;br /&gt;
* coreboot had a booth at [[LinuxTag 2009|LinuxTag]] in Berlin on June 24-27, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at [http://freedomhectaipei.pbworks.com/ FreedomHEC Taipei] on June 11, 2009.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at [http://goopen2009.friprog.no/ GoOpen 2009] in Oslo on April 16-17, 2009.&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]], [[User:Stuge|Peter Stuge]] and [[User:Ruik|Rudolf Marek]] made a visit at [http://www.embedded-world.de/ embedded world 2009] in Nürnberg on March 3-5.&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]] had a [http://scale7x.socallinuxexpo.org/dotorg/coreboot coreboot booth] at the [http://scale7x.socallinuxexpo.org/ Southern California Linux Expo] (SCALE 7x) on February 20-22, 2009.&lt;br /&gt;
&lt;br /&gt;
'''2008'''&lt;br /&gt;
&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://events.ccc.de/congress/2008/Fahrplan/events/2970.en.html coreboot: Beyond The Final Frontier] and held a coreboot workshop at [http://events.ccc.de/congress/2008/ the 25th Chaos Communication Congress (25C3)] on December 27-30.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at the [http://www.nluug.nl/events/nj08/ NLUUG Autumn Conference on Mobile Computing] and [http://www.embeddedlinuxconference.com/elc_europe08/ CE Linux Forum - Embedded Linux conference Europe 2008] on November 6-7.&lt;br /&gt;
* [[User:Rminnich|Ronald Minnich]], [[User:Stuge|Peter Stuge]] and [[User:Stepan|Stefan Reinauer]] presented coreboot in a [[Screenshots#Google_Tech_Talks_2008:_coreboot_.28aka_LinuxBIOS.29:_The_Free.2FOpen-Source_x86_Firmware|Google TechTalk]] on October 30.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented [http://fscons.org/events/?action=event&amp;amp;id=32 coreboot] at the [http://fscons.org/ Free Society Conference and Nordic Summit 2008] on October 24-26.&lt;br /&gt;
* [[User:Stuge|Peter Stuge]] presented coreboot at the [http://slackathon.se/2008/ Slackathon 2008] OpenBSD meeting in September.&lt;br /&gt;
* Coreboot was exhibiting at [[LinuxTag 2008]] in Berlin on May 28-31.&lt;br /&gt;
* The [[Coreboot Symposium 2008|coreboot symposium 2008]] was held in Denver, April 3 – 5, 2008 during the High Performance Computer Science Week [http://www.hpcsw.org HPCSW].&lt;br /&gt;
&lt;br /&gt;
'''2007'''&lt;br /&gt;
&lt;br /&gt;
* There was a [[News#2007.2F05.2F23_LinuxBIOS_booth_at_LinuxTag_in_Berlin.2C_29.2F5-2.2F6|LinuxBIOS booth at the LinuxTag in Berlin, May 29 - June 6, 2007]], as well as a hands-on workshop by Peter Stuge.&lt;br /&gt;
* Ron Minnich gave [http://www.fosdem.org/2007/schedule/events/linuxbios a talk about LinuxBIOS] on February 24, 2007 at [http://www.fosdem.org/2007/ FOSDEM 2007].&lt;br /&gt;
&lt;br /&gt;
'''2006'''&lt;br /&gt;
&lt;br /&gt;
* The [[LinuxBIOS Symposium 2006]] took place on October 1-3, 2006 in Hamburg, Germany.&lt;br /&gt;
&lt;br /&gt;
'''2005'''&lt;br /&gt;
&lt;br /&gt;
* The [[LinuxBIOS Summit 2005]] took place on October 11-13 in Santa Fe, NM.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2011</id>
		<title>FOSDEM 2011</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2011"/>
				<updated>2011-02-04T14:47:56Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot+flashrom lightning talks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 5th and 6th of February 2011, at FOSDEM2011 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom talks ==&lt;br /&gt;
&lt;br /&gt;
Sat 14:00-14:15 [http://fosdem.org/2011/schedule/event/coreboot Coreboot: x86 system boot and initialization] Rudolf Marek, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
Sat 14:20-14:35 [http://fosdem.org/2011/schedule/event/flashrom flashrom: Run your BIOS/EFI/firmware updates under any free OS] Carl-Daniel Hailfinger, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
Sun 14:00-14:30 [http://fosdem.org/2011/schedule/event/ram Cold boot attacks on RAM readout] Carl-Daniel Hailfinger, Room Lameere (Embedded devroom)&lt;br /&gt;
&lt;br /&gt;
Sun 14:30-15:00 [http://fosdem.org/2011/schedule/event/fast_x86_boot Really fast x86 boot]  Rudolf Marek, Room Lameere (Embedded devroom)&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom have a joint booth at FOSDEM, AW building, booth 08. Please stop by.&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2011]]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2011</id>
		<title>FOSDEM 2011</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2011"/>
				<updated>2011-02-04T14:44:56Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot+flashrom booth/stand */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 5th and 6th of February 2011, at FOSDEM2011 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom lightning talks ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2011/schedule/event/coreboot Coreboot: x86 system boot and initialization] Saturday 14:00-14:15, Rudolf Marek, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2011/schedule/event/flashrom flashrom: Run your BIOS/EFI/firmware updates under any free OS] Saturday 14:20-14:35, Carl-Daniel Hailfinger, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom have a joint booth at FOSDEM, AW building, booth 08. Please stop by.&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2011]]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2011</id>
		<title>FOSDEM 2011</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2011"/>
				<updated>2011-02-04T14:41:11Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot+flashrom lightning talks */ names&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 5th and 6th of February 2011, at FOSDEM2011 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom lightning talks ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2011/schedule/event/coreboot Coreboot: x86 system boot and initialization] Saturday 14:00-14:15, Rudolf Marek, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2011/schedule/event/flashrom flashrom: Run your BIOS/EFI/firmware updates under any free OS] Saturday 14:20-14:35, Carl-Daniel Hailfinger, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom will have a joint booth at FOSDEM this year.&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
* Sat 14h00 -- Coreboot: x86 system boot and initialization (Rudolf Marek)&lt;br /&gt;
* Sat 14h20 -- flashrom: Run your BIOS/EFI/firmware updates under any free OS (Carl-Daniel Hailfinger) &lt;br /&gt;
* XXX  Cold boot attacks on RAM readout (Carl-Daniel Hailfinger)&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2011]]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2011</id>
		<title>FOSDEM 2011</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2011"/>
				<updated>2011-02-04T14:40:27Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* coreboot+flashrom lightning talks */ links to lightning talks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 5th and 6th of February 2011, at FOSDEM2011 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom lightning talks ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2011/schedule/event/coreboot Coreboot: x86 system boot and initialization] Saturday 14:00-14:15, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2011/schedule/event/flashrom flashrom: Run your BIOS/EFI/firmware updates under any free OS] Saturday 14:20-14:35, Room Ferrer (Lightning talks)&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom will have a joint booth at FOSDEM this year.&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
* Sat 14h00 -- Coreboot: x86 system boot and initialization (Rudolf Marek)&lt;br /&gt;
* Sat 14h20 -- flashrom: Run your BIOS/EFI/firmware updates under any free OS (Carl-Daniel Hailfinger) &lt;br /&gt;
* XXX  Cold boot attacks on RAM readout (Carl-Daniel Hailfinger)&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2011]]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2011</id>
		<title>Talk:FOSDEM 2011</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2011"/>
				<updated>2011-02-01T23:41:28Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Who brings what */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful info ==&lt;br /&gt;
&lt;br /&gt;
Question:&lt;br /&gt;
Is there a limit for the power we can draw at our booth? The coreboot/flashrom projects have a joint booth and we have lots of hardware for demos, and some of that hardware is a bit hungry... the number of outlets is not a problem for us, we have our own multi-socket extender.&lt;br /&gt;
&lt;br /&gt;
Answer:&lt;br /&gt;
In that case, please bring a sufficiently long extension cord so we can hook you up directly to the power distribution cabinets in the hallway. I'm not sure how much they can cope with, it's all ULB infrastructure, but I suppose it should be enough :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Who brings what ==&lt;br /&gt;
&lt;br /&gt;
* carldani&lt;br /&gt;
** 1x Schuko multi-outlet power strip with 10 sockets and CEE 7/7 hybrid Schuko/French plug&lt;br /&gt;
** long power cable (length TBD)&lt;br /&gt;
* ruik&lt;br /&gt;
** 1x LCD monitor&lt;br /&gt;
** 1x usb2serial + serial cable&lt;br /&gt;
** 1x PSU 400W&lt;br /&gt;
** 1x Asus M2V-MX SE + CPU + RAM&lt;br /&gt;
** 1x Asrock 939A785GMH/128M + CPU + RAM&lt;br /&gt;
** 1x IDE system HDD + CABLE&lt;br /&gt;
** 1x SATA hdd (no system so far)&lt;br /&gt;
** 1x POST card&lt;br /&gt;
** 1x CDROM IDE&lt;br /&gt;
** couple of SPI flash chips (1M winbonds some 512KB AMICs)&lt;br /&gt;
** 1x PS2 keyboard and mouse + usb2ps2&lt;br /&gt;
* Svens&lt;br /&gt;
** Thinkpad X60s running coreboot &lt;br /&gt;
* mbertens&lt;br /&gt;
** Nokia IP530 coreboot development machine &lt;br /&gt;
** Nokia IP330 &lt;br /&gt;
** Some Compact PCI cards&lt;br /&gt;
&lt;br /&gt;
== Hotel ==&lt;br /&gt;
&lt;br /&gt;
We mostly stay in http://www.booking.com/hotel/be/hibrusselscc.html?aid=304142;label=postbooking_confemail&lt;br /&gt;
&lt;br /&gt;
So far we know that following Coreboot fellows stays there:&lt;br /&gt;
&lt;br /&gt;
* Ruik (plus 2 colleagues Pavel and Milan)&lt;br /&gt;
* CareBear&lt;br /&gt;
* Carldani&lt;br /&gt;
* Svens&lt;br /&gt;
* MBertens&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Talk:FOSDEM_2011</id>
		<title>Talk:FOSDEM 2011</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Talk:FOSDEM_2011"/>
				<updated>2011-01-08T15:39:12Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: Initial page skeleton&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Useful info ==&lt;br /&gt;
&lt;br /&gt;
Question:&lt;br /&gt;
Is there a limit for the power we can draw at our booth? The coreboot/flashrom projects have a joint booth and we have lots of hardware for demos, and some of that hardware is a bit hungry... the number of outlets is not a problem for us, we have our own multi-socket extender.&lt;br /&gt;
&lt;br /&gt;
Answer:&lt;br /&gt;
In that case, please bring a sufficiently long extension cord so we can hook you up directly to the power distribution cabinets in the hallway. I'm not sure how much they can cope with, it's all ULB infrastructure, but I suppose it should be enough :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Who brings what ==&lt;br /&gt;
&lt;br /&gt;
* Schuko multi-outlet power strip with 10 sockets and CEE 7/7 hybrid Schuko/French plug (carldani)&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FOSDEM_2011</id>
		<title>FOSDEM 2011</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FOSDEM_2011"/>
				<updated>2011-01-08T15:26:26Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: Initial page skeleton&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time and Place ==&lt;br /&gt;
&lt;br /&gt;
Saturday and Sunday, 5th and 6th of February 2011, at FOSDEM2011 in Brussels, Belgium.&lt;br /&gt;
&lt;br /&gt;
== FOSDEM? ==&lt;br /&gt;
&lt;br /&gt;
[http://www.fosdem.org FOSDEM] is simply the biggest free software developers event in Europe. For the last 11 years, on one weekend in February, a campus from the Brussels Free University gets raided by some 5000 open source developers and enthusiasts. There are main tracks with high profile talks, there are project specific devrooms with talks and hands on session, there are booths, and all of it is free (although donations are appreciated).&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom lightning talks ==&lt;br /&gt;
&lt;br /&gt;
coreboot will have a lightning talk, time TBA&lt;br /&gt;
&lt;br /&gt;
flashrom will have a lightning talk, time TBA&lt;br /&gt;
&lt;br /&gt;
== coreboot+flashrom booth/stand ==&lt;br /&gt;
&lt;br /&gt;
coreboot+flashrom will have a joint booth at FOSDEM this year.&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
TBA&lt;br /&gt;
&lt;br /&gt;
== Organizational info ==&lt;br /&gt;
&lt;br /&gt;
See [[Talk:FOSDEM 2011]]&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Datasheets</id>
		<title>Datasheets</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Datasheets"/>
				<updated>2011-01-01T23:58:14Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* AMD SB800 */ Update wanted document number&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists '''publically available datasheets''' and programming guides from various vendors. It includes CPU, chipset, Super I/O, and many other datasheets.&lt;br /&gt;
&lt;br /&gt;
= x86 architecture =&lt;br /&gt;
&lt;br /&gt;
== AMD ==&lt;br /&gt;
&lt;br /&gt;
AMD provides their [http://support.amd.com/us/psearch/Pages/psearch.aspx?type=2.1&amp;amp;product=5.7&amp;amp;contentType=Tech+Doc+Processor&amp;amp;ostype=&amp;amp;keywords=&amp;amp;items=20 AMD64 Architecture and Software manuals], which are a very useful reference for AMD systems, of course (but also explain lots of non-AMD-specific x86 stuff too):&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24592.pdf Volume 1: Application Programming]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24593.pdf Volume 2: System Programming 24593]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24594.pdf Volume 3: General-Purpose and System Instructions]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/26568.pdf Volume 4: 128-Bit Media Instructions]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/26569.pdf Volume 5: 64-Bit Media and x87 Floating-Point Instructions]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/43479.pdf Volume 6: 128-Bit and 256-Bit XOP and FMA4 Instructions]&lt;br /&gt;
&lt;br /&gt;
Other AMD documents:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/43724.pdf Lightweight Profiling Specification]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/34434-IOMMU-Rev_1.26_2-11-09.pdf AMD I/O Virtualization Technology (IOMMU) Specification]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/32200.pdf Open Platform Management Architecture Specification]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/25481.pdf CPUID Specification]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/41918.pdf Advanced Platform Management Link (APML) Specification]&lt;br /&gt;
&lt;br /&gt;
== Intel ==&lt;br /&gt;
&lt;br /&gt;
Intel provides their [http://developer.intel.com/products/processor/manuals/index.htm Intel&amp;amp;reg; 64 and IA-32 Architectures Software Developer's Manuals] which are a very useful reference to the x86 architecture in general:&lt;br /&gt;
&lt;br /&gt;
* [http://developer.intel.com/Assets/PDF/manual/253665.pdf Volume 1: Basic Architecture]&lt;br /&gt;
* [http://developer.intel.com/Assets/PDF/manual/253666.pdf Volume 2A: Instruction Set Reference, A-M]&lt;br /&gt;
* [http://developer.intel.com/Assets/PDF/manual/253667.pdf Volume 2B: Instruction Set Reference, N-Z]&lt;br /&gt;
* [http://developer.intel.com/Assets/PDF/manual/253668.pdf Volume 3A: System Programming Guide]&lt;br /&gt;
* [http://developer.intel.com/Assets/PDF/manual/253669.pdf Volume 3B: System Programming Guide]&lt;br /&gt;
* [http://www.intel.com/Assets/PDF/manual/252046.pdf Intel® 64 and IA-32 Architectures Software Developer's Manual Documentation Changes]&lt;br /&gt;
&lt;br /&gt;
Other Intel documents:&lt;br /&gt;
&lt;br /&gt;
* [http://www.intel.com/Assets/PDF/manual/318148.pdf Intel® 64 Architecture x2APIC Specification]&lt;br /&gt;
* [http://www.intel.com/Assets/PDF/manual/248966.pdf Intel® 64 and IA-32 Architectures Optimization Reference Manual]&lt;br /&gt;
* [http://www.intel.com/Assets/PDF/manual/323640.pdf Intel® Carry-Less Multiplication Instruction and its Usage for Computing the GCM Mode White Paper]&lt;br /&gt;
* [http://www.intel.com/Assets/PDF/manual/323641.pdf Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI) Set White Paper]&lt;br /&gt;
* [http://www.intel.com/Assets/PDF/manual/323850.pdf Intel® Virtualization Technology FlexMigration (Intel® VT FlexMigration) Application Note]&lt;br /&gt;
&lt;br /&gt;
= CPU =&lt;br /&gt;
&lt;br /&gt;
== AMD ==&lt;br /&gt;
&lt;br /&gt;
=== AMD Fam11h ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/41256.pdf BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/41788.pdf Revision Guide for AMD Family 11h Processors]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/43373.pdf AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks]&lt;br /&gt;
&lt;br /&gt;
Turion64:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/32816.pdf AMD Turion™ 64 Mobile Technology Product Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/41407.pdf AMD Turion™ 64 X2 Mobile Technology Dual-Core Processor Product Data Sheet]&lt;br /&gt;
&lt;br /&gt;
Athlon64:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/30430.pdf AMD Athlon™ Processor Power and Thermal Data Sheet]&lt;br /&gt;
&lt;br /&gt;
=== AMD Fam10h ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31116.pdf BIOS and Kernel Developer’s Guide (BKDG) For AMD Family 10h]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/41322.pdf Revision Guide for AMD Family 10h Processors]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/40546-PUB-Optguide_3-11_5-21-09.pdf Software Optimization Guide for AMD Family 10h Processors]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/43374.pdf AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/43375.pdf AMD Family 10h Desktop Processor Power and Thermal Data Sheet]&lt;br /&gt;
&lt;br /&gt;
Opteron:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/40036.pdf Family 10h AMD Opteron Processor Product Data Sheet]&lt;br /&gt;
&lt;br /&gt;
Phenom:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/44109.pdf Family 10h AMD Phenom&amp;amp;trade; Processor Product Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/46878.pdf Family 10h AMD Phenom&amp;amp;trade; II Processor Product Data Sheet]&lt;br /&gt;
&lt;br /&gt;
=== AMD K8 ===&lt;br /&gt;
&lt;br /&gt;
Athlon64/Opteron:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/26094.PDF BIOS and Kernel Developer's Guide for AMD Athlon&amp;amp;trade; and AMD Opteron&amp;amp;trade; Processors]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/25759.pdf Revision Guide for AMD Athlon&amp;amp;trade; and AMD Opteron&amp;amp;trade; Processors]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/26633_5649.pdf AMD Athlon&amp;amp;trade; and AMD Opteron&amp;amp;trade; Processors Thermal Design Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/40555.pdf Performance Guidelines for AMD Athlon&amp;amp;trade; and AMD Opteron&amp;amp;trade; ccNUMA Multiprocessor Systems]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24707_PUB.PDF Clock Generator Specification for AMD Athlon&amp;amp;trade; and AMD Opteron&amp;amp;trade; Processors]&lt;br /&gt;
&lt;br /&gt;
Opteron:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/23932.pdf AMD Opteron&amp;amp;trade; Processor Product Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/30417.pdf AMD Opteron&amp;amp;trade; Processor Power and Thermal Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/40820_PUB_AMD_Opteron_Processor_Production_Notice_rev_3_08.pdf AMD Opteron&amp;amp;trade; x52 and x54 Production Notice]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/30925.pdf Builders Guide for AMD Opteron&amp;amp;trade; Processor-Based Servers and Workstations]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/33340.pdf AMD Opteron&amp;amp;trade; Multiprocessor Systems Running Linux Technical Bulletin for AMD OEMs and Partners]&lt;br /&gt;
&lt;br /&gt;
Family 0Fh:&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/32559.pdf BIOS and Kernel Developer's Guide for AMD NPT Family 0Fh Processors]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/33610.pdf Revision Guide for AMD NPT Family 0Fh Processors]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/31119.pdf AMD NPT Family 0Fh Processor Electrical Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/33954.pdf AMD NPT Family 0Fh Desktop Processor Power and Thermal Data Sheet]&lt;br /&gt;
&lt;br /&gt;
=== Athlon64 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24659.pdf AMD Athlon™ Processor Product Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/30430.pdf AMD Athlon™ Processor Power and Thermal Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/31783.pdf AMD Athlon™ Processor Competitive Performance Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/43042.pdf AMD Athlon™ X2 Dual-Core Processor Product Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/33425.pdf AMD Athlon™ X2 Dual-Core Processor Product Data Sheet] (ver 3.10, 1/21/2007)&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/42989.pdf AMD Athlon™ X2 Dual-Core Processor for Notebooks Product Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/30431.pdf AMD Athlon™ FX Processor Product Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/31366.pdf AMD Athlon™ FX-60 Processor Competitive Performance Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31225.pdf Mobile AMD Athlon™ Processor 3400+ Competitive Performance Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31684.pdf Builder's Guide for AMD Athlon™ Processor-Based Desktops and Workstations]&lt;br /&gt;
&lt;br /&gt;
=== Athlon (32bit) ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/21016.pdf AMD Athlon™ Processor Module Data Sheet] (rev. M-0, 5/31/2000)&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/22054.pdf AMD Athlon™ Processor Technical Brief]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/26237.PDF AMD Athlon™ XP Processor Model 10 Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/27375.pdf AMD Athlon XP Processor Model 10 with 256K L2 Cache]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/27532.pdf AMD Athlon™ Processor Model 10 Revision Guide]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/26426.PDF AMD Athlon™ MP Processor Model 10 Data Sheet for Multiprocessor Platforms]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/25175.pdf AMD Athlon™ XP Processor Model 8 Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/25703.pdf AMD Athlon™ Processor Model 8 Revision Guide]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/25722.pdf AMD Athlon™ MP Processor Model 8 Data Sheet for Multiprocessor Platforms]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24685.pdf AMD Athlon™ MP Processor Model 6 Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/24309.pdf AMD Athlon™ XP Processor Model 6 Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/24332.pdf AMD Athlon™ Processor Model 6 Revision Guide]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/25480.pdf AMD Athlon™ MP Processor Model 6 OPGA Data Sheet for Multiprocessor Platforms]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/23792.pdf AMD Athlon™ Processor Model 4 Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/23614.pdf AMD Athlon™ Processor Model 4 Revision Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/22651.pdf AMD Athlon™ Processor Voltage Regulation Application Note]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/23811.pdf AMD Athlon™ Processor Module Signal and Power-Up Requirements Application Note]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/25823.pdf Builder’s Guide for 2P Capable Servers and Workstations]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/25325.pdf System Considerations for Dual AMD Athlon™ MP Processors in Tower and 1U Form Factors]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24387.pdf One Page AMD Athlon™ and AMD Duron™ Processor-Based System Build Checklist]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24228.pdf Methodologies for Measuring Temperature on AMD Athlon™ and AMD Duron™ Processors]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/22007.pdf AMD Athlon™ Processor x86 Code Optimization Guide]&lt;br /&gt;
&lt;br /&gt;
=== Sempron ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31805.pdf AMD Sempron™ Processor Product Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31994.pdf AMD Sempron™ Processor Model 10 with 256K L2 Cache Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31993.pdf AMD Sempron™ Processor Model 10 Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31693.pdf AMD Sempron™ Processor Model 8 Data Sheet]&lt;br /&gt;
&lt;br /&gt;
=== Duron ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/TN13.pdf AMD Duron™ Processor Rev. A0: CPUID Reporting of L2 Cache Size]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/25848.PDF AMD Duron™ Processor Model 8 Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24310.pdf AMD Duron™ Processor Model 7 Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/24806.pdf AMD Duron™ Processor Model 7 Revision Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/23802.pdf AMD Duron™ Processor Model 3 Data Sheet]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/23865.pdf AMD Duron™ Processor Model 3 Revision Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/24387.pdf One Page AMD Athlon™ and AMD Duron™ Processor-Based System Build Checklist]&lt;br /&gt;
&lt;br /&gt;
=== Socket specs ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/25766.pdf AMD Socket 940 Design Specification]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/31412.pdf AMD Functional Data Sheet, 940 Pin Package]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/30353.pdf AMD Socket 940 Qualification Plan]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31700.pdf Socket F (1207) Design Specification]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/32800.pdf Thermal Design Guide for Socket F (1207) Processors]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31875.pdf Socket AM2 Design Specification]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/40523.pdf Socket AM3 Design Specification]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31839.pdf Low-Profile Socket S1 Design Specification]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31410.pdf AMD Functional Data Sheet, 754 Pin Package]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/24850.PDF Socket 754 Design and Qualification Requirements]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/31411.pdf AMD Functional Data Sheet, 939-Pin Package]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/23986.pdf Socket A AMD Processor and Heatsink Installation Guide]&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/20734.pdf AMD Processor Recognition Application Note]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/22466.pdf AMD Extensions to the 3DNow!™ and MMX™ Instruction Sets Manual]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/21928.pdf 3DNow!™Technology Manual]&lt;br /&gt;
** [http://support.amd.com/us/Processor_TechDocs/22621.pdf 3DNow!™ Instruction Porting Guide Application Note]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/23794.pdf AMD Thermal, Mechanical, and Chassis Cooling Design Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/30579_3_74.pdf AMD Processor Performance Evaluation Guide]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/32035.pdf Compiler Usage Guidelines for AMD64 Platforms Application Note]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/25112.PDF Software Optimization Guide for AMD64 Processors]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/26951.pdf Thermal Interface Material Comparison: Thermal Pads vs. Thermal Grease]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/26003.pdf Builders Guide for Desktop/Tower Systems]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/26698.pdf Linux Kernel Issue with Systems Using AGP Graphics]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/32979.pdf Microsoft&amp;amp;reg; Windows&amp;amp;reg; XP and Windows&amp;amp;reg; Server 2003 Processor Speed Reporting]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/30887.pdf Building AMD64 Applications with the Microsoft Platform SDK]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/30888.pdf Creating an AMD64 Build Enviroment for DirectX-Based Applations]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/33609.pdf Processor Utilization with Microsoft&amp;amp;reg; Windows&amp;amp;reg; Media Center Edition on Systems Enabled with Cool'n'Quiet&amp;amp;trade; and AMD PowerNow&amp;amp;trade; Technologies]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/32979.pdf Microsoft® Windows® XP and Windows® Server 2003 Processor Speed Reporting]&lt;br /&gt;
* [http://support.amd.com/us/Processor_TechDocs/tn17.pdf Microsoft Windows® 2000 Patch for AGP Applications on AMD Athlon™ and AMD Duron™ Processors]&lt;br /&gt;
&lt;br /&gt;
== Intel ==&lt;br /&gt;
&lt;br /&gt;
=== Intel Pentium III ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.intel.com/p/en_US/support/highlights/processors/pentiumiii Highlights/Overview]&lt;br /&gt;
* [http://ark.intel.com/ProductCollection.aspx?familyID=590&amp;amp;MarketSegment=DT List of Pentium III models, steppings, etc.]&lt;br /&gt;
* [http://www.intel.com/support/processors/pentiumiii/sb/CS-023730.htm Intel® Pentium® III Processor: Datasheets]&lt;br /&gt;
** [http://download.intel.com/support/processors/pentiumiii/sb/24965705.pdf Intel® Pentium® III Processor with 512-KB L2 Cache at 1.13GHz to 1.40 GHz Datasheet] (PDF)&lt;br /&gt;
** [http://download.intel.com/support/processors/pentiumiii/sb/24976503.pdf Intel® Pentium® III Processor Based on 0.13 Micron Process Up to 1.33 GHz Datasheet] (PDF)&lt;br /&gt;
** [http://download.intel.com/support/processors/pentiumiii/sb/24526408.pdf Intel® Pentium® III Processor for the PGA370 Socket at 500 MHz to 1.13 GHz] (PDF)&lt;br /&gt;
** [http://download.intel.com/support/processors/pentiumiii/sb/24445209.pdf Intel® Pentium® III Processor for the SC242 at 450 MHz to 1.0 GHz Datasheet] (PDF)&lt;br /&gt;
** [http://download.intel.com/support/processors/pentiumiii/sb/27367306.pdf Low Voltage Intel® Pentium® III Processor 512-KB] (PDF)&lt;br /&gt;
* [http://www.intel.com/design/intarch/specupdt/244453.htm Intel® Pentium® III Processor Specification Update] ([http://download.intel.com/design/intarch/specupdt/24445358.pdf PDF])&lt;br /&gt;
&lt;br /&gt;
Mobile:&lt;br /&gt;
* [http://www.intel.com/p/en_US/support/highlights/processors/pentiumiii-m Highlights/Overview]&lt;br /&gt;
* [http://www.intel.com/support/processors/mobile/pentiumiii/sb/CS-023739.htm Mobile Intel® Pentium® III Processor - M Datasheet] ([http://download.intel.com/support/processors/mobile/pentiumiii/sb/29834006.pdf PDF])&lt;br /&gt;
* [http://www.intel.com/support/processors/mobile/pentiumiii/sb/CS-023740.htm Mobile Intel® Pentium® III Processor and Mobile Intel® Pentium® III Processor-M Specification Update] ([http://download.intel.com/support/processors/mobile/pentiumiii/sb/24530659.pdf PDF])&lt;br /&gt;
* [http://www.intel.com/design/intarch/specupdt/245306.htm Mobile Intel® Pentium® III Processor and Mobile Intel® Pentium® III Processor-M Specification Update] ([http://download.intel.com/design/intarch/specupdt/24530663.pdf PDF])&lt;br /&gt;
* [http://developer.intel.com/design/mobile/datashts/245302.htm Mobile Pentium® III Processor in BGA2 and Micro-PGA2 Packages] ([http://download.intel.com/design/mobile/datashts/24530202.pdf PDF])&lt;br /&gt;
&lt;br /&gt;
Embedded:&lt;br /&gt;
* [http://www.intel.com/design/intarch/pentiumiii/docs_pentiumiii.htm Embedded Intel® Architecture Processors: Intel® Pentium® III Processors: Technical Documents]&lt;br /&gt;
** [http://www.intel.com/design/intarch/pentiumiii/docs_pentiumiii_pga370.htm Intel® Pentium® III Processor - PGA370]&lt;br /&gt;
** [http://www.intel.com/design/intarch/pentiumiii/docs_pentiumiii_low.htm Intel® Pentium® III Processor - Low Power]&lt;br /&gt;
** [http://www.intel.com/design/intarch/pentiumiii/docs_pentiumiii_vol.htm Low Voltage Intel® Pentium® III Processor]&lt;br /&gt;
&lt;br /&gt;
Xeon:&lt;br /&gt;
* [http://www.intel.com/p/en_US/support/highlights/processors/pentiumiii-xeon Highlights/Overview]&lt;br /&gt;
&lt;br /&gt;
== VIA ==&lt;br /&gt;
&lt;br /&gt;
=== VIA Padlock ===&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=281 Security Application note]&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=261 PadLock Programming Guide]&lt;br /&gt;
&lt;br /&gt;
= Northbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD ==&lt;br /&gt;
&lt;br /&gt;
=== AMD RS880 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/46143_rs880_BDG_pub_3.00.pdf AMD RS880 Family BIOS Developer's Guide] (BDG)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/46141_rs880_rpr_pub_3.00.pdf AMD RS880 Family Register Programming Requirements] (RPR)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/46142_rs880_rrg_pub_3.00.pdf AMD RS880 Family Register Reference Guide] (RRG)&lt;br /&gt;
&lt;br /&gt;
=== AMD RD890 ===&lt;br /&gt;
&lt;br /&gt;
Not public (yet?). However, some of the information may be contained in the public docs in the RS880 section.&lt;br /&gt;
&lt;br /&gt;
* AMD RD890 BIOS Developer's Guide (Publication #43606)&lt;br /&gt;
* AMD RD890 Register Reference Guide (Publication #43607)&lt;br /&gt;
&lt;br /&gt;
=== AMD RS780 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/43734_rs780_bdg_pub_1.01.pdf AMD 780G Family BIOS Developer’s Guide] (BDG)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/43291_rs780_rpr_pub_1.01.pdf AMD 780G Family Register Programming Requirements] (RPR)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/43451_rs780_rrg_pub_1.01.pdf AMD 780G Family Register Reference Guide] (RRG)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/45732_rs780e_ds_pub_3.10.pdf AMD 780E Databook]&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/48319.pdf AMD 780 Product Errata]&lt;br /&gt;
&lt;br /&gt;
Apparently there are other docs as well, not sure if they provide any additional information or if they are part of the public documents above:&lt;br /&gt;
&lt;br /&gt;
* AMD RD780 Register Reference Guide&lt;br /&gt;
* AMD RX780 Register Reference Guide&lt;br /&gt;
* AMD RS780M Hybrid Graphics – System BIOS Detailed Design Document (Publication #44969)&lt;br /&gt;
* AMD RD790 Register Programming Requirements (Publication #42462)&lt;br /&gt;
* AMD RD790 Register Reference Guide (Publication #42988)&lt;br /&gt;
* AMD RD790 BIOS Developer's Guide (Publication #43093)&lt;br /&gt;
&lt;br /&gt;
=== AMD RS690 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/43372_rs690_rrg_3.00o.pdf AMD RS690 Register Reference Guide] (RRG)&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/41977_rs690_ds_3.06.pdf AMD 690G Databook]&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/41978_rs690m_ds_3.06.pdf AMD M690 Databook (Notebook Solutions)]&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/42437_m690t_ds_3_08.pdf AMD M690T/M690E Databook]&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/AMD690Series_LogoGuide.pdf AMD 690 Chipset Logos]&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/AMD_7-Series_Chipsets_-_Guidelines.pdf AMD 7-Series Chipsets - Guidelines.pdf]&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/42655A_S1DBM680T_PB.pdf AMD Model S1 DBM690T, Socket S1 and M690T/SB600 Chipset Development Board]&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/AMDCrossFire_LogoGuide.pdf AMD 480X Chipset Logos]&lt;br /&gt;
&lt;br /&gt;
== Intel ==&lt;br /&gt;
&lt;br /&gt;
=== Intel Atom Z5xx and SCH US15Wx ===&lt;br /&gt;
&lt;br /&gt;
* [http://ark.intel.com/ProductCollection.aspx?codeName=24973 Overview of products formerly named Poulsbo]&lt;br /&gt;
* [http://edc.intel.com/Platforms/Atom-Z5xx/#hardware Overview: Intel® Atom™ Processor Z5xx Series and Intel® System Controller Hub US15Wx]&lt;br /&gt;
** [http://edc.intel.com/Link.aspx?id=1387 Datasheet: Intel® System Controller Hub (Intel® SCH)] (PDF)&lt;br /&gt;
** [http://edc.intel.com/Link.aspx?id=1905 Datasheet: Intel® System Controller Hub (Intel® SCH) (large form factor)] (PDF)&lt;br /&gt;
&lt;br /&gt;
=== Intel NM10 Express ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.intel.com/Products/Internet_Device/Chipsets/NM10/NM10-technicaldocuments.htm Overview]&lt;br /&gt;
** [http://www.intel.com/Assets/PDF/datasheet/322896.pdf Intel® NM10 Express Chipset Datasheet]&lt;br /&gt;
** [http://www.intel.com/Assets/PDF/specupdate/322897.pdf Intel® NM10 Express Chipset Specification Update]&lt;br /&gt;
&lt;br /&gt;
=== Intel 860 ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.intel.com/design/archives/chipsets/860/index.htm Hardware Design: Archives - Intel&amp;amp;reg; 860 Chipset Family Technical Documentation]&lt;br /&gt;
** [http://www.intel.com/design/chipsets/datashts/290713.htm Intel® 860 Chipset: 82860 Memory Controller Hub (MCH) Datasheet]: [http://download.intel.com/design/chipsets/datashts/29071301.pdf PDF]&lt;br /&gt;
*** [http://www.intel.com/design/chipsets/specupdt/290715.htm Intel® 860 Chipset: 82860 Memory Controller Hub (MCH) Specification Update]: [http://www.intel.com/design/chipsets/specupdt/29071501.pdf PDF]&lt;br /&gt;
** [http://www.intel.com/design/chipsets/applnots/292269.htm Intel® 860 Chipset Thermal Considerations Application Note (AP-721)]: [http://download.intel.com/design/chipsets/datashts/29071301.pdf PDF]&lt;br /&gt;
** [http://www.intel.com/design/chipsets/designex/298252.htm Intel® Xeon® Processor and Intel® 860 Chipset Platform Design Guide]: [http://download.intel.com/design/chipsets/designex/29825204.pdf PDF]&lt;br /&gt;
** [http://www.intel.com/design/chipsets/designex/298302.htm Intel® 860 Chipset Memory Expansion Card (MEC) Design Guide]: [http://download.intel.com/design/chipsets/designex/29830201.pdf PDF]&lt;br /&gt;
** [http://www.intel.com/design/chipsets/schematics/860_crb.htm Intel 860 Chipset CRB Schematics]: [http://download.intel.com/design/chipsets/schematics/860_crb.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
=== Intel 82815E ===&lt;br /&gt;
&lt;br /&gt;
* [http://download.intel.com/design/chipsets/datashts/29068801.pdf 82815 Chipset Family]&lt;br /&gt;
* [http://download.intel.com/design/chipsets/designex/29823401.pdf 82815E Chipset Platform Design Guide]&lt;br /&gt;
* [http://download.intel.com/design/chipsets/designex/29824906.pdf 82815E Chipset Platform Design Guide update]&lt;br /&gt;
&lt;br /&gt;
=== Intel 440BX ===&lt;br /&gt;
&lt;br /&gt;
* [http://download.intel.com/design/chipsets/datashts/29063301.pdf Datasheet]&lt;br /&gt;
* [http://download.intel.com/design/chipsets/datashts/27321903.pdf Electrical and Thermal Timing Specification]&lt;br /&gt;
&lt;br /&gt;
=== Intel 440LX ===&lt;br /&gt;
&lt;br /&gt;
* [http://download.intel.com/design/chipsets/datashts/29056402.pdf Datasheet]&lt;br /&gt;
* [http://www.intel.com/design/chipsets/specupdt/29765505.pdf Spec update]&lt;br /&gt;
&lt;br /&gt;
== VIA ==&lt;br /&gt;
&lt;br /&gt;
VIA has a [http://linux.via.com.tw portal] with some source code and datasheets.&lt;br /&gt;
&lt;br /&gt;
=== VIA VX800 ===&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=161&amp;amp;fid=241 VIA VX800 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
=== VIA CX700M/VX700 ===&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=141&amp;amp;fid=221 VIA CX700M/VX700 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
= Southbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD ==&lt;br /&gt;
&lt;br /&gt;
=== AMD SB820M ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf AMD SB820M Southbridge Databook]&lt;br /&gt;
&lt;br /&gt;
=== AMD SB810/SB850 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/44758.pdf AMD SB810/SB850 Southbridge Databook]&lt;br /&gt;
&lt;br /&gt;
=== AMD SB800 ===&lt;br /&gt;
&lt;br /&gt;
Not available yet, but here are the numbers for the document we'd like to get. (Mentioned in the AMD SB810/850 Southbridge Databook.)&lt;br /&gt;
&lt;br /&gt;
* AMD SB800-Series Southbridges Register Reference Guide (Publication #45482)&lt;br /&gt;
&lt;br /&gt;
=== AMD SB700/SB710/SB750 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/43366_sb7xx_bdg_pub_1.00.pdf AMD SB700/710/750 BIOS Developer’s Guide] (BDG)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/43009_sb7xx_rrg_pub_1.00.pdf AMD SB700/710/750 Register Reference Guide] (RRG)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/42413_sb7xx_rpr_pub_1.00.pdf AMD SB700/710/750 Register Programming Requirements] (RPR)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/45215_sb710_ds_pub_1.25.pdf AMD SB710 Databook]&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/46837.pdf AMD SB700 Family Product Errata]&lt;br /&gt;
&lt;br /&gt;
=== AMD SB600 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/46157_sb600_bdg_pub.3.00.pdf AMD SB600 BIOS Developer's Guide] (BDG)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/46155_sb600_rrg_pub_3.03.pdf AMD SB600 Register Reference Manual] (RRG)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/46156_sb600_rpr_pub_3.02b.pdf AMD SB600 Register Programming Requirements] (RPR)&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/42119_sb600_ds_3.05.pdf AMD SB600 Databook] (rev. 3.05)&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/42119_sb600_ds_pub_3.07.pdf AMD SB600 Databook] (rev. 3.07)&lt;br /&gt;
&lt;br /&gt;
=== AMD 8111 ===&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/24674.pdf AMD-8111™ HyperTransport™ I/O Hub Data Sheet]&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/26036.pdf AMD-8111™ HyperTransport™ I/O Hub Product Brief]&lt;br /&gt;
* [http://support.amd.com/us/ChipsetMotherboard_TechDocs/25720.pdf AMD-8111™ HyperTransport™ I/O Hub Revision Guide]&lt;br /&gt;
&lt;br /&gt;
== Intel ==&lt;br /&gt;
&lt;br /&gt;
=== Intel 82801BA/BAM (ICH2) ===&lt;br /&gt;
&lt;br /&gt;
* [http://developer.intel.com/design/chipsets/datashts/290687.htm Datasheet]&lt;br /&gt;
&lt;br /&gt;
= Super I/O =&lt;br /&gt;
&lt;br /&gt;
== ITE ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 PC Desktop/Notebook Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 Desktop Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=6 Notebook Super I/Os]&lt;br /&gt;
&lt;br /&gt;
== Winbond / Nuvoton ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/ISASuperIO/ ISA Super I/Os]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/LPCSuperIOforDesktopAndServer/ LPC Super I/O for Desktop &amp;amp; Server]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforDesktop/ Advanced Super I/O for Desktop]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforNotebook/ Advanced Super I/O for Notebook]&lt;br /&gt;
&lt;br /&gt;
== Fintek ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.fintek.com.tw/eng/products.asp?BID=1&amp;amp;SID=17&amp;amp;layer=0 Super Hardware Monitor + SIO]&lt;br /&gt;
&lt;br /&gt;
== NSC ==&lt;br /&gt;
&lt;br /&gt;
(bought by Winbond, now Nuvoton)&lt;br /&gt;
&lt;br /&gt;
== ALi ==&lt;br /&gt;
&lt;br /&gt;
== SMSC ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.smsc.com/main/catalog/ioprods.html Products / datasheets overview]&lt;br /&gt;
* [http://www.smsc.com/main/datasheet.html Various product datasheets]&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
== ACPI ==&lt;br /&gt;
&lt;br /&gt;
* http://www.acpi.info&lt;br /&gt;
&lt;br /&gt;
== USB ==&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
* [http://support.amd.com/us/Pages/techdocs.aspx AMD public documents]&lt;br /&gt;
** The [http://www.amd.com/us/products/embedded/develop-and-design/Pages/processor-chipset-linux-supprt.aspx AMD64 Embedded Processors and Chipset Linux Support] web page features links to supported projects (like coreboot) and links to documentation.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
There are many datasheet archives on the web which may have other (usually older) datasheets which already disappeared from vendor websites.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GCI2010</id>
		<title>GCI2010</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GCI2010"/>
				<updated>2010-10-31T00:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: point to flashrom.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We hope to participate in Google Code-in 2010 (basically Google Summer of code for 13-18 year old students)&lt;br /&gt;
&lt;br /&gt;
Please note that the task list is not finished, and we will add more tasks once we know how long individual tasks are supposed to take.&lt;br /&gt;
&lt;br /&gt;
See http://www.flashrom.org/GCI2010 for a huge list of flashrom related tasks.&lt;br /&gt;
&lt;br /&gt;
=Code: Tasks related to writing or refactoring code=&lt;br /&gt;
=Documentation: Tasks related to creating/editing documents=&lt;br /&gt;
=Outreach: Tasks related to community management and outreach/marketing=&lt;br /&gt;
=Quality Assurance: Tasks related to testing and ensuring code is of high quality=&lt;br /&gt;
=Research: Tasks related to studying a problem and recommending solutions=&lt;br /&gt;
=Training: Tasks related to helping others learn more=&lt;br /&gt;
=Translation: Tasks related to localization=&lt;br /&gt;
=User Interface: Tasks related to user experience research or user interface design and interaction=&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GCI2010</id>
		<title>GCI2010</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GCI2010"/>
				<updated>2010-10-30T23:47:10Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: comment about unfinished list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We hope to participate in Google Code-in 2010 (basically Google Summer of code for 13-18 year old students)&lt;br /&gt;
&lt;br /&gt;
Please note that the task list is not finished, and we will add more tasks once we know how long individual tasks are supposed to take.&lt;br /&gt;
&lt;br /&gt;
=Code: Tasks related to writing or refactoring code=&lt;br /&gt;
=Documentation: Tasks related to creating/editing documents=&lt;br /&gt;
=Outreach: Tasks related to community management and outreach/marketing=&lt;br /&gt;
=Quality Assurance: Tasks related to testing and ensuring code is of high quality=&lt;br /&gt;
=Research: Tasks related to studying a problem and recommending solutions=&lt;br /&gt;
=Training: Tasks related to helping others learn more=&lt;br /&gt;
=Translation: Tasks related to localization=&lt;br /&gt;
=User Interface: Tasks related to user experience research or user interface design and interaction=&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GCI2010</id>
		<title>GCI2010</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GCI2010"/>
				<updated>2010-10-30T21:50:21Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We hope to participate in Google Code-in 2010 (basically Google Summer of code for 13-18 year old students)&lt;br /&gt;
&lt;br /&gt;
=Code: Tasks related to writing or refactoring code=&lt;br /&gt;
=Documentation: Tasks related to creating/editing documents=&lt;br /&gt;
=Outreach: Tasks related to community management and outreach/marketing=&lt;br /&gt;
=Quality Assurance: Tasks related to testing and ensuring code is of high quality=&lt;br /&gt;
=Research: Tasks related to studying a problem and recommending solutions=&lt;br /&gt;
=Training: Tasks related to helping others learn more=&lt;br /&gt;
=Translation: Tasks related to localization=&lt;br /&gt;
=User Interface: Tasks related to user experience research or user interface design and interaction=&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GCI2010</id>
		<title>GCI2010</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GCI2010"/>
				<updated>2010-10-30T21:49:12Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: Headlines&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code: Tasks related to writing or refactoring code=&lt;br /&gt;
=Documentation: Tasks related to creating/editing documents=&lt;br /&gt;
=Outreach: Tasks related to community management and outreach/marketing=&lt;br /&gt;
=Quality Assurance: Tasks related to testing and ensuring code is of high quality=&lt;br /&gt;
=Research: Tasks related to studying a problem and recommending solutions=&lt;br /&gt;
=Training: Tasks related to helping others learn more=&lt;br /&gt;
=Translation: Tasks related to localization=&lt;br /&gt;
=User Interface: Tasks related to user experience research or user interface design and interaction=&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FAQ"/>
				<updated>2010-05-20T08:20:10Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Inside mainboard BIOS (re)flash */ Update flashrom log+features, update information about uniflash+ctflasher.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== What is coreboot? ===&lt;br /&gt;
&lt;br /&gt;
'''coreboot''' (formerly known as LinuxBIOS) is a Free Software project aimed at replacing the proprietary BIOS (firmware) you can find in most of today's computers.&lt;br /&gt;
&lt;br /&gt;
It performs just a little bit of hardware initialization and then executes a so-called [[Payloads|payload]].&lt;br /&gt;
&lt;br /&gt;
Some of the many possible payloads are: a [[Linux]] kernel, [[FILO]] (a GRUB-like bootloader for booting from disk), [[GRUB2]], [http://www.openbios.org/Open_Firmware Open Firmware], [[Etherboot]]/[[GPXE]], [[SeaBIOS]] (for booting Windows XP, Windows Vista, Windows 7, NetBSD and Linux), and [[Payloads|many others]].&lt;br /&gt;
&lt;br /&gt;
The initial motivation for the project was maintenance of large clusters, but unsurprisingly, interest and contributions have come from people with varying backgrounds. The latest version of coreboot can be used in a wide variety of scenarios including clusters, embedded systems, desktop PCs, servers, and more.&lt;br /&gt;
&lt;br /&gt;
For more information, see [[History]].&lt;br /&gt;
&lt;br /&gt;
=== Why do we need coreboot? ===&lt;br /&gt;
&lt;br /&gt;
==== Why do we need coreboot for cluster maintainance? ====&lt;br /&gt;
&lt;br /&gt;
Current PCs used as cluster nodes depend on a vendor-supplied BIOS for booting. The BIOS in turn relies on inherently unreliable devices such as floppy disks and hard drives to boot the operating system. In addition, current BIOS software is unable to accommodate non-standard hardware making it difficult to support experimental work. The BIOS is slow and often erroneous and redundant and, most importantly, maintenance is a nightmare. Imagine walking around with a keyboard and monitor to every one of the 128 nodes in a cluster to change one BIOS setting. &lt;br /&gt;
&lt;br /&gt;
coreboot with Linux as a [[Payloads|payload]] (other payloads are possible!) gunzip's the Linux kernel straight out of NVRAM and essentially requires no moving parts other than the CPU fan. It does a minimal amount of hardware initialization before jumping to the kernel start and lets Linux do the rest. As a result, it is much faster (current record: 3 seconds), which has sparked interest in the consumer electronics community as well. Moreover, updates can be performed over the network. &lt;br /&gt;
&lt;br /&gt;
Using a real operating system to boot another operating system provides much greater flexibility than using a simple netboot program or the BIOS. Because Linux is the boot mechanism, it can boot over standard '''Ethernet''' or over other interconnects such as '''Myrinet''', '''Quadrics''', or '''SCI'''. It can use SSH connections to load the kernel, or it can use the '''InterMezzo caching file system''' or traditional '''NFS'''. Cluster nodes can be as simple as they need to be &amp;amp;mdash; perhaps as simple as a CPU and memory, no disk, no floppy, and no file system. The nodes will be much less autonomous thus making them easier to maintain.&lt;br /&gt;
&lt;br /&gt;
==== Why do we need coreboot for other purposes? ====&lt;br /&gt;
&lt;br /&gt;
Some aspects of '''DRM''' are not travelling well with the idea of a free computer system. As many computer magazines already pointed out, there may be future restrictions imposed by BIOSes, that a customer is little aware of before purchase and might not harmonize with the idea of freedom and/or security in some cases.&lt;br /&gt;
&lt;br /&gt;
=== Who is working on coreboot? ===&lt;br /&gt;
&lt;br /&gt;
The coreboot project was started in the winter of 1999 in the '''Advanced Computing Laboratory at Los Alamos National Laboratory (LANL)''' by [[User:Rminnich|Ron Minnich]]. Two undergraduate students, James Hendricks and Dale Webster spent their winter vacation putting together the proof of concept implementation. &lt;br /&gt;
&lt;br /&gt;
Since then, a [[Contributors|long list of people have contributed]] both in discussions and actual code. Please don't be shy and let us know if you are missing from the list. It's not a purposeful omission, just an unfortunate mistake.&lt;br /&gt;
&lt;br /&gt;
=== Who is funding coreboot? ===&lt;br /&gt;
&lt;br /&gt;
The coreboot project was initially funded by the Los Alamos Computer Science Institute and the Department of Energy's Office of Science.&lt;br /&gt;
&lt;br /&gt;
See also the [[Sponsors|list of coreboot sponsors]].&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
=== Will coreboot work on my machine? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Motherboards]] page for which mainboards are supported, and also the list of [[Supported Chipsets and Devices]]. See the [[Products]] page for a list of vendors selling products running coreboot.&lt;br /&gt;
&lt;br /&gt;
If the above sources don't help, please send the following to the [[Mailinglist|mailing list]]:&lt;br /&gt;
&lt;br /&gt;
* Step 1: A very brief description of your system: board vendor, board name, CPU, northbridge, southbridge, and optionally other important details.&lt;br /&gt;
* Step 2: Linux &amp;quot;'''lspci -tvnn'''&amp;quot; output for your system, generated by booting Linux via the original BIOS and runnning lspci.&lt;br /&gt;
* Step 3: Super I/O chip on the mainboard (report the model numbers on the actual chip, for example &amp;quot;Winbond W83627HF&amp;quot; and/or run &amp;quot;'''[[superiotool]] -dV'''&amp;quot;).&lt;br /&gt;
* Step 4: Type of BIOS device (see the question &amp;quot;How do I identify the BIOS chip on my mainboard?&amp;quot; below). Please send us the output of &amp;quot;'''[[flashrom]] -V'''&amp;quot;&lt;br /&gt;
* Step 5: URL to the mainboard specifications page (optional).&lt;br /&gt;
* Step 6: Any other relevant information you can provide.&lt;br /&gt;
&lt;br /&gt;
If you can't do step 1 above, please describe (as best you can) the specific CPU chip and the chipset used on the mainboard.&lt;br /&gt;
&lt;br /&gt;
Usually in less than a day, someone will respond on the coreboot mailing list saying your mainboard is supported in the main coreboot source tree, it is currently in development, it is not yet supported or the manufacturer will not release information needed to provide coreboot support. In the latter case, please let the manufacturer know that you want coreboot support and his failure to release chipset information is making that very difficult.&lt;br /&gt;
&lt;br /&gt;
=== What commercial products use coreboot? ===&lt;br /&gt;
&lt;br /&gt;
See the [[products]] page.&lt;br /&gt;
&lt;br /&gt;
=== Which different operating systems will coreboot boot? ===&lt;br /&gt;
&lt;br /&gt;
coreboot should support almost any modern operating system. To support operating systems that use [http://en.wikipedia.org/wiki/BIOS_interrupt_call BIOS calls], [[SeaBIOS]] is mandantory, as coreboot doesn't provide these by itself:&lt;br /&gt;
&lt;br /&gt;
* Linux&lt;br /&gt;
* Plan 9&lt;br /&gt;
* FreeDOS (via [[SeaBIOS]])&lt;br /&gt;
* Windows 2000, XP, Vista, 7(RC) (via [[SeaBIOS]], the boot loader requires BIOS)&lt;br /&gt;
* NetBSD, MirBSD (via [[SeaBIOS]] as at least the boot loader requires BIOS)&lt;br /&gt;
&lt;br /&gt;
coreboot does '''not''' natively support:&lt;br /&gt;
&lt;br /&gt;
* We have tested some of the BSD OSes and have seen, that FreeBSD for example makes BIOS calls, which is not supported by coreboot. Possibly with help of [[SeaBIOS]], it may be possible to boot FreeBSD like it is now, but the right thing to do, is to remove FreeBSD's dependence on BIOS calls.&lt;br /&gt;
* Windows versions older than Windows 2000, as they make BIOS calls ([[SeaBIOS]] might help)&lt;br /&gt;
* [http://www.menuetos.net/ MenuetOS], as it makes BIOS calls ([[SeaBIOS]] might help)&lt;br /&gt;
&lt;br /&gt;
Please feel free to test booting any of the above using [[SeaBIOS]] and report to the coreboot mailing list.&lt;br /&gt;
&lt;br /&gt;
=== What chipsets and Super I/O devices are supported? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Chipsets and Devices]] page.&lt;br /&gt;
&lt;br /&gt;
=== Where is the mailing list archived? ===&lt;br /&gt;
&lt;br /&gt;
See [[Mailinglist]].&lt;br /&gt;
&lt;br /&gt;
=== Is there a coreboot IRC channel? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see [[IRC]].&lt;br /&gt;
&lt;br /&gt;
=== Where do I get the code? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Download coreboot|download page]].&lt;br /&gt;
&lt;br /&gt;
=== How do I build coreboot? ===&lt;br /&gt;
&lt;br /&gt;
See the [[documentation]].&lt;br /&gt;
&lt;br /&gt;
=== How can I help with coreboot? ===&lt;br /&gt;
&lt;br /&gt;
There are many ways how you can help us:&lt;br /&gt;
&lt;br /&gt;
* Promote coreboot, tell all your friends about it, blog about it etc.&lt;br /&gt;
* Test coreboot, [http://tracker.coreboot.org/trac/coreboot/newticket report] any bugs you find, or let us know about any suggestions for improvements you have.&lt;br /&gt;
* Help us to make the list of [[Supported Motherboards]] and the list of [[Supported Chipsets and Devices]] bigger by contributing code. Please also read the [[Development Guidelines]] in that case.&lt;br /&gt;
* If you have a mainboard with USB2 (EHCI-controller) you can look if it supports the [[EHCI Debug Port]] and mail the information to us, if it is not already there.&lt;br /&gt;
** If you are familiar with microcontroller development, you might be able to build a debugging tool for the [[EHCI Debug Port]]. If you are successful, we like to hear about it.&lt;br /&gt;
* Test, if QNX or Solaris are able to boot on a mainboard with coreboot.&lt;br /&gt;
* Have a look at the [http://tracker.coreboot.org/trac/coreboot/report/1 list of open issues/bugs] and try to reproduce them or (preferrably) fix them.&lt;br /&gt;
* Contact [[User:Rminnich|Ron Minnich]] or [[User:Stepan|Stefan Reinauer]] for bigger projects related to coreboot.&lt;br /&gt;
* Contact us on the [[Mailinglist|mailing list]] if you have any further questions or suggestions.&lt;br /&gt;
&lt;br /&gt;
=== What do the abbreviations in this wiki stand for? ===&lt;br /&gt;
&lt;br /&gt;
See [[Glossary]].&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
=== Where can I buy BIOS chips (empty or pre-flashed)? ===&lt;br /&gt;
&lt;br /&gt;
When developing or simply trying out coreboot you always need a means to revert to your old BIOS in case something goes wrong. One way to do this is to get an extra BIOS chip (PLCC32, DIP32, DIP8, or other) and copy your original BIOS image onto that chip (using [[Flashrom]], for example). If you have a socketed BIOS (not soldered onto the mainboard), you can hot-swap the chips while your computer is running. &lt;br /&gt;
&lt;br /&gt;
You have several options to get spare BIOS chips:&lt;br /&gt;
* Most local or online electronics dealers carry some, for example:&lt;br /&gt;
** Germany:&lt;br /&gt;
*** http://www.bios-chip.com / http://www.bios-express.de (same company)&lt;br /&gt;
*** http://www.bios-fix.de&lt;br /&gt;
*** http://www.bios-chips.com&lt;br /&gt;
*** http://www.conrad.de&lt;br /&gt;
*** http://www.endrich.com/de/site.php/47385 (it's unknown whether they ship small quantities)&lt;br /&gt;
*** http://www.chip-service.de&lt;br /&gt;
*** http://www.cramertronic.de/index.php?cPath=37&lt;br /&gt;
*** http://www.neumueller.com/&lt;br /&gt;
** UK:&lt;br /&gt;
*** http://bios-repair.co.uk/&lt;br /&gt;
** US:&lt;br /&gt;
*** http://avnet.com&lt;br /&gt;
*** http://mouser.com&lt;br /&gt;
*** http://semiconductorstore.com/&lt;br /&gt;
* You can search eBay for BIOS chips (either empty ones or pre-flashed ones).&lt;br /&gt;
* You can rip out chips from old/broken mainboards and re-use them (you can check flea markets, eBay, etc. for cheap and/or broken mainboards).&lt;br /&gt;
&lt;br /&gt;
=== What kind of hardware tools do I need? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Developer Manual#Required_hardware_and_software_tools_for_developers|hardware tools section]] of the [[Developer Manual|developer's manual]].&lt;br /&gt;
&lt;br /&gt;
=== How do I use a null-modem cable to get coreboot debugging output over a serial port? ===&lt;br /&gt;
&lt;br /&gt;
* First, you'll want to set up a terminal program, e.g. '''minicom''' correctly.&lt;br /&gt;
 $ minicom -s&lt;br /&gt;
  -&amp;gt; Serial port setup&lt;br /&gt;
  -&amp;gt; Press A and enter your COM device (ttyS0 or ttyS1 or ttyUSB0, depending on your COM port)&lt;br /&gt;
  -&amp;gt; Press E and choose &amp;quot;115200 8N1&amp;quot; (default)&lt;br /&gt;
  -&amp;gt; Disable Hardware and Software Flow Control (via F and G)&lt;br /&gt;
  -&amp;gt; Press enter to leave the menu&lt;br /&gt;
  -&amp;gt; Save setup as..&lt;br /&gt;
  -&amp;gt;   Enter &amp;quot;lb&amp;quot;&lt;br /&gt;
  -&amp;gt; Exit from minicom&lt;br /&gt;
* From now on, you can start minicom with the obove settings simply by typing:&lt;br /&gt;
 $ minicom -o lb&lt;br /&gt;
&lt;br /&gt;
=== What documentation do I need? ===&lt;br /&gt;
&lt;br /&gt;
As much documentation as you can possibly get your hands on.  At minimum, you will need the docs for the chipset.&lt;br /&gt;
	&lt;br /&gt;
There have been reports of people getting coreboot working by booting with the OEM BIOS. Then, they would read the static contents of the PCI config registers after boot. coreboot is then built to match the static contents read from the PCI config registers. &lt;br /&gt;
&lt;br /&gt;
The problem with this approach is that chipsets generally require dynamic vs static configuration values during their initialization. The configuration register contents will change from one stage of initialization to the next. Since the contents of the registers read is only the final state of the configuration registers, the chipset won't be properly initialized if these are the only configuration values used.&lt;br /&gt;
&lt;br /&gt;
Getting a mainboard up without chipset docs can be a very long and involved process.&lt;br /&gt;
&lt;br /&gt;
=== What if my chipset docs are covered by an NDA? ===&lt;br /&gt;
&lt;br /&gt;
If the documentation for your chipset covered by a NDA with no source release agreement, you won't be able to release your code back to the coreboot project in general, or you will violate the GPL.&lt;br /&gt;
Many vendors accept releasing the source code, produced after reading such specs, while they don't allow the specs themselves to be revealed. Also, you can offer them the opportunity to review your code, before releasing it to the public.&lt;br /&gt;
&lt;br /&gt;
=== Why is the code so complicated and what can I do to make it easier? ===&lt;br /&gt;
&lt;br /&gt;
The reason is the complexity of the problem. We support a lot of hardware, and a given chip on a given board will most likely not be configured quite the same as the same chip on some other board. To help make code navigation easier, pick a target and build that target. Then, in the build directory, type make tags or make etags to get your favorite tags file. &lt;br /&gt;
&lt;br /&gt;
=== How do I contribute my changes? ===&lt;br /&gt;
&lt;br /&gt;
Please carefully read the [http://linuxbios.org/Development_Guidelines Development Guidelines] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I identify the BIOS chip on my mainboard? ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Flashrom#ROM_chip_overview]].&lt;br /&gt;
&lt;br /&gt;
=== How do I (re-)flash the BIOS? ===&lt;br /&gt;
&lt;br /&gt;
==== Out of mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
If the BIOS chip is socketed, it can be removed and flashed in a rom/flash burner and quickly re-installed.&lt;br /&gt;
&lt;br /&gt;
You have the option of using the [http://www.flashrom.org/Supported_hardware external programmers supported by flashrom] or some other external programmer which comes with its own software. Depending on the flash chip type, various options exist. For older parallel flash chips, some of these burners cost $700 and more plus they complete a flash in 30 seconds (like the [http://www.conitec.net/english/galep5.php Conitec Galep V]), but if you are willing to wait 5 minutes for a flash and manually set DIP switches, the Enhanced Willem Universal Programmer will do the job for only $40-60 USD.  There are several models of the Willem Programmer, each supporting many chips, but not all, so be sure to get one that supports your BIOS chip. You could also use the [[Paraflasher]] which is a really low-cost programmer with parts sold for $20 or less. The [[flashrom]] wiki has a list of hardware you can use for programming.&lt;br /&gt;
&lt;br /&gt;
If your chip is PLCC, you will also need the push pin trick or a PLCC chip extractor/puller or just thread nylon string under the PLCC chip from corner to corner and yank up it straight up. Read more about chip extraction in the [[Developer_Manual/Tools#Chip_removal_tools|developer manual]].&lt;br /&gt;
&lt;br /&gt;
==== Inside mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
Download the appropriate flash update utility. Build the coreboot image as explained above and use the flash update utility to update the BIOS. Be warned that not all update utilities allow you to load your own BIOS image. NOTE: Many vendor specific flash utilities refuse to write &amp;quot;foreign&amp;quot; BIOS images, such as coreboot.&lt;br /&gt;
&lt;br /&gt;
Therefore we suggest that you use the universal flash utility called [http://www.flashrom.org/ flashrom] which was developed and improved by many coreboot developers, and it works under Linux/*BSD/MacOSX/Solaris/DOS.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 bash$ sudo ./flashrom -V&lt;br /&gt;
 flashrom v0.9.2-r1000 on Linux 2.6.34-rc7-git5 (x86_64), built with libpci 3.1.7, GCC 4.4.3&lt;br /&gt;
 flashrom is free software, get the source code at http://www.flashrom.org&lt;br /&gt;
 &lt;br /&gt;
 No coreboot table found.&lt;br /&gt;
 Found chipset &amp;quot;Intel ICH9&amp;quot;, enabling flash write... OK.&lt;br /&gt;
 This chipset supports the following protocols: FWH,SPI.&lt;br /&gt;
 Calibrating delay loop... 663M loops per second, 100 myus = 199 us. OK.&lt;br /&gt;
 Found chip &amp;quot;Winbond W25x80&amp;quot; (1024 KB, SPI) at physical address 0xfff00000.&lt;br /&gt;
 No operations were specified.&lt;br /&gt;
&lt;br /&gt;
Alternatively you could either use the DOS [http://www.rainbow-software.org/uniflash/ uniflash] utility, or use its source code, which is also available for download from the uniflash site (in Turbo Pascal 7) as a reference for adding support for your flash chip to [[flashrom]].  Uniflash supports a lot of different flash chips, and chip interfaces, but so far SPI support is only present in flashrom. You can use flashrom and uniflash for PCI expansion card flashing, such as on RTL8139 Ethernet card (32pin DIL), which allows flashing of your BIOS chip on the NIC if manufacturer provides the circuitry. Please note that flashrom and uniflash support different cards and you should check which utility supports the programmer hardware you own.&lt;br /&gt;
&lt;br /&gt;
Another tool which runs in linux is [http://sourceforge.net/projects/ctflasher/ ctflasher], but it is not maintained anymore and might not work with current Linux kernels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== BIOS Savior RD1 =====&lt;br /&gt;
&lt;br /&gt;
[http://www.ioss.com.tw/web/English/RD1BIOSSavior.html BIOS Savior RD1]&lt;br /&gt;
&lt;br /&gt;
There are some posts about the BIOS Savior RD1 that suggest its integrated flash device is of low quality; it may take 10 or more flash programming attempts to get a good update to the RD1 flash device. As a result, the following steps have proven to be successful while using the RD1:&lt;br /&gt;
&lt;br /&gt;
* Step 1 - While the system is powered down, remove the original BIOS device from the mainboard and insert it into the RD1's socket.&lt;br /&gt;
&lt;br /&gt;
* Step 2 - Insert the RD1 into the mainboard's flash BIOS socket.&lt;br /&gt;
&lt;br /&gt;
* Step 3 - Boot the system with the RD1 set to boot from the original flash device from the mainboard.&lt;br /&gt;
&lt;br /&gt;
* Step 4 - Program the original BIOS image (or other known good BIOS image) into the RD1's integrated flash device. Do this as many times as needed until the device is properly programmed and the system boots corectly from the RD1's integrated flash device. Be sure to check the settings on the RD1 so that the proper flash device is now being programmed. If the RD1 is not set correctly the working BIOS image will be erased and the system will not boot!&lt;br /&gt;
&lt;br /&gt;
* Step 5 - Program the test BIOS image (usually coreboot images are among this group) into the original flash device from the mainboard. The original BIOS device usually programs OK on the first attempt. Be sure to check the settings again on the RD1 so that the proper flash device is being programmed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The RD1 has been used in the above fashion with great success on the Tyan S2885 mainboard. Unfortunately the RD1 does not work on the nVidia CK8-04 CRB mainboard. The CK8-04 CRB may require a flash device that the RD1 does not support. &lt;br /&gt;
&lt;br /&gt;
The RD1 has worked well as a &amp;quot;do nothing&amp;quot; adapter that allows swapping the BIOS flash device between a flash burner and a mainboard without any wear to the mainboard's BIOS socket.&lt;br /&gt;
&lt;br /&gt;
=== Can I do any serious damage mucking around with this stuff? ===&lt;br /&gt;
&lt;br /&gt;
Any time you stick your hand into an open machine while the power is on, you're risking life and limb. That said, there are also some other not-so-nice things that can happen if you mess up (not that we would know). &lt;br /&gt;
&lt;br /&gt;
* Incorrect insertion of the flash (1 casualty) &lt;br /&gt;
* Incorrect jumper settings (1 casualty) &lt;br /&gt;
* Aggressive and/or inappropriate use of metal objects such as screwdrivers (2 casualties) &lt;br /&gt;
* Miscellaneous miswirings and mishandlings (3+ casualties)&lt;br /&gt;
&lt;br /&gt;
remember: make sure your important data is on a disconnected drive while you experiment.&lt;br /&gt;
&lt;br /&gt;
=== A note on electrostatic discharge (ESD) and ESD protection (thanks to Bari Ari) ===&lt;br /&gt;
&lt;br /&gt;
ESD can damage disk drives, boards, DoC's and other parts. The majority of the time, ESD events cause the component to degrade, but not fail testing procedures, resulting in failure at a later date. Because components do not fail immediately, technicians often underestimate the cost of not using ESD prevention measures. Provide at minimum some ESD protection by wearing an antistatic wrist strap attached to the chassis ground on your system when handling parts. &lt;br /&gt;
&lt;br /&gt;
Always handle boards carefully. They can be extremely sensitive to ESD. Hold boards only by their edges. After removing a board from its protective wrapper or from the system, place it component side up on a grounded, static free surface. Use a conductive foam pad if available. Do not slide the board over any surface. &lt;br /&gt;
&lt;br /&gt;
To further reduce the chances of ESD, you should create an ESD safe workstation that includes at minimum: &lt;br /&gt;
&lt;br /&gt;
* Conductive rubber mat, with a lead wire that can be connected to a metal surface to create a ground. &lt;br /&gt;
&lt;br /&gt;
* ESD wrist strap, which has a resistor inside the strap and a lead wire that can be connected to a metal surface as a ground. The grounding wire on the wrist strap should have between 1 and 10 Megaohms of resistance. The resistor should protect you in case you come in contact with a voltage source. If the resistor is bad or not included, the wrist strap is useless. An accidental shock could be serious and even deadly! &lt;br /&gt;
&lt;br /&gt;
* Table or workspace that is clean, clear of dust, and away from electrical machinery or other equipment that generates electrical currents. &lt;br /&gt;
&lt;br /&gt;
The idea is to ensure that all components you are going to interact with have the same charge. By connecting everything to the computer case, you ensure that the components of the case, the chair, and your body all have the same charge. If every object has the same charge, the electrons will not jump from one object to another minimizing the risk of ESD damage.&lt;br /&gt;
&lt;br /&gt;
=== What is a PIRQ table? ===&lt;br /&gt;
&lt;br /&gt;
There's a good description of the BIOS implementation of the PIRQ in the ''red PCI book'', and here's a [http://www.microsoft.com/whdc/archive/pciirq.mspx description of the $PIR data structure].&lt;br /&gt;
&lt;br /&gt;
coreboot saves the $PIR data structure between 0xf0000 &amp;amp; 0x100000. Search for $PIR and then save it before copying over the BIOS.&lt;br /&gt;
&lt;br /&gt;
See also the [http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv1/util/ADLO/pirq/README ADLO README] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I set up etherboot with coreboot? ===&lt;br /&gt;
&lt;br /&gt;
Note from Ron: I have edited this somewhat to remove Geode-specific items. &lt;br /&gt;
&lt;br /&gt;
 Christer Weinigel writes: &lt;br /&gt;
 To: rminnich@lanl.gov&lt;br /&gt;
 Cc: linuxbios@lanl.gov&lt;br /&gt;
 Subject: Re: LinuxBIOS + Etherboot HOWTO?&lt;br /&gt;
 &lt;br /&gt;
 I had some trouble using LinuxBIOS + etherboot... &lt;br /&gt;
 &lt;br /&gt;
 My bad, I messed up and used mkelfImage-1.6 that I got from ftp.lnxi.com, when I realized that I ought to use the one from freebios/util everything started working. &lt;br /&gt;
 &lt;br /&gt;
 Here's what I did to get LinuxBIOS + Etherboot loading and booting a Linux kernel using TFTP. &lt;br /&gt;
 &lt;br /&gt;
   /Christer &lt;br /&gt;
 &lt;br /&gt;
 Get etherboot-5.0 from the CVS tree on etherboot.sourceforge.net. &lt;br /&gt;
 &lt;br /&gt;
 Modify etherboot-5.0/src/Config, comment out: &lt;br /&gt;
 &lt;br /&gt;
    # BIOS select don't change unless you know what you are doing&lt;br /&gt;
    #CFLAGS32+=     -DPCBIOS&lt;br /&gt;
 &lt;br /&gt;
 and uncomment the following: &lt;br /&gt;
 &lt;br /&gt;
    # Options to make a version of Etherboot that will work under linuxBIOS.&lt;br /&gt;
    CFLAGS32+= -DLINUXBIOS -DCONFIG_TSC_CURRTICKS  -DCONSOLE_SERIAL \&lt;br /&gt;
               -DCOMCONSOLE=0x3f8 -DCOMPRESERVE -DCONFIG_PCI_DIRECT -DELF_IMAGE &lt;br /&gt;
 &lt;br /&gt;
 Compile Etherboot to make an elf file for your ethernet card: &lt;br /&gt;
 &lt;br /&gt;
     make bin32/natsemi.elf&lt;br /&gt;
 &lt;br /&gt;
 Compile and install mkelfImage from freebios/util/mkelfImage. &lt;br /&gt;
 &lt;br /&gt;
 Create a bootimage to put on your TFTP server: &lt;br /&gt;
 &lt;br /&gt;
    mkelfImage --command-line=&amp;quot;root=/dev/hda2 console=ttyS0,38400&amp;quot; \&lt;br /&gt;
               --kernel vmlinux -o /tftpboot/kernel&lt;br /&gt;
 &lt;br /&gt;
 Finally, make sure that your BOOT/DCHP server is answering and that the TFTP server is active. &lt;br /&gt;
 &lt;br /&gt;
 Tell LinuxBIOS to boot an elf Image, and tell LinuxBIOS where it is: &lt;br /&gt;
 &lt;br /&gt;
    option USE_ELF_BOOT=1&lt;br /&gt;
 &lt;br /&gt;
 I have placed natsemi.elf in the first 64k of my BIOS flash chip, and LinuxBIOS in the second 64k. &lt;br /&gt;
 &lt;br /&gt;
    insmod bios.o&lt;br /&gt;
    dd if=natsemi.elf of=/dev/bios bs=64k&lt;br /&gt;
    dd if=linuxbios.rom of=/dev/bios bs=64k seek=1&lt;br /&gt;
 &lt;br /&gt;
 Finally boot LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
=== How do I set GEODE graphics and video? ===&lt;br /&gt;
&lt;br /&gt;
There is no Geode graphics support in coreboot. Install the Geode framebuffer driver for console graphics and the X driver for X support on your Geode Linux image. Current kernel and X distributions contain the required drivers. Until the driver loads there is only serial console output.&lt;br /&gt;
&lt;br /&gt;
Driver source:&lt;br /&gt;
&lt;br /&gt;
[http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.23.y.git;a=tree;f=drivers/video/geode;hb=3968cb49ab01588cbf6896951780a1e411a0ec38 2.6.23 kernel framebuffer driver]&lt;br /&gt;
&lt;br /&gt;
[http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-amd.git;a=summary X.org driver]&lt;br /&gt;
&lt;br /&gt;
=== How do I set up testbios? ===&lt;br /&gt;
&lt;br /&gt;
Please read the [http://linuxbios.org/FAQ/Obsolete#How_do_I_set_up_testbios.3F testbios FAQ].&lt;br /&gt;
&lt;br /&gt;
=== /usr/sbin/iasl: Command not found ===&lt;br /&gt;
&lt;br /&gt;
If you see this error, you have to install ''iasl'', Intel's ASL Optimizing Compiler:&lt;br /&gt;
&lt;br /&gt;
* '''SUSE''' ships it in the '''pmtools''' package ([ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/x86_64/pmtools-20050823-3.x86_64.rpm pmtools-20050823-3.x86_64.rpm], [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/i586/pmtools-20050823-3.i586.rpm pmtools-20050823-3.i586.rpm]). If you want to run rpmbuild --rebuild: [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/src/pmtools-20050823-3.src.rpm pmtools-20050823-3.src.rpm].&lt;br /&gt;
* '''Debian''' ships it in the '''iasl''' package (''apt-get install iasl'').&lt;br /&gt;
* You can also download the [http://acpica.org/downloads/unix_source_code.php latest version of the source code].&lt;br /&gt;
&lt;br /&gt;
=== How can I write to POSTcard port 0x80 from userspace? ===&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxbios.org/pipermail/linuxbios/2006-November/017012.html This] might be useful in some situations, and to output a number to a POST card:&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\001&amp;quot; | dd bs=1 seek=128 of=/dev/port&lt;br /&gt;
&lt;br /&gt;
In DOS (not Windows XP) use:&lt;br /&gt;
 mov al, 42; out al, 80h&lt;br /&gt;
To output 42 type&lt;br /&gt;
 o 80 42&lt;br /&gt;
in DOS debug.exe.&lt;br /&gt;
&lt;br /&gt;
=== Is coreboot applying x86 microcode patches? ===&lt;br /&gt;
&lt;br /&gt;
And if yes, can they be modified?&lt;br /&gt;
&lt;br /&gt;
Answer: Yes, coreboot is applying microcode patches on AMD and Intel CPUs. However, this field is little documented, so coreboot uses only unmodified, vendor-provided microcode. Few people think, that system design can seriously be improved by modifications here ( µCode patches mostly disable erraneous functions and opcodes).&lt;br /&gt;
&lt;br /&gt;
=== How can I retrieve a good video BIOS? ===&lt;br /&gt;
&lt;br /&gt;
Note: If you are following these instructions to build coreboot for your motherboard, this is only necessary if you have a motherboard with an embedded VGA card. If your VGA is a PCI / PCI-Express add-on card, coreboot will find and run the ROM by itself.&lt;br /&gt;
&lt;br /&gt;
Anton Borisov has released a number of tools under the GPL (v2) to extract the VGA BIOS from the BIOS ROM images provided by the supplier of your motherboard.&lt;br /&gt;
&lt;br /&gt;
You can download them here:&lt;br /&gt;
&lt;br /&gt;
* Award BIOS:&lt;br /&gt;
** http://kaos.ru/biosgfx/download/awardeco-0.2.src.tar.gz&lt;br /&gt;
** http://ftp.debian.org/debian/pool/main/a/awardeco/awardeco_0.2.orig.tar.gz&lt;br /&gt;
* AMI BIOS:&lt;br /&gt;
** http://www.kaos.ru/biosgfx/download/AmiDeco_0.31e.src.tar.gz&lt;br /&gt;
** http://ftp.debian.org/debian/pool/main/a/amideco/amideco_0.31e.orig.tar.gz&lt;br /&gt;
* Phoenix BIOS:&lt;br /&gt;
** http://www.kaos.ru/biosgfx/download/PhoenixDeco_0.33.src.tar.gz&lt;br /&gt;
** http://ftp.debian.org/debian/pool/main/p/phnxdeco/phnxdeco_0.33.orig.tar.gz&lt;br /&gt;
* Insyde BIOS:&lt;br /&gt;
** http://www.kaos.ru/biosgfx/download/InsyDeco_0.3.src.tar.gz&lt;br /&gt;
** (no alternative download location available, sorry)&lt;br /&gt;
&lt;br /&gt;
See the [[Tyan S2881|Tyan S2881 Build Tutorial]] for more information on how to use these tools.&lt;br /&gt;
&lt;br /&gt;
== Can I put coreboot into a PCI expansion ROM? ==&lt;br /&gt;
&lt;br /&gt;
Short answer: NO.&lt;br /&gt;
&lt;br /&gt;
Long answer:&lt;br /&gt;
&lt;br /&gt;
There's little use in doing that, as a lots of initialization has already been done by the proprietary BIOS (or coreboot) by the time the PCI expansion ROM is executed. It won't be possible to run coreboot from a PCI expansion ROM after a proprietary BIOS has already been running for instance.&lt;br /&gt;
&lt;br /&gt;
Note: The Intel ICH7 southbridge seems to allows booting from PCI ROMs ('''not''' arbitrary PCI expansion ROMs as used on graphics cards, SCSI controllers, etc.) -- maybe this should be investigated in order to check if or how it might be useful.&lt;br /&gt;
&lt;br /&gt;
== Obsolete FAQ items ==&lt;br /&gt;
&lt;br /&gt;
Please see [[FAQ/Obsolete]] for (probably) obsolete FAQ items.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/FAQ"/>
				<updated>2010-05-20T08:07:13Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Out of mainboard BIOS (re)flash */ More info, point to Paraflasher and flashrom&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== What is coreboot? ===&lt;br /&gt;
&lt;br /&gt;
'''coreboot''' (formerly known as LinuxBIOS) is a Free Software project aimed at replacing the proprietary BIOS (firmware) you can find in most of today's computers.&lt;br /&gt;
&lt;br /&gt;
It performs just a little bit of hardware initialization and then executes a so-called [[Payloads|payload]].&lt;br /&gt;
&lt;br /&gt;
Some of the many possible payloads are: a [[Linux]] kernel, [[FILO]] (a GRUB-like bootloader for booting from disk), [[GRUB2]], [http://www.openbios.org/Open_Firmware Open Firmware], [[Etherboot]]/[[GPXE]], [[SeaBIOS]] (for booting Windows XP, Windows Vista, Windows 7, NetBSD and Linux), and [[Payloads|many others]].&lt;br /&gt;
&lt;br /&gt;
The initial motivation for the project was maintenance of large clusters, but unsurprisingly, interest and contributions have come from people with varying backgrounds. The latest version of coreboot can be used in a wide variety of scenarios including clusters, embedded systems, desktop PCs, servers, and more.&lt;br /&gt;
&lt;br /&gt;
For more information, see [[History]].&lt;br /&gt;
&lt;br /&gt;
=== Why do we need coreboot? ===&lt;br /&gt;
&lt;br /&gt;
==== Why do we need coreboot for cluster maintainance? ====&lt;br /&gt;
&lt;br /&gt;
Current PCs used as cluster nodes depend on a vendor-supplied BIOS for booting. The BIOS in turn relies on inherently unreliable devices such as floppy disks and hard drives to boot the operating system. In addition, current BIOS software is unable to accommodate non-standard hardware making it difficult to support experimental work. The BIOS is slow and often erroneous and redundant and, most importantly, maintenance is a nightmare. Imagine walking around with a keyboard and monitor to every one of the 128 nodes in a cluster to change one BIOS setting. &lt;br /&gt;
&lt;br /&gt;
coreboot with Linux as a [[Payloads|payload]] (other payloads are possible!) gunzip's the Linux kernel straight out of NVRAM and essentially requires no moving parts other than the CPU fan. It does a minimal amount of hardware initialization before jumping to the kernel start and lets Linux do the rest. As a result, it is much faster (current record: 3 seconds), which has sparked interest in the consumer electronics community as well. Moreover, updates can be performed over the network. &lt;br /&gt;
&lt;br /&gt;
Using a real operating system to boot another operating system provides much greater flexibility than using a simple netboot program or the BIOS. Because Linux is the boot mechanism, it can boot over standard '''Ethernet''' or over other interconnects such as '''Myrinet''', '''Quadrics''', or '''SCI'''. It can use SSH connections to load the kernel, or it can use the '''InterMezzo caching file system''' or traditional '''NFS'''. Cluster nodes can be as simple as they need to be &amp;amp;mdash; perhaps as simple as a CPU and memory, no disk, no floppy, and no file system. The nodes will be much less autonomous thus making them easier to maintain.&lt;br /&gt;
&lt;br /&gt;
==== Why do we need coreboot for other purposes? ====&lt;br /&gt;
&lt;br /&gt;
Some aspects of '''DRM''' are not travelling well with the idea of a free computer system. As many computer magazines already pointed out, there may be future restrictions imposed by BIOSes, that a customer is little aware of before purchase and might not harmonize with the idea of freedom and/or security in some cases.&lt;br /&gt;
&lt;br /&gt;
=== Who is working on coreboot? ===&lt;br /&gt;
&lt;br /&gt;
The coreboot project was started in the winter of 1999 in the '''Advanced Computing Laboratory at Los Alamos National Laboratory (LANL)''' by [[User:Rminnich|Ron Minnich]]. Two undergraduate students, James Hendricks and Dale Webster spent their winter vacation putting together the proof of concept implementation. &lt;br /&gt;
&lt;br /&gt;
Since then, a [[Contributors|long list of people have contributed]] both in discussions and actual code. Please don't be shy and let us know if you are missing from the list. It's not a purposeful omission, just an unfortunate mistake.&lt;br /&gt;
&lt;br /&gt;
=== Who is funding coreboot? ===&lt;br /&gt;
&lt;br /&gt;
The coreboot project was initially funded by the Los Alamos Computer Science Institute and the Department of Energy's Office of Science.&lt;br /&gt;
&lt;br /&gt;
See also the [[Sponsors|list of coreboot sponsors]].&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
=== Will coreboot work on my machine? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Motherboards]] page for which mainboards are supported, and also the list of [[Supported Chipsets and Devices]]. See the [[Products]] page for a list of vendors selling products running coreboot.&lt;br /&gt;
&lt;br /&gt;
If the above sources don't help, please send the following to the [[Mailinglist|mailing list]]:&lt;br /&gt;
&lt;br /&gt;
* Step 1: A very brief description of your system: board vendor, board name, CPU, northbridge, southbridge, and optionally other important details.&lt;br /&gt;
* Step 2: Linux &amp;quot;'''lspci -tvnn'''&amp;quot; output for your system, generated by booting Linux via the original BIOS and runnning lspci.&lt;br /&gt;
* Step 3: Super I/O chip on the mainboard (report the model numbers on the actual chip, for example &amp;quot;Winbond W83627HF&amp;quot; and/or run &amp;quot;'''[[superiotool]] -dV'''&amp;quot;).&lt;br /&gt;
* Step 4: Type of BIOS device (see the question &amp;quot;How do I identify the BIOS chip on my mainboard?&amp;quot; below). Please send us the output of &amp;quot;'''[[flashrom]] -V'''&amp;quot;&lt;br /&gt;
* Step 5: URL to the mainboard specifications page (optional).&lt;br /&gt;
* Step 6: Any other relevant information you can provide.&lt;br /&gt;
&lt;br /&gt;
If you can't do step 1 above, please describe (as best you can) the specific CPU chip and the chipset used on the mainboard.&lt;br /&gt;
&lt;br /&gt;
Usually in less than a day, someone will respond on the coreboot mailing list saying your mainboard is supported in the main coreboot source tree, it is currently in development, it is not yet supported or the manufacturer will not release information needed to provide coreboot support. In the latter case, please let the manufacturer know that you want coreboot support and his failure to release chipset information is making that very difficult.&lt;br /&gt;
&lt;br /&gt;
=== What commercial products use coreboot? ===&lt;br /&gt;
&lt;br /&gt;
See the [[products]] page.&lt;br /&gt;
&lt;br /&gt;
=== Which different operating systems will coreboot boot? ===&lt;br /&gt;
&lt;br /&gt;
coreboot should support almost any modern operating system. To support operating systems that use [http://en.wikipedia.org/wiki/BIOS_interrupt_call BIOS calls], [[SeaBIOS]] is mandantory, as coreboot doesn't provide these by itself:&lt;br /&gt;
&lt;br /&gt;
* Linux&lt;br /&gt;
* Plan 9&lt;br /&gt;
* FreeDOS (via [[SeaBIOS]])&lt;br /&gt;
* Windows 2000, XP, Vista, 7(RC) (via [[SeaBIOS]], the boot loader requires BIOS)&lt;br /&gt;
* NetBSD, MirBSD (via [[SeaBIOS]] as at least the boot loader requires BIOS)&lt;br /&gt;
&lt;br /&gt;
coreboot does '''not''' natively support:&lt;br /&gt;
&lt;br /&gt;
* We have tested some of the BSD OSes and have seen, that FreeBSD for example makes BIOS calls, which is not supported by coreboot. Possibly with help of [[SeaBIOS]], it may be possible to boot FreeBSD like it is now, but the right thing to do, is to remove FreeBSD's dependence on BIOS calls.&lt;br /&gt;
* Windows versions older than Windows 2000, as they make BIOS calls ([[SeaBIOS]] might help)&lt;br /&gt;
* [http://www.menuetos.net/ MenuetOS], as it makes BIOS calls ([[SeaBIOS]] might help)&lt;br /&gt;
&lt;br /&gt;
Please feel free to test booting any of the above using [[SeaBIOS]] and report to the coreboot mailing list.&lt;br /&gt;
&lt;br /&gt;
=== What chipsets and Super I/O devices are supported? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Supported Chipsets and Devices]] page.&lt;br /&gt;
&lt;br /&gt;
=== Where is the mailing list archived? ===&lt;br /&gt;
&lt;br /&gt;
See [[Mailinglist]].&lt;br /&gt;
&lt;br /&gt;
=== Is there a coreboot IRC channel? ===&lt;br /&gt;
&lt;br /&gt;
Yes, see [[IRC]].&lt;br /&gt;
&lt;br /&gt;
=== Where do I get the code? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Download coreboot|download page]].&lt;br /&gt;
&lt;br /&gt;
=== How do I build coreboot? ===&lt;br /&gt;
&lt;br /&gt;
See the [[documentation]].&lt;br /&gt;
&lt;br /&gt;
=== How can I help with coreboot? ===&lt;br /&gt;
&lt;br /&gt;
There are many ways how you can help us:&lt;br /&gt;
&lt;br /&gt;
* Promote coreboot, tell all your friends about it, blog about it etc.&lt;br /&gt;
* Test coreboot, [http://tracker.coreboot.org/trac/coreboot/newticket report] any bugs you find, or let us know about any suggestions for improvements you have.&lt;br /&gt;
* Help us to make the list of [[Supported Motherboards]] and the list of [[Supported Chipsets and Devices]] bigger by contributing code. Please also read the [[Development Guidelines]] in that case.&lt;br /&gt;
* If you have a mainboard with USB2 (EHCI-controller) you can look if it supports the [[EHCI Debug Port]] and mail the information to us, if it is not already there.&lt;br /&gt;
** If you are familiar with microcontroller development, you might be able to build a debugging tool for the [[EHCI Debug Port]]. If you are successful, we like to hear about it.&lt;br /&gt;
* Test, if QNX or Solaris are able to boot on a mainboard with coreboot.&lt;br /&gt;
* Have a look at the [http://tracker.coreboot.org/trac/coreboot/report/1 list of open issues/bugs] and try to reproduce them or (preferrably) fix them.&lt;br /&gt;
* Contact [[User:Rminnich|Ron Minnich]] or [[User:Stepan|Stefan Reinauer]] for bigger projects related to coreboot.&lt;br /&gt;
* Contact us on the [[Mailinglist|mailing list]] if you have any further questions or suggestions.&lt;br /&gt;
&lt;br /&gt;
=== What do the abbreviations in this wiki stand for? ===&lt;br /&gt;
&lt;br /&gt;
See [[Glossary]].&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
=== Where can I buy BIOS chips (empty or pre-flashed)? ===&lt;br /&gt;
&lt;br /&gt;
When developing or simply trying out coreboot you always need a means to revert to your old BIOS in case something goes wrong. One way to do this is to get an extra BIOS chip (PLCC32, DIP32, DIP8, or other) and copy your original BIOS image onto that chip (using [[Flashrom]], for example). If you have a socketed BIOS (not soldered onto the mainboard), you can hot-swap the chips while your computer is running. &lt;br /&gt;
&lt;br /&gt;
You have several options to get spare BIOS chips:&lt;br /&gt;
* Most local or online electronics dealers carry some, for example:&lt;br /&gt;
** Germany:&lt;br /&gt;
*** http://www.bios-chip.com / http://www.bios-express.de (same company)&lt;br /&gt;
*** http://www.bios-fix.de&lt;br /&gt;
*** http://www.bios-chips.com&lt;br /&gt;
*** http://www.conrad.de&lt;br /&gt;
*** http://www.endrich.com/de/site.php/47385 (it's unknown whether they ship small quantities)&lt;br /&gt;
*** http://www.chip-service.de&lt;br /&gt;
*** http://www.cramertronic.de/index.php?cPath=37&lt;br /&gt;
*** http://www.neumueller.com/&lt;br /&gt;
** UK:&lt;br /&gt;
*** http://bios-repair.co.uk/&lt;br /&gt;
** US:&lt;br /&gt;
*** http://avnet.com&lt;br /&gt;
*** http://mouser.com&lt;br /&gt;
*** http://semiconductorstore.com/&lt;br /&gt;
* You can search eBay for BIOS chips (either empty ones or pre-flashed ones).&lt;br /&gt;
* You can rip out chips from old/broken mainboards and re-use them (you can check flea markets, eBay, etc. for cheap and/or broken mainboards).&lt;br /&gt;
&lt;br /&gt;
=== What kind of hardware tools do I need? ===&lt;br /&gt;
&lt;br /&gt;
See the [[Developer Manual#Required_hardware_and_software_tools_for_developers|hardware tools section]] of the [[Developer Manual|developer's manual]].&lt;br /&gt;
&lt;br /&gt;
=== How do I use a null-modem cable to get coreboot debugging output over a serial port? ===&lt;br /&gt;
&lt;br /&gt;
* First, you'll want to set up a terminal program, e.g. '''minicom''' correctly.&lt;br /&gt;
 $ minicom -s&lt;br /&gt;
  -&amp;gt; Serial port setup&lt;br /&gt;
  -&amp;gt; Press A and enter your COM device (ttyS0 or ttyS1 or ttyUSB0, depending on your COM port)&lt;br /&gt;
  -&amp;gt; Press E and choose &amp;quot;115200 8N1&amp;quot; (default)&lt;br /&gt;
  -&amp;gt; Disable Hardware and Software Flow Control (via F and G)&lt;br /&gt;
  -&amp;gt; Press enter to leave the menu&lt;br /&gt;
  -&amp;gt; Save setup as..&lt;br /&gt;
  -&amp;gt;   Enter &amp;quot;lb&amp;quot;&lt;br /&gt;
  -&amp;gt; Exit from minicom&lt;br /&gt;
* From now on, you can start minicom with the obove settings simply by typing:&lt;br /&gt;
 $ minicom -o lb&lt;br /&gt;
&lt;br /&gt;
=== What documentation do I need? ===&lt;br /&gt;
&lt;br /&gt;
As much documentation as you can possibly get your hands on.  At minimum, you will need the docs for the chipset.&lt;br /&gt;
	&lt;br /&gt;
There have been reports of people getting coreboot working by booting with the OEM BIOS. Then, they would read the static contents of the PCI config registers after boot. coreboot is then built to match the static contents read from the PCI config registers. &lt;br /&gt;
&lt;br /&gt;
The problem with this approach is that chipsets generally require dynamic vs static configuration values during their initialization. The configuration register contents will change from one stage of initialization to the next. Since the contents of the registers read is only the final state of the configuration registers, the chipset won't be properly initialized if these are the only configuration values used.&lt;br /&gt;
&lt;br /&gt;
Getting a mainboard up without chipset docs can be a very long and involved process.&lt;br /&gt;
&lt;br /&gt;
=== What if my chipset docs are covered by an NDA? ===&lt;br /&gt;
&lt;br /&gt;
If the documentation for your chipset covered by a NDA with no source release agreement, you won't be able to release your code back to the coreboot project in general, or you will violate the GPL.&lt;br /&gt;
Many vendors accept releasing the source code, produced after reading such specs, while they don't allow the specs themselves to be revealed. Also, you can offer them the opportunity to review your code, before releasing it to the public.&lt;br /&gt;
&lt;br /&gt;
=== Why is the code so complicated and what can I do to make it easier? ===&lt;br /&gt;
&lt;br /&gt;
The reason is the complexity of the problem. We support a lot of hardware, and a given chip on a given board will most likely not be configured quite the same as the same chip on some other board. To help make code navigation easier, pick a target and build that target. Then, in the build directory, type make tags or make etags to get your favorite tags file. &lt;br /&gt;
&lt;br /&gt;
=== How do I contribute my changes? ===&lt;br /&gt;
&lt;br /&gt;
Please carefully read the [http://linuxbios.org/Development_Guidelines Development Guidelines] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I identify the BIOS chip on my mainboard? ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Flashrom#ROM_chip_overview]].&lt;br /&gt;
&lt;br /&gt;
=== How do I (re-)flash the BIOS? ===&lt;br /&gt;
&lt;br /&gt;
==== Out of mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
If the BIOS chip is socketed, it can be removed and flashed in a rom/flash burner and quickly re-installed.&lt;br /&gt;
&lt;br /&gt;
You have the option of using the [http://www.flashrom.org/Supported_hardware external programmers supported by flashrom] or some other external programmer which comes with its own software. Depending on the flash chip type, various options exist. For older parallel flash chips, some of these burners cost $700 and more plus they complete a flash in 30 seconds (like the [http://www.conitec.net/english/galep5.php Conitec Galep V]), but if you are willing to wait 5 minutes for a flash and manually set DIP switches, the Enhanced Willem Universal Programmer will do the job for only $40-60 USD.  There are several models of the Willem Programmer, each supporting many chips, but not all, so be sure to get one that supports your BIOS chip. You could also use the [[Paraflasher]] which is a really low-cost programmer with parts sold for $20 or less. The [[flashrom]] wiki has a list of hardware you can use for programming.&lt;br /&gt;
&lt;br /&gt;
If your chip is PLCC, you will also need the push pin trick or a PLCC chip extractor/puller or just thread nylon string under the PLCC chip from corner to corner and yank up it straight up. Read more about chip extraction in the [[Developer_Manual/Tools#Chip_removal_tools|developer manual]].&lt;br /&gt;
&lt;br /&gt;
==== Inside mainboard BIOS (re)flash ====&lt;br /&gt;
&lt;br /&gt;
Download the appropriate flash update utility. Build the coreboot image as explained above and use the flash update utility to update the BIOS. Be warned that not all update utilities allow you to load your own BIOS image. NOTE: Many vendor specific flash utilities refuse to write &amp;quot;foreign&amp;quot; BIOS images, such as coreboot.&lt;br /&gt;
&lt;br /&gt;
Therefore we suggest that you use the universal flash utility called [http://www.flashrom.org/ flashrom] which was developed and improved by many coreboot developers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 bash$ sudo ./flashrom -V&lt;br /&gt;
 Calibrating delay loop... Setting up microsecond timing loop&lt;br /&gt;
 216M loops per second&lt;br /&gt;
 ok&lt;br /&gt;
 Found canidate at: 00000530-00000bc4&lt;br /&gt;
 Found LinuxBIOS table at: 00000530&lt;br /&gt;
 lb_table found at address 0xb7e1c530&lt;br /&gt;
 LinuxBIOS header(24) checksum: 404a table(1684) checksum: 2766 entries: 14&lt;br /&gt;
 vendor id: via part id: epia-m&lt;br /&gt;
 Enabling flash write on VT8235...OK&lt;br /&gt;
 Trying Am29F040B, 512 KB&lt;br /&gt;
 probe_29f040b: id1 0x20, id2 0xe2&lt;br /&gt;
 Trying ST29F040B, 512 KB&lt;br /&gt;
 probe_29f040b: id1 0x20, id2 0xe2&lt;br /&gt;
 ST29F040B found at physical address: 0xfff80000&lt;br /&gt;
 Flash part is ST29F040B&lt;br /&gt;
 OK, only ENABLING flash write, but NOT FLASHING.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively you could either use the DOS [http://www.rainbow-software.org/uniflash/ uniflash] utility, or use its source code, which is also available for download from the uniflash site (in Turbo Pascal 7) as a reference for adding support for your flash chip to &amp;quot;flashrom&amp;quot;.  Uniflash supports a lot of different flash chips, and chip interfaces. It has untested support for PCI expansion card flash BIOS, such as on RTL8139 Ethernet card (32pin DIL), which allows flashing on the NIC if manufacturer provides the circuitry.&lt;br /&gt;
&lt;br /&gt;
Another tool which runs in linux is [http://sourceforge.net/projects/ctflasher/ flasher].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== BIOS Savior RD1 =====&lt;br /&gt;
&lt;br /&gt;
[http://www.ioss.com.tw/web/English/RD1BIOSSavior.html BIOS Savior RD1]&lt;br /&gt;
&lt;br /&gt;
There are some posts about the BIOS Savior RD1 that suggest its integrated flash device is of low quality; it may take 10 or more flash programming attempts to get a good update to the RD1 flash device. As a result, the following steps have proven to be successful while using the RD1:&lt;br /&gt;
&lt;br /&gt;
* Step 1 - While the system is powered down, remove the original BIOS device from the mainboard and insert it into the RD1's socket.&lt;br /&gt;
&lt;br /&gt;
* Step 2 - Insert the RD1 into the mainboard's flash BIOS socket.&lt;br /&gt;
&lt;br /&gt;
* Step 3 - Boot the system with the RD1 set to boot from the original flash device from the mainboard.&lt;br /&gt;
&lt;br /&gt;
* Step 4 - Program the original BIOS image (or other known good BIOS image) into the RD1's integrated flash device. Do this as many times as needed until the device is properly programmed and the system boots corectly from the RD1's integrated flash device. Be sure to check the settings on the RD1 so that the proper flash device is now being programmed. If the RD1 is not set correctly the working BIOS image will be erased and the system will not boot!&lt;br /&gt;
&lt;br /&gt;
* Step 5 - Program the test BIOS image (usually coreboot images are among this group) into the original flash device from the mainboard. The original BIOS device usually programs OK on the first attempt. Be sure to check the settings again on the RD1 so that the proper flash device is being programmed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The RD1 has been used in the above fashion with great success on the Tyan S2885 mainboard. Unfortunately the RD1 does not work on the nVidia CK8-04 CRB mainboard. The CK8-04 CRB may require a flash device that the RD1 does not support. &lt;br /&gt;
&lt;br /&gt;
The RD1 has worked well as a &amp;quot;do nothing&amp;quot; adapter that allows swapping the BIOS flash device between a flash burner and a mainboard without any wear to the mainboard's BIOS socket.&lt;br /&gt;
&lt;br /&gt;
=== Can I do any serious damage mucking around with this stuff? ===&lt;br /&gt;
&lt;br /&gt;
Any time you stick your hand into an open machine while the power is on, you're risking life and limb. That said, there are also some other not-so-nice things that can happen if you mess up (not that we would know). &lt;br /&gt;
&lt;br /&gt;
* Incorrect insertion of the flash (1 casualty) &lt;br /&gt;
* Incorrect jumper settings (1 casualty) &lt;br /&gt;
* Aggressive and/or inappropriate use of metal objects such as screwdrivers (2 casualties) &lt;br /&gt;
* Miscellaneous miswirings and mishandlings (3+ casualties)&lt;br /&gt;
&lt;br /&gt;
remember: make sure your important data is on a disconnected drive while you experiment.&lt;br /&gt;
&lt;br /&gt;
=== A note on electrostatic discharge (ESD) and ESD protection (thanks to Bari Ari) ===&lt;br /&gt;
&lt;br /&gt;
ESD can damage disk drives, boards, DoC's and other parts. The majority of the time, ESD events cause the component to degrade, but not fail testing procedures, resulting in failure at a later date. Because components do not fail immediately, technicians often underestimate the cost of not using ESD prevention measures. Provide at minimum some ESD protection by wearing an antistatic wrist strap attached to the chassis ground on your system when handling parts. &lt;br /&gt;
&lt;br /&gt;
Always handle boards carefully. They can be extremely sensitive to ESD. Hold boards only by their edges. After removing a board from its protective wrapper or from the system, place it component side up on a grounded, static free surface. Use a conductive foam pad if available. Do not slide the board over any surface. &lt;br /&gt;
&lt;br /&gt;
To further reduce the chances of ESD, you should create an ESD safe workstation that includes at minimum: &lt;br /&gt;
&lt;br /&gt;
* Conductive rubber mat, with a lead wire that can be connected to a metal surface to create a ground. &lt;br /&gt;
&lt;br /&gt;
* ESD wrist strap, which has a resistor inside the strap and a lead wire that can be connected to a metal surface as a ground. The grounding wire on the wrist strap should have between 1 and 10 Megaohms of resistance. The resistor should protect you in case you come in contact with a voltage source. If the resistor is bad or not included, the wrist strap is useless. An accidental shock could be serious and even deadly! &lt;br /&gt;
&lt;br /&gt;
* Table or workspace that is clean, clear of dust, and away from electrical machinery or other equipment that generates electrical currents. &lt;br /&gt;
&lt;br /&gt;
The idea is to ensure that all components you are going to interact with have the same charge. By connecting everything to the computer case, you ensure that the components of the case, the chair, and your body all have the same charge. If every object has the same charge, the electrons will not jump from one object to another minimizing the risk of ESD damage.&lt;br /&gt;
&lt;br /&gt;
=== What is a PIRQ table? ===&lt;br /&gt;
&lt;br /&gt;
There's a good description of the BIOS implementation of the PIRQ in the ''red PCI book'', and here's a [http://www.microsoft.com/whdc/archive/pciirq.mspx description of the $PIR data structure].&lt;br /&gt;
&lt;br /&gt;
coreboot saves the $PIR data structure between 0xf0000 &amp;amp; 0x100000. Search for $PIR and then save it before copying over the BIOS.&lt;br /&gt;
&lt;br /&gt;
See also the [http://tracker.linuxbios.org/trac/LinuxBIOS/browser/trunk/LinuxBIOSv1/util/ADLO/pirq/README ADLO README] for more information.&lt;br /&gt;
&lt;br /&gt;
=== How do I set up etherboot with coreboot? ===&lt;br /&gt;
&lt;br /&gt;
Note from Ron: I have edited this somewhat to remove Geode-specific items. &lt;br /&gt;
&lt;br /&gt;
 Christer Weinigel writes: &lt;br /&gt;
 To: rminnich@lanl.gov&lt;br /&gt;
 Cc: linuxbios@lanl.gov&lt;br /&gt;
 Subject: Re: LinuxBIOS + Etherboot HOWTO?&lt;br /&gt;
 &lt;br /&gt;
 I had some trouble using LinuxBIOS + etherboot... &lt;br /&gt;
 &lt;br /&gt;
 My bad, I messed up and used mkelfImage-1.6 that I got from ftp.lnxi.com, when I realized that I ought to use the one from freebios/util everything started working. &lt;br /&gt;
 &lt;br /&gt;
 Here's what I did to get LinuxBIOS + Etherboot loading and booting a Linux kernel using TFTP. &lt;br /&gt;
 &lt;br /&gt;
   /Christer &lt;br /&gt;
 &lt;br /&gt;
 Get etherboot-5.0 from the CVS tree on etherboot.sourceforge.net. &lt;br /&gt;
 &lt;br /&gt;
 Modify etherboot-5.0/src/Config, comment out: &lt;br /&gt;
 &lt;br /&gt;
    # BIOS select don't change unless you know what you are doing&lt;br /&gt;
    #CFLAGS32+=     -DPCBIOS&lt;br /&gt;
 &lt;br /&gt;
 and uncomment the following: &lt;br /&gt;
 &lt;br /&gt;
    # Options to make a version of Etherboot that will work under linuxBIOS.&lt;br /&gt;
    CFLAGS32+= -DLINUXBIOS -DCONFIG_TSC_CURRTICKS  -DCONSOLE_SERIAL \&lt;br /&gt;
               -DCOMCONSOLE=0x3f8 -DCOMPRESERVE -DCONFIG_PCI_DIRECT -DELF_IMAGE &lt;br /&gt;
 &lt;br /&gt;
 Compile Etherboot to make an elf file for your ethernet card: &lt;br /&gt;
 &lt;br /&gt;
     make bin32/natsemi.elf&lt;br /&gt;
 &lt;br /&gt;
 Compile and install mkelfImage from freebios/util/mkelfImage. &lt;br /&gt;
 &lt;br /&gt;
 Create a bootimage to put on your TFTP server: &lt;br /&gt;
 &lt;br /&gt;
    mkelfImage --command-line=&amp;quot;root=/dev/hda2 console=ttyS0,38400&amp;quot; \&lt;br /&gt;
               --kernel vmlinux -o /tftpboot/kernel&lt;br /&gt;
 &lt;br /&gt;
 Finally, make sure that your BOOT/DCHP server is answering and that the TFTP server is active. &lt;br /&gt;
 &lt;br /&gt;
 Tell LinuxBIOS to boot an elf Image, and tell LinuxBIOS where it is: &lt;br /&gt;
 &lt;br /&gt;
    option USE_ELF_BOOT=1&lt;br /&gt;
 &lt;br /&gt;
 I have placed natsemi.elf in the first 64k of my BIOS flash chip, and LinuxBIOS in the second 64k. &lt;br /&gt;
 &lt;br /&gt;
    insmod bios.o&lt;br /&gt;
    dd if=natsemi.elf of=/dev/bios bs=64k&lt;br /&gt;
    dd if=linuxbios.rom of=/dev/bios bs=64k seek=1&lt;br /&gt;
 &lt;br /&gt;
 Finally boot LinuxBIOS.&lt;br /&gt;
&lt;br /&gt;
=== How do I set GEODE graphics and video? ===&lt;br /&gt;
&lt;br /&gt;
There is no Geode graphics support in coreboot. Install the Geode framebuffer driver for console graphics and the X driver for X support on your Geode Linux image. Current kernel and X distributions contain the required drivers. Until the driver loads there is only serial console output.&lt;br /&gt;
&lt;br /&gt;
Driver source:&lt;br /&gt;
&lt;br /&gt;
[http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.23.y.git;a=tree;f=drivers/video/geode;hb=3968cb49ab01588cbf6896951780a1e411a0ec38 2.6.23 kernel framebuffer driver]&lt;br /&gt;
&lt;br /&gt;
[http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-amd.git;a=summary X.org driver]&lt;br /&gt;
&lt;br /&gt;
=== How do I set up testbios? ===&lt;br /&gt;
&lt;br /&gt;
Please read the [http://linuxbios.org/FAQ/Obsolete#How_do_I_set_up_testbios.3F testbios FAQ].&lt;br /&gt;
&lt;br /&gt;
=== /usr/sbin/iasl: Command not found ===&lt;br /&gt;
&lt;br /&gt;
If you see this error, you have to install ''iasl'', Intel's ASL Optimizing Compiler:&lt;br /&gt;
&lt;br /&gt;
* '''SUSE''' ships it in the '''pmtools''' package ([ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/x86_64/pmtools-20050823-3.x86_64.rpm pmtools-20050823-3.x86_64.rpm], [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/i586/pmtools-20050823-3.i586.rpm pmtools-20050823-3.i586.rpm]). If you want to run rpmbuild --rebuild: [ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/src/pmtools-20050823-3.src.rpm pmtools-20050823-3.src.rpm].&lt;br /&gt;
* '''Debian''' ships it in the '''iasl''' package (''apt-get install iasl'').&lt;br /&gt;
* You can also download the [http://acpica.org/downloads/unix_source_code.php latest version of the source code].&lt;br /&gt;
&lt;br /&gt;
=== How can I write to POSTcard port 0x80 from userspace? ===&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxbios.org/pipermail/linuxbios/2006-November/017012.html This] might be useful in some situations, and to output a number to a POST card:&lt;br /&gt;
&lt;br /&gt;
 printf &amp;quot;\001&amp;quot; | dd bs=1 seek=128 of=/dev/port&lt;br /&gt;
&lt;br /&gt;
In DOS (not Windows XP) use:&lt;br /&gt;
 mov al, 42; out al, 80h&lt;br /&gt;
To output 42 type&lt;br /&gt;
 o 80 42&lt;br /&gt;
in DOS debug.exe.&lt;br /&gt;
&lt;br /&gt;
=== Is coreboot applying x86 microcode patches? ===&lt;br /&gt;
&lt;br /&gt;
And if yes, can they be modified?&lt;br /&gt;
&lt;br /&gt;
Answer: Yes, coreboot is applying microcode patches on AMD and Intel CPUs. However, this field is little documented, so coreboot uses only unmodified, vendor-provided microcode. Few people think, that system design can seriously be improved by modifications here ( µCode patches mostly disable erraneous functions and opcodes).&lt;br /&gt;
&lt;br /&gt;
=== How can I retrieve a good video BIOS? ===&lt;br /&gt;
&lt;br /&gt;
Note: If you are following these instructions to build coreboot for your motherboard, this is only necessary if you have a motherboard with an embedded VGA card. If your VGA is a PCI / PCI-Express add-on card, coreboot will find and run the ROM by itself.&lt;br /&gt;
&lt;br /&gt;
Anton Borisov has released a number of tools under the GPL (v2) to extract the VGA BIOS from the BIOS ROM images provided by the supplier of your motherboard.&lt;br /&gt;
&lt;br /&gt;
You can download them here:&lt;br /&gt;
&lt;br /&gt;
* Award BIOS:&lt;br /&gt;
** http://kaos.ru/biosgfx/download/awardeco-0.2.src.tar.gz&lt;br /&gt;
** http://ftp.debian.org/debian/pool/main/a/awardeco/awardeco_0.2.orig.tar.gz&lt;br /&gt;
* AMI BIOS:&lt;br /&gt;
** http://www.kaos.ru/biosgfx/download/AmiDeco_0.31e.src.tar.gz&lt;br /&gt;
** http://ftp.debian.org/debian/pool/main/a/amideco/amideco_0.31e.orig.tar.gz&lt;br /&gt;
* Phoenix BIOS:&lt;br /&gt;
** http://www.kaos.ru/biosgfx/download/PhoenixDeco_0.33.src.tar.gz&lt;br /&gt;
** http://ftp.debian.org/debian/pool/main/p/phnxdeco/phnxdeco_0.33.orig.tar.gz&lt;br /&gt;
* Insyde BIOS:&lt;br /&gt;
** http://www.kaos.ru/biosgfx/download/InsyDeco_0.3.src.tar.gz&lt;br /&gt;
** (no alternative download location available, sorry)&lt;br /&gt;
&lt;br /&gt;
See the [[Tyan S2881|Tyan S2881 Build Tutorial]] for more information on how to use these tools.&lt;br /&gt;
&lt;br /&gt;
== Can I put coreboot into a PCI expansion ROM? ==&lt;br /&gt;
&lt;br /&gt;
Short answer: NO.&lt;br /&gt;
&lt;br /&gt;
Long answer:&lt;br /&gt;
&lt;br /&gt;
There's little use in doing that, as a lots of initialization has already been done by the proprietary BIOS (or coreboot) by the time the PCI expansion ROM is executed. It won't be possible to run coreboot from a PCI expansion ROM after a proprietary BIOS has already been running for instance.&lt;br /&gt;
&lt;br /&gt;
Note: The Intel ICH7 southbridge seems to allows booting from PCI ROMs ('''not''' arbitrary PCI expansion ROMs as used on graphics cards, SCSI controllers, etc.) -- maybe this should be investigated in order to check if or how it might be useful.&lt;br /&gt;
&lt;br /&gt;
== Obsolete FAQ items ==&lt;br /&gt;
&lt;br /&gt;
Please see [[FAQ/Obsolete]] for (probably) obsolete FAQ items.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Mailinglist</id>
		<title>Mailinglist</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Mailinglist"/>
				<updated>2010-04-13T18:40:34Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: More info about the flashrom mailing list, most of it being redirects to flashrom.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The coreboot project currently runs three mailing lists:&lt;br /&gt;
&lt;br /&gt;
'''coreboot'''&lt;br /&gt;
&lt;br /&gt;
For questions and general information about coreboot, please subscribe to the [http://www.coreboot.org/mailman/listinfo/coreboot coreboot mailing list]. Note: This list currently gets an average of about 1000-1500 mails per month. If you're not subscribed, your post will be held temporarily for moderator approval (to combat spam).&lt;br /&gt;
&lt;br /&gt;
'''coreboot-announce'''&lt;br /&gt;
&lt;br /&gt;
If you want to get brief news about coreboot's progress, please subscribe to the [http://www.coreboot.org/mailman/listinfo/coreboot-announce coreboot-announce mailing list]. This list is moderated and will only get very few posts per month.&lt;br /&gt;
&lt;br /&gt;
'''flashrom'''&lt;br /&gt;
&lt;br /&gt;
[[Flashrom]] related mails are welcome on the [[Flashrom/Mailinglist|flashrom mailing list]]. Please note that the list is moderated for non-subscribers and we recommend to subscribe first. Please do not send BIOS images to the list.&lt;br /&gt;
&lt;br /&gt;
== Archives ==&lt;br /&gt;
&lt;br /&gt;
'''coreboot'''&lt;br /&gt;
&lt;br /&gt;
* A mailing list archive dating back as far as August 2002 can be found at http://www.coreboot.org/pipermail/coreboot/.&lt;br /&gt;
* A complete archive of the coreboot-announce list can be found at http://www.coreboot.org/pipermail/coreboot-announce/.&lt;br /&gt;
* A searchable (but incomplete) archive is available at http://www.mail-archive.com/linuxbios@clustermatic.org/.&lt;br /&gt;
* Yet another (searchable) archive is available at http://blog.gmane.org/gmane.linux.bios/.&lt;br /&gt;
&lt;br /&gt;
'''coreboot-announce'''&lt;br /&gt;
&lt;br /&gt;
* http://www.coreboot.org/pipermail/coreboot-announce/&lt;br /&gt;
&lt;br /&gt;
'''flashrom'''&lt;br /&gt;
&lt;br /&gt;
* http://www.flashrom.org/pipermail/flashrom/&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
You can also contact us via [[IRC]] if you prefer that.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GSoC</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GSoC"/>
				<updated>2010-03-19T15:56:21Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* flashrom */ link to flashrom gsoc page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Google Summer of Code 2010 =&lt;br /&gt;
&lt;br /&gt;
http://3.bp.blogspot.com/_fxRR_bT3LgA/S5U3rk2J-eI/AAAAAAAACE8/mBRYQwSqvqQ/s400/2010_NoURL_300x267px.jpg&lt;br /&gt;
&lt;br /&gt;
Welcome to the [http://code.google.com/soc/ Google Summer of Code(tm)] page of the [[Welcome to coreboot|coreboot project]]. Apply for a coreboot GSoC project at http://socghop.appspot.com/.&lt;br /&gt;
&lt;br /&gt;
This year, coreboot also tries to host some flashrom projects.&lt;br /&gt;
&lt;br /&gt;
== Deadlines ==&lt;br /&gt;
&lt;br /&gt;
Make sure you check the [http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs#timeline Deadlines]&lt;br /&gt;
&lt;br /&gt;
= Why work for coreboot =&lt;br /&gt;
&lt;br /&gt;
Why would you like to work for coreboot?&lt;br /&gt;
&lt;br /&gt;
* coreboot offers you the opportunity to work with modern technology &amp;quot;right on the iron&amp;quot;.&lt;br /&gt;
* Your application will be available to users worldwide and promoted along with all other coreboot projects.&lt;br /&gt;
* We are a very passionate team - so you will interact directly with the project initiators and project leaders. &lt;br /&gt;
* We have a large, helpful community. Over 100 experts in hardware and firmware lurk on our mailing list, many of them waiting to help you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Summer of Code Application =&lt;br /&gt;
&lt;br /&gt;
Please complete the standard [http://code.google.com/soc/ Google SoC 2010 application]. Additionally, please provide information on the following:&lt;br /&gt;
&lt;br /&gt;
# Who are you? What are you studying?&lt;br /&gt;
# Why are you the right person for this task?&lt;br /&gt;
# Do you have any other commitments that we should know about?&lt;br /&gt;
# List your C, Assembler and hardware experience.&lt;br /&gt;
# List your history with open source projects.&lt;br /&gt;
# What is your preferred method of contact? (Phone, email, Skype, etc) &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== How to apply ==&lt;br /&gt;
&lt;br /&gt;
The Drupal project has a great page on [http://drupal.org/node/59037 How to write an SOC application].&lt;br /&gt;
&lt;br /&gt;
Please also read Google's [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students].&lt;br /&gt;
&lt;br /&gt;
== Some Caveats ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 &amp;quot;community bonding period&amp;quot; between acceptance and official start. Also, you must have made progress and committed significant code before the mid-term point.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;regular basis&amp;quot; in the last item does _not_ mean &amp;quot;3 days before evaluation deadlines&amp;quot;. You should be &amp;quot;around&amp;quot; all the time (reporting your feedback, sending in partial successes).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Time Frame ==&lt;br /&gt;
&lt;br /&gt;
'''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!&lt;br /&gt;
&lt;br /&gt;
== Student requirements ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
If you are interested in becoming a GSoC student, please contact [mailto:stepan@coresystems.de Stefan Reinauer].&lt;br /&gt;
&lt;br /&gt;
There is also an IRC channel on irc.freenode.net: #coreboot&lt;br /&gt;
&lt;br /&gt;
= Possible ideas =&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
* Work on code coverage support for coreboot code (dump data into ram, or via serial. Provide tools to fetch it). Analyse that data.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker]&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Coverage: [http://ltp.sourceforge.net/test/coverage/lcov.php LCOV], [http://ggcov.sourceforge.net GGCOV]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== TianoCore on coreboot ==&lt;br /&gt;
&lt;br /&gt;
[http://www.tianocore.org/ 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.&lt;br /&gt;
&lt;br /&gt;
This project requires no hardware skills, but especially in case of TianoCore might require knowledge of Windows compilers (VC2005?)&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [http://www.tianocore.org/ Tiano Core]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
==coreboot port to Marvell ARM SOC's with PCIe==&lt;br /&gt;
[http://www.marvell.com/products/processors/embedded/kirkwood/ 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.&lt;br /&gt;
&lt;br /&gt;
== coreboot port to AMD 800 series chipsets ==&lt;br /&gt;
(probably too big of a task)&lt;br /&gt;
:I'm not sure that this is too of a big task. I think 800 is closely related to 780 and would be slightly harder than a 780 board port. ---[[User:MJones|MJones]]&lt;br /&gt;
&lt;br /&gt;
== coreboot mass-porting to AMD 780 series mainboards ==&lt;br /&gt;
(since code is now available)&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
(maybe just reuse the SerialICE core, too small project for full GSoC)&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
create a cheap testing rig which works with the existing board test infrastructure&lt;br /&gt;
&lt;br /&gt;
== coreboot GeodeLX port from v3 to v4 ==&lt;br /&gt;
significant parts of that are already done, so it's hard to fill a full GSoC with that. One thing could be &amp;quot;verify that everything is brought over&amp;quot;, but that's nothing that can be reasonably proven (and it might also be too close to &amp;quot;documentation tasks&amp;quot;, which are not allowed)&lt;br /&gt;
&lt;br /&gt;
== drivers for libpayload ==&lt;br /&gt;
IDE, AHCI, Bluetooth, Firewire, Smartcards, maybe filesystems. Work towards making FILO only a shell, which uses libpayload for the &amp;quot;real&amp;quot; work. Notice that libpayload code must be licensed BSD-style (so ports from FILO, SeaBIOS or Linux won't work).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Payload infrastructure ==&lt;br /&gt;
Incorporate payload building into the coreboot build. kconfig options could be added for supported payloads, those payload could be updated to build with kconfig as well. Payloads that build with libpayload need would need default configs. Payloads should also be built with the crossgcc tools. This is related to the libpayload and board config infrastructure above. ---[[User:MJones|MJones]]&lt;br /&gt;
&lt;br /&gt;
== flashrom ==&lt;br /&gt;
&lt;br /&gt;
Note: The list below is an idea collection. Individual list items are simple enough to serve only as partial GSoC task, but they are grouped to reasonable tasks.  If you're interested, please talk to us on the flashrom mailing list and/or on IRC irc://irc.freenode.net/#flashrom&lt;br /&gt;
&lt;br /&gt;
''[http://www.flashrom.org/GSoC/2010 http://www.flashrom.org/GSoC/2010] has more flashrom ideas and suggestions.''&lt;br /&gt;
&lt;br /&gt;
=== Multiple GUIs for flashrom ===&lt;br /&gt;
&lt;br /&gt;
* flashrom text mode GUI (for command line and flashrom-as-payload)&lt;br /&gt;
* flashrom graphics mode GUI (should be cross-platform, Sean Nelson has preliminary code you can base this on)&lt;br /&gt;
&lt;br /&gt;
=== Recovery of dead boards and onboard flash updates ===&lt;br /&gt;
&lt;br /&gt;
* flashrom as payload&lt;br /&gt;
* flashrom remote flashing for coreboot panic room mode&lt;br /&gt;
* flashrom remote flashing with modified SerialICE&lt;br /&gt;
&lt;br /&gt;
=== SPI bitbanging hardware support ===&lt;br /&gt;
&lt;br /&gt;
* flashrom support for Nvidia SPI chipset hardware&lt;br /&gt;
* flashrom support for RayeR SPIPGM hardware&lt;br /&gt;
* flashrom support for [[Paraflasher]] hardware&lt;br /&gt;
* flashrom support for Willem hardware&lt;br /&gt;
* flashrom support for some-yet-uninvented cheap universal LPC/FWH/SPI flasher hardware&lt;br /&gt;
* flashrom support for bitbanging LPC/FWH (code exists, Uwe Hermann &lt;br /&gt;
* flashrom support for bitbanging Parallel&lt;br /&gt;
&lt;br /&gt;
=== Generic flashrom infrastructure improvements ===&lt;br /&gt;
&lt;br /&gt;
* flashrom support for automatic recovery in case something goes wrong&lt;br /&gt;
* flashrom support for partial reflashing&lt;br /&gt;
* flashrom support for bytewise flashing (similar to the point above)&lt;br /&gt;
&lt;br /&gt;
=== Laptop support ===&lt;br /&gt;
&lt;br /&gt;
This one is really HARD. If you're lucky and if you have datasheets, you can do it in maybe 1 month. If you're unlucky, it can take the whole GSoC or more. If there is interest, we'll try to find an embeddec controller which won't cause you to give up in frustration. Still, it might be beneficial if you're willing to solder.&lt;br /&gt;
* flashrom support for embedded controllers (ECs) in laptops&lt;br /&gt;
&lt;br /&gt;
=== Already done ===&lt;br /&gt;
&lt;br /&gt;
Sorry, the list of ideas caused some people to attack and solve them. ;-)&lt;br /&gt;
* flashrom under DOS (Rudolf Marek)&lt;br /&gt;
&lt;br /&gt;
== Your own Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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!&lt;br /&gt;
&lt;br /&gt;
Feel free to contact us at the email address above, and don't hesitate to suggest whatever you have in mind.&lt;br /&gt;
&lt;br /&gt;
= Previous Summer of Code projects =&lt;br /&gt;
&lt;br /&gt;
We successfully participated in Google's Summer of Code in 2007, 2008 and 2009. See our [[Previous GSoC Projects|list of previous GSoC projects]].&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GSoC</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GSoC"/>
				<updated>2010-03-17T01:21:04Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* flashrom */ Elaborate a bit more&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Google Summer of Code 2010 =&lt;br /&gt;
&lt;br /&gt;
http://3.bp.blogspot.com/_fxRR_bT3LgA/S5U3rk2J-eI/AAAAAAAACE8/mBRYQwSqvqQ/s400/2010_NoURL_300x267px.jpg&lt;br /&gt;
&lt;br /&gt;
Welcome to the [http://code.google.com/soc/ Google Summer of Code(tm)] page of the [[Welcome to coreboot|coreboot project]]. Apply for a coreboot GSoC project at http://socghop.appspot.com/.&lt;br /&gt;
&lt;br /&gt;
This year, coreboot also tries to host some flashrom projects.&lt;br /&gt;
&lt;br /&gt;
== Deadlines ==&lt;br /&gt;
&lt;br /&gt;
Make sure you check the [http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs#timeline Deadlines]&lt;br /&gt;
&lt;br /&gt;
= Why work for coreboot =&lt;br /&gt;
&lt;br /&gt;
Why would you like to work for coreboot?&lt;br /&gt;
&lt;br /&gt;
* coreboot offers you the opportunity to work with modern technology &amp;quot;right on the iron&amp;quot;.&lt;br /&gt;
* Your application will be available to users worldwide and promoted along with all other coreboot projects.&lt;br /&gt;
* We are a very passionate team - so you will interact directly with the project initiators and project leaders. &lt;br /&gt;
* We have a large, helpful community. Over 100 experts in hardware and firmware lurk on our mailing list, many of them waiting to help you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Summer of Code Application =&lt;br /&gt;
&lt;br /&gt;
Please complete the standard [http://code.google.com/soc/ Google SoC 2010 application]. Additionally, please provide information on the following:&lt;br /&gt;
&lt;br /&gt;
# Who are you? What are you studying?&lt;br /&gt;
# Why are you the right person for this task?&lt;br /&gt;
# Do you have any other commitments that we should know about?&lt;br /&gt;
# List your C, Assembler and hardware experience.&lt;br /&gt;
# List your history with open source projects.&lt;br /&gt;
# What is your preferred method of contact? (Phone, email, Skype, etc) &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== How to apply ==&lt;br /&gt;
&lt;br /&gt;
The Drupal project has a great page on [http://drupal.org/node/59037 How to write an SOC application].&lt;br /&gt;
&lt;br /&gt;
Please also read Google's [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students].&lt;br /&gt;
&lt;br /&gt;
== Some Caveats ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 &amp;quot;community bonding period&amp;quot; between acceptance and official start. Also, you must have made progress and committed significant code before the mid-term point.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;regular basis&amp;quot; in the last item does _not_ mean &amp;quot;3 days before evaluation deadlines&amp;quot;. You should be &amp;quot;around&amp;quot; all the time (reporting your feedback, sending in partial successes).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Time Frame ==&lt;br /&gt;
&lt;br /&gt;
'''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!&lt;br /&gt;
&lt;br /&gt;
== Student requirements ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
If you are interested in becoming a GSoC student, please contact [mailto:stepan@coresystems.de Stefan Reinauer].&lt;br /&gt;
&lt;br /&gt;
There is also an IRC channel on irc.freenode.net: #coreboot&lt;br /&gt;
&lt;br /&gt;
= Possible ideas =&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
* Work on code coverage support for coreboot code (dump data into ram, or via serial. Provide tools to fetch it). Analyse that data.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker]&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Coverage: [http://ltp.sourceforge.net/test/coverage/lcov.php LCOV], [http://ggcov.sourceforge.net GGCOV]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== TianoCore on coreboot ==&lt;br /&gt;
&lt;br /&gt;
[http://www.tianocore.org/ 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.&lt;br /&gt;
&lt;br /&gt;
This project requires no hardware skills, but especially in case of TianoCore might require knowledge of Windows compilers (VC2005?)&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [http://www.tianocore.org/ Tiano Core]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
==coreboot port to Marvell ARM SOC's with PCIe==&lt;br /&gt;
[http://www.marvell.com/products/processors/embedded/kirkwood/ 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.&lt;br /&gt;
&lt;br /&gt;
== coreboot port to AMD 800 series chipsets ==&lt;br /&gt;
(probably too big of a task)&lt;br /&gt;
&lt;br /&gt;
== coreboot mass-porting to AMD 780 series mainboards ==&lt;br /&gt;
(since code is now available)&lt;br /&gt;
&lt;br /&gt;
== coreboot panic room ==&lt;br /&gt;
(maybe just reuse the SerialICE core, too small project for full GSoC)&lt;br /&gt;
&lt;br /&gt;
== coreboot cheap testing rig ==&lt;br /&gt;
create a cheap testing rig which works with the existing board test infrastructure&lt;br /&gt;
&lt;br /&gt;
== coreboot GeodeLX port from v3 to v4 ==&lt;br /&gt;
significant parts of that are already done, so it's hard to fill a full GSoC with that. One thing could be &amp;quot;verify that everything is brought over&amp;quot;, but that's nothing that can be reasonably proven (and it might also be too close to &amp;quot;documentation tasks&amp;quot;, which are not allowed)&lt;br /&gt;
&lt;br /&gt;
== drivers for libpayload ==&lt;br /&gt;
IDE, AHCI, Bluetooth, Firewire, Smartcards, maybe filesystems. Work towards making FILO only a shell, which uses libpayload for the &amp;quot;real&amp;quot; work. Notice that libpayload code must be licensed BSD-style (so ports from FILO, SeaBIOS or Linux won't work).&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Board config infrastructure ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== flashrom ==&lt;br /&gt;
&lt;br /&gt;
Note: The list below is an idea collection. Individual list items are simple enough to serve only as partial GSoC task, but they are grouped to reasonable tasks.  If you're interested, please talk to us on the flashrom mailing list and/or on IRC irc://irc.freenode.net/#flashrom&lt;br /&gt;
&lt;br /&gt;
=== Multiple GUIs for flashrom ===&lt;br /&gt;
&lt;br /&gt;
* flashrom text mode GUI (for command line and flashrom-as-payload)&lt;br /&gt;
* flashrom graphics mode GUI (should be cross-platform, Sean Nelson has preliminary code you can base this on)&lt;br /&gt;
&lt;br /&gt;
=== Recovery of dead boards and onboard flash updates ===&lt;br /&gt;
&lt;br /&gt;
* flashrom as payload&lt;br /&gt;
* flashrom remote flashing for coreboot panic room mode&lt;br /&gt;
* flashrom remote flashing with modified SerialICE&lt;br /&gt;
&lt;br /&gt;
=== SPI bitbanging hardware support ===&lt;br /&gt;
&lt;br /&gt;
* flashrom support for Nvidia SPI chipset hardware&lt;br /&gt;
* flashrom support for RayeR SPIPGM hardware&lt;br /&gt;
* flashrom support for [[Paraflasher]] hardware&lt;br /&gt;
* flashrom support for Willem hardware&lt;br /&gt;
* flashrom support for some-yet-uninvented cheap universal LPC/FWH/SPI flasher hardware&lt;br /&gt;
* flashrom support for bitbanging LPC/FWH (code exists, Uwe Hermann &lt;br /&gt;
* flashrom support for bitbanging Parallel&lt;br /&gt;
&lt;br /&gt;
=== Generic flashrom infrastructure improvements ===&lt;br /&gt;
&lt;br /&gt;
* flashrom support for automatic recovery in case something goes wrong&lt;br /&gt;
* flashrom support for partial reflashing&lt;br /&gt;
* flashrom support for bytewise flashing (similar to the point above)&lt;br /&gt;
&lt;br /&gt;
=== Laptop support ===&lt;br /&gt;
&lt;br /&gt;
This one is really HARD. If you're lucky and if you have datasheets, you can do it in maybe 1 month. If you're unlucky, it can take the whole GSoC or more. If there is interest, we'll try to find an embeddec controller which won't cause you to give up in frustration. Still, it might be beneficial if you're willing to solder.&lt;br /&gt;
* flashrom support for embedded controllers (ECs) in laptops&lt;br /&gt;
&lt;br /&gt;
=== Already done ===&lt;br /&gt;
&lt;br /&gt;
Sorry, the list of ideas caused some people to attack and solve them. ;-)&lt;br /&gt;
* flashrom under DOS (Rudolf Marek)&lt;br /&gt;
&lt;br /&gt;
== Your own Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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!&lt;br /&gt;
&lt;br /&gt;
Feel free to contact us at the email address above, and don't hesitate to suggest whatever you have in mind.&lt;br /&gt;
&lt;br /&gt;
= Previous Summer of Code projects =&lt;br /&gt;
&lt;br /&gt;
We successfully participated in Google's Summer of Code in 2007, 2008 and 2009. See our [[Previous GSoC Projects|list of previous GSoC projects]].&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Welcome_to_coreboot</id>
		<title>Welcome to coreboot</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Welcome_to_coreboot"/>
				<updated>2010-03-16T01:56:07Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: RS780/SB700 now supported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;td width=&amp;quot;80%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top:0.5em; margin-bottom:0.5em; padding:0.5em 0.5em 0.5em 0.5em; background-color:#efefff; align:right; border:1px solid #aabbcc;&amp;quot;&amp;gt;&lt;br /&gt;
'''coreboot''' (formerly known as LinuxBIOS) is a Free Software project aimed at replacing the proprietary BIOS (firmware) you can find in most of today's computers. It performs just a little bit of hardware initialization and then executes a so-called [[Payloads|payload]].&lt;br /&gt;
&lt;br /&gt;
With this separation of hardware initialization and later boot logic, coreboot is capable of scaling from specialized applications run directly from firmware, operating systems in Flash, and custom bootloaders to implementations of firmware standards like PCBIOS and EFI without having to carry features not necessary in the target application, reducing the amount of code and flash space required.&lt;br /&gt;
&lt;br /&gt;
We currently support '''[[Supported Motherboards|214]]''' different mainboards.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=0 cellpadding=8 border=0 margin=0 padding=0 align=&amp;quot;top&amp;quot; width=100%&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{{Box|&lt;br /&gt;
BORDER = #8898bf|&lt;br /&gt;
BACKGROUND = yellow|&lt;br /&gt;
WIDTH = 100%|&lt;br /&gt;
ICON = &amp;lt;small&amp;gt;[[Benefits|More...]]&amp;lt;/small&amp;gt;|&lt;br /&gt;
HEADING = &amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Benefits]]&amp;lt;/span&amp;gt;|&lt;br /&gt;
CONTENT =&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* 100% Free Software (GPL), no royalties, no license fees!&lt;br /&gt;
* Fast boot times (3 seconds to Linux console)&lt;br /&gt;
&amp;lt;!-- * Avoids the need for a slow/buggy/proprietary BIOS --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * Runs in 32-Bit protected mode almost from the start --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * Written in C, contains virtually no assembly code --&amp;gt;&lt;br /&gt;
* Supports many [[Supported Motherboards|mainboards]], [[Supported Chipsets and Devices|chipsets]], and [[payloads]]&lt;br /&gt;
&amp;lt;!-- * Further features: netboot, serial console, remote flashing, ... --&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{{Box|&lt;br /&gt;
BORDER = #8898bf|&lt;br /&gt;
BACKGROUND = #d1adf6|&lt;br /&gt;
WIDTH = 100%|&lt;br /&gt;
ICON = &amp;lt;small&amp;gt;[[Use Cases|More...]]&amp;lt;/small&amp;gt;|&lt;br /&gt;
HEADING = &amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Use Cases]]&amp;lt;/span&amp;gt;|&lt;br /&gt;
CONTENT =&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* Desktop PCs and servers&lt;br /&gt;
* [[Clusters]]&lt;br /&gt;
&amp;lt;!-- * Set-Top-Boxes, thin clients --&amp;gt;&lt;br /&gt;
* Embedded solutions&lt;br /&gt;
&amp;lt;!-- * [http://en.wikipedia.org/wiki/Small_form_factor Small form factor computers], [http://en.wikipedia.org/wiki/Home_theater_PC Home-theater PCs] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * No-moving-parts solutions (ROM chip as &amp;quot;disk&amp;quot;) --&amp;gt;&lt;br /&gt;
&amp;lt;!-- * Non-standard scenarios (e.g. FPGA in Opteron socket) --&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{{Box|&lt;br /&gt;
BORDER = #8898bf|&lt;br /&gt;
BACKGROUND = lime|&lt;br /&gt;
WIDTH = 100%|&lt;br /&gt;
ICON = &amp;lt;small&amp;gt;[[Payloads|More...]]&amp;lt;/small&amp;gt;|&lt;br /&gt;
HEADING = &amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Payloads]]&amp;lt;/span&amp;gt;|&lt;br /&gt;
CONTENT =&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* [[FILO]] / [http://grub.enbug.org/CoreBoot GRUB2] &amp;lt;!-- / [[OpenFirmware]] / [[OpenBIOS]] --&amp;gt;&lt;br /&gt;
* [[Linux]] / [[Booting Windows using coreboot|Windows]] / [[Booting FreeBSD using coreboot|FreeBSD]]&amp;lt;!--  / [[Coreboot and NetBSD|NetBSD]] / [http://openbsd.org/ OpenBSD]--&amp;gt;&lt;br /&gt;
* [[Etherboot]]&lt;br /&gt;
&amp;lt;!--* [[SeaBIOS]] / [[Memtest86]]&lt;br /&gt;
* [[Etherboot]] / [[GPXE]]&lt;br /&gt;
* [[Bayou]] / [[Coreinfo]] / [[Tint]] / [[Libpayload]]--&amp;gt;&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=5 cellpadding=15 border=0 valign=&amp;quot;top&amp;quot; width=100%&lt;br /&gt;
| width=50% style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_cb.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;About&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Find out more about coreboot.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Press]] | [[Logo]] | [[History]] | [[Screenshots|Screenshots/Videos]] | [[Contributors]] | [[Sponsors]] | [[Products]] | [[Clusters]] | [[Vendors]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_devel.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Developers&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Get involved! Help us make coreboot better.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Development Guidelines]] | [[Developer Manual]] | [http://qa.coreboot.org/docs/doxygen.php Doxygen] | [http://tracker.coreboot.org/trac/coreboot/browser/trunk Browse Source] | [[GSoC]] | [[SerialICE]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=50% style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_status.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Status&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Find out whether your hardware is already supported.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Supported Motherboards|Supported Boards]] | [[Supported Chipsets and Devices|Supported Chipsets]] | [http://qa.coreboot.org Build Status]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_tools.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Related Tools&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Tools and libraries related to coreboot.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Flashrom]] | [[Superiotool]] | [[Nvramtool]] | [[Buildrom]] | [[Mkelfimage]] | [[Inteltool]] | [[Msrtool]] | [[Ectool]] | [[Developer_Manual/Tools|Hardware tools]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=50% style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_101.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Getting Started&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Download coreboot and get started.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[Build HOWTO]] | [[Download coreboot|Downloads]] | [[Documentation]] | [[:Category:Tutorials|Board Tutorials]] | [[QEMU]] | [[AMD SimNow]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
[[Image:chip_support.png]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot;|&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:150%&amp;quot;&amp;gt;Support&amp;lt;/span&amp;gt;'''&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;Learn how to contact us and find help and support.&amp;lt;/small&amp;gt;&amp;lt;small&amp;gt;&amp;lt;hr /&amp;gt;[[FAQ]] | [[Mailinglist]] | [[IRC]] | [http://tracker.coreboot.org/trac/coreboot/ Issue Tracker] | [[Glossary]] | [[coreboot Options|coreboot Options]]&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;20%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Coreboot menuconfig.png|center|thumb|[[Build HOWTO|make menuconfig]] in coreboot]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[News]]&amp;lt;/span&amp;gt;'''&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;!-- Please always make this list 7 items long (7 most recent news items). --&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
* '''2010/03/15:''' [[News#2010.2F03.2F15_AMD_RS780_and_SB700_now_supported|AMD RS780 and SB700 now supported]]&lt;br /&gt;
* '''2010/03/05:''' [[News#2010.2F03.2F05_ASUS_P2B-LS_now_supported|ASUS P2B-LS now supported]]&lt;br /&gt;
* '''2010/01/17:''' [[News#2010.2F01.2F17_Roda_RK886EX_.28Rocky_III.2B.29_now_supported|Roda RK886EX (Rocky III+) support]]&lt;br /&gt;
* '''2009/10/21:''' [[News#2009.2F10.2F21_HP_e-Vectra_P2706T_now_supported|HP e-Vectra P2706T support]]&lt;br /&gt;
* '''2009/10/13:''' [[News#2009.2F10.2F13_MSI_MS-6156_now_supported|MSI MS-6156 support]]&lt;br /&gt;
* '''2009/10/13:''' [[News#2009.2F10.2F13_TechNexion_TIM-5690_now_supported|TechNexion TIM-5690 support]]&lt;br /&gt;
* '''2009/09/25:''' [[News#2009.2F09.2F25_coreboot_on_the_cover_of_the_Linux_Journal|coreboot @ Linux Journal]]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;font-variant:small-caps; font-size:120%&amp;quot;&amp;gt;[[Current events|Upcoming Events]]&amp;lt;/span&amp;gt;'''&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;!-- List of upcoming events (remove events after they have taken place). --&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
&amp;lt;!-- * '''2009/mon/day:''' coreboot event at [[Link]] in somecity --&amp;gt;&lt;br /&gt;
* Currently none.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Datasheets</id>
		<title>Datasheets</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Datasheets"/>
				<updated>2010-03-11T15:06:42Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists '''publically available datasheets''' and programming guides from various vendors. It includes CPU, chipset, Super I/O, and many other datasheets.&lt;br /&gt;
&lt;br /&gt;
If datasheets are expected to become public in the near future, they may get listed as well to make sure people know what to expect.&lt;br /&gt;
&lt;br /&gt;
= CPU =&lt;br /&gt;
&lt;br /&gt;
== AMD K8 ==&lt;br /&gt;
&lt;br /&gt;
* AMD K8 BKDG (BIOS and kernel developer's guide) [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF revision E] and [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf revision F]&lt;br /&gt;
&lt;br /&gt;
== AMD Fam10 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116.PDF AMD Fam10 BKDG] (BIOS and kernel developer's guide)&lt;br /&gt;
&lt;br /&gt;
== VIA Padlock ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=281 Security Application note]&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=261 PadLock Programming Guide]&lt;br /&gt;
&lt;br /&gt;
= Northbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD RS690 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/gpu_assets/43372_rs690_rrg_3.00o.pdf AMD RS690 RRG] (Register Reference Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/41977_rs690_ds_3.06.pdf AMD RS690 Databook]&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/41978_rs690m_ds_3.06.pdf AMD RS690M Databook]&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/42437_m690t_ds_3_08.pdf AMD M690T/E Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD RS780 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/Assets/43291_rs780_rpr_pub_1.01.pdf AMD RS780 Register Programming Requirements]&lt;br /&gt;
* [http://developer.amd.com/Assets/43451_rs780_rrg_pub_1.01.pdf AMD RS780 ASIC Family Register Reference Guide]&lt;br /&gt;
* [http://developer.amd.com/Assets/43734_rs780_bdg_pub_1.01.pdf AMD RS780 ASIC Family BIOS Developer’s Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/45732_rs780e_ds_pub_3.10.pdf AMD RS780E Databook]&lt;br /&gt;
&lt;br /&gt;
Apparently there are other docs as well, not sure if they provide any additional information or if they are part of the public documents above:&lt;br /&gt;
* AMD RD780 Register Reference Guide&lt;br /&gt;
* AMD RX780 Register Reference Guide&lt;br /&gt;
* AMD RS780M Hybrid Graphics – System BIOS Detailed Design Document (Publication #44969)&lt;br /&gt;
* AMD RD790 Register Programming Requirements (Publication #42462)&lt;br /&gt;
* AMD RD790 Register Reference Guide (Publication #42988)&lt;br /&gt;
* AMD RD790 BIOS Developer's Guide (Publication #43093)&lt;br /&gt;
&lt;br /&gt;
== AMD RD890 ==&lt;br /&gt;
Not public (yet?). However, some of the information may be contained in the public docs in the RS780 section&lt;br /&gt;
&lt;br /&gt;
* AMD RD890 BIOS Developer's Guide (Publication #43606)&lt;br /&gt;
* AMD RD890 Register Reference Guide (Publication #43607)&lt;br /&gt;
&lt;br /&gt;
== VIA CX700M/VX700 ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=141&amp;amp;fid=221 VIA CX700M/VX700 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
== VIA VX800 ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=161&amp;amp;fid=241 VIA VX800 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
= Southbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD SB600 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46155_sb600_rrg_pub_3.03.pdf AMD SB600 RRG] (Register Reference Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46156_sb600_rpr_pub_3.02b.pdf AMD SB600 RPR] (Register Programming Requirements)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46157_sb600_bdg_pub300.pdf AMD SB600 BDG] (BIOS Developer's Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/42119_sb600_ds_3.05.pdf AMD SB600 Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD SB700/SB710/SB750 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/assets/43009_sb7xx_rrg_pub_1.00.pdf AMD SB700/710/750 Register Reference Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/43366_sb7xx_bdg_pub_1.00.pdf AMD SB700/710/750 BIOS Developer’s Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/42413_sb7xx_rpr_pub_1.00.pdf AMD SB700/710/750 Register Programming Requirements]&lt;br /&gt;
* [http://developer.amd.com/assets/45215_sb710_ds_pub_1.25.pdf AMD SB710 Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD SB800 ==&lt;br /&gt;
Not available yet, but here are the numbers for the documents we'd like to get. I found these numbers with a creative internet search.&lt;br /&gt;
&lt;br /&gt;
* AMD SB800 Databook (Publication #44758)&lt;br /&gt;
&lt;br /&gt;
= Super I/O =&lt;br /&gt;
&lt;br /&gt;
== ITE ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 PC Desktop/Notebook Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 Desktop Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=6 Notebook Super I/Os]&lt;br /&gt;
&lt;br /&gt;
== Winbond / Nuvoton ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/ISASuperIO/ ISA Super I/Os]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/LPCSuperIOforDesktopAndServer/ LPC Super I/O for Desktop &amp;amp; Server]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforDesktop/ Advanced Super I/O for Desktop]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforNotebook/ Advanced Super I/O for Notebook]&lt;br /&gt;
&lt;br /&gt;
== Fintek ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.fintek.com.tw/eng/products.asp?BID=1&amp;amp;SID=17&amp;amp;layer=0 Super Hardware Monitor + SIO]&lt;br /&gt;
&lt;br /&gt;
== NSC ==&lt;br /&gt;
&lt;br /&gt;
(bought by Winbond, now Nuvoton)&lt;br /&gt;
&lt;br /&gt;
== ALi ==&lt;br /&gt;
&lt;br /&gt;
== SMSC ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.smsc.com/main/catalog/ioprods.html Products / datasheets overview]&lt;br /&gt;
* [http://www.smsc.com/main/datasheet.html Various product datasheets]&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/Processors/TechnicalResources/1,,30_182_739,00.html AMD public documents]&lt;br /&gt;
** The [http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_15872,00.html AMD64 Embedded Processors and Chipset Linux Support] web page features links to supported projects (like coreboot) and links to documentation.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
There are many datasheet archives on the web which may have other (usually older) datasheets which already disappeared from vendor websites.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Datasheets</id>
		<title>Datasheets</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Datasheets"/>
				<updated>2010-03-11T15:04:43Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* AMD RS780 */ Add some mysterious documents to the RS780 list, create a new RD890 list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists '''publically available datasheets''' and programming guides from various vendors. It includes CPU, chipset, Super I/O, and many other datasheets.&lt;br /&gt;
&lt;br /&gt;
= CPU =&lt;br /&gt;
&lt;br /&gt;
== AMD K8 ==&lt;br /&gt;
&lt;br /&gt;
* AMD K8 BKDG (BIOS and kernel developer's guide) [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF revision E] and [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf revision F]&lt;br /&gt;
&lt;br /&gt;
== AMD Fam10 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116.PDF AMD Fam10 BKDG] (BIOS and kernel developer's guide)&lt;br /&gt;
&lt;br /&gt;
== VIA Padlock ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=281 Security Application note]&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=261 PadLock Programming Guide]&lt;br /&gt;
&lt;br /&gt;
= Northbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD RS690 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/gpu_assets/43372_rs690_rrg_3.00o.pdf AMD RS690 RRG] (Register Reference Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/41977_rs690_ds_3.06.pdf AMD RS690 Databook]&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/41978_rs690m_ds_3.06.pdf AMD RS690M Databook]&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/42437_m690t_ds_3_08.pdf AMD M690T/E Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD RS780 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/Assets/43291_rs780_rpr_pub_1.01.pdf AMD RS780 Register Programming Requirements]&lt;br /&gt;
* [http://developer.amd.com/Assets/43451_rs780_rrg_pub_1.01.pdf AMD RS780 ASIC Family Register Reference Guide]&lt;br /&gt;
* [http://developer.amd.com/Assets/43734_rs780_bdg_pub_1.01.pdf AMD RS780 ASIC Family BIOS Developer’s Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/45732_rs780e_ds_pub_3.10.pdf AMD RS780E Databook]&lt;br /&gt;
&lt;br /&gt;
Apparently there are other docs as well, not sure if they provide any additional information or if they are part of the public documents above:&lt;br /&gt;
* AMD RD780 Register Reference Guide&lt;br /&gt;
* AMD RX780 Register Reference Guide&lt;br /&gt;
* AMD RS780M Hybrid Graphics – System BIOS Detailed Design Document (Publication #44969)&lt;br /&gt;
* AMD RD790 Register Programming Requirements (Publication #42462)&lt;br /&gt;
* AMD RD790 Register Reference Guide (Publication #42988)&lt;br /&gt;
* AMD RD790 BIOS Developer's Guide (Publication #43093)&lt;br /&gt;
&lt;br /&gt;
== AMD RD890 ==&lt;br /&gt;
Not public (yet?). However, some of the information may be contained in the public docs in the RS780 section&lt;br /&gt;
&lt;br /&gt;
* AMD RD890 BIOS Developer's Guide (Publication #43606)&lt;br /&gt;
* AMD RD890 Register Reference Guide (Publication #43607)&lt;br /&gt;
&lt;br /&gt;
== VIA CX700M/VX700 ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=141&amp;amp;fid=221 VIA CX700M/VX700 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
== VIA VX800 ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=161&amp;amp;fid=241 VIA VX800 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
= Southbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD SB600 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46155_sb600_rrg_pub_3.03.pdf AMD SB600 RRG] (Register Reference Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46156_sb600_rpr_pub_3.02b.pdf AMD SB600 RPR] (Register Programming Requirements)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46157_sb600_bdg_pub300.pdf AMD SB600 BDG] (BIOS Developer's Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/42119_sb600_ds_3.05.pdf AMD SB600 Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD SB700/SB710/SB750 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/assets/43009_sb7xx_rrg_pub_1.00.pdf AMD SB700/710/750 Register Reference Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/43366_sb7xx_bdg_pub_1.00.pdf AMD SB700/710/750 BIOS Developer’s Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/42413_sb7xx_rpr_pub_1.00.pdf AMD SB700/710/750 Register Programming Requirements]&lt;br /&gt;
* [http://developer.amd.com/assets/45215_sb710_ds_pub_1.25.pdf AMD SB710 Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD SB800 ==&lt;br /&gt;
Not available yet, but here are the numbers for the documents we'd like to get. I found these numbers with a creative internet search.&lt;br /&gt;
&lt;br /&gt;
* AMD SB800 Databook (Publication #44758)&lt;br /&gt;
&lt;br /&gt;
= Super I/O =&lt;br /&gt;
&lt;br /&gt;
== ITE ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 PC Desktop/Notebook Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 Desktop Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=6 Notebook Super I/Os]&lt;br /&gt;
&lt;br /&gt;
== Winbond / Nuvoton ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/ISASuperIO/ ISA Super I/Os]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/LPCSuperIOforDesktopAndServer/ LPC Super I/O for Desktop &amp;amp; Server]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforDesktop/ Advanced Super I/O for Desktop]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforNotebook/ Advanced Super I/O for Notebook]&lt;br /&gt;
&lt;br /&gt;
== Fintek ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.fintek.com.tw/eng/products.asp?BID=1&amp;amp;SID=17&amp;amp;layer=0 Super Hardware Monitor + SIO]&lt;br /&gt;
&lt;br /&gt;
== NSC ==&lt;br /&gt;
&lt;br /&gt;
(bought by Winbond, now Nuvoton)&lt;br /&gt;
&lt;br /&gt;
== ALi ==&lt;br /&gt;
&lt;br /&gt;
== SMSC ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.smsc.com/main/catalog/ioprods.html Products / datasheets overview]&lt;br /&gt;
* [http://www.smsc.com/main/datasheet.html Various product datasheets]&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/Processors/TechnicalResources/1,,30_182_739,00.html AMD public documents]&lt;br /&gt;
** The [http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_15872,00.html AMD64 Embedded Processors and Chipset Linux Support] web page features links to supported projects (like coreboot) and links to documentation.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
There are many datasheet archives on the web which may have other (usually older) datasheets which already disappeared from vendor websites.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Datasheets</id>
		<title>Datasheets</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Datasheets"/>
				<updated>2010-03-11T14:31:16Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* AMD SB800 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists '''publically available datasheets''' and programming guides from various vendors. It includes CPU, chipset, Super I/O, and many other datasheets.&lt;br /&gt;
&lt;br /&gt;
= CPU =&lt;br /&gt;
&lt;br /&gt;
== AMD K8 ==&lt;br /&gt;
&lt;br /&gt;
* AMD K8 BKDG (BIOS and kernel developer's guide) [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF revision E] and [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf revision F]&lt;br /&gt;
&lt;br /&gt;
== AMD Fam10 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116.PDF AMD Fam10 BKDG] (BIOS and kernel developer's guide)&lt;br /&gt;
&lt;br /&gt;
== VIA Padlock ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=281 Security Application note]&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=181&amp;amp;fid=261 PadLock Programming Guide]&lt;br /&gt;
&lt;br /&gt;
= Northbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD RS690 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/gpu_assets/43372_rs690_rrg_3.00o.pdf AMD RS690 RRG] (Register Reference Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/41977_rs690_ds_3.06.pdf AMD RS690 Databook]&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/41978_rs690m_ds_3.06.pdf AMD RS690M Databook]&lt;br /&gt;
* [http://support.amd.com/us/Embedded_TechDocs/42437_m690t_ds_3_08.pdf AMD M690T/E Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD RS780 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/Assets/43291_rs780_rpr_pub_1.01.pdf AMD RS780 Register Programming Requirements]&lt;br /&gt;
* [http://developer.amd.com/Assets/43451_rs780_rrg_pub_1.01.pdf AMD RS780 ASIC Family Register Reference Guide]&lt;br /&gt;
* [http://developer.amd.com/Assets/43734_rs780_bdg_pub_1.01.pdf AMD RS780 ASIC Family BIOS Developer’s Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/45732_rs780e_ds_pub_3.10.pdf AMD RS780E Databook]&lt;br /&gt;
&lt;br /&gt;
== VIA CX700M/VX700 ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=141&amp;amp;fid=221 VIA CX700M/VX700 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
== VIA VX800 ==&lt;br /&gt;
&lt;br /&gt;
* [http://linux.via.com.tw/support/beginDownload.action?eleid=161&amp;amp;fid=241 VIA VX800 Programming Manual]&lt;br /&gt;
&lt;br /&gt;
= Southbridge =&lt;br /&gt;
&lt;br /&gt;
== AMD SB600 ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46155_sb600_rrg_pub_3.03.pdf AMD SB600 RRG] (Register Reference Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46156_sb600_rpr_pub_3.02b.pdf AMD SB600 RPR] (Register Programming Requirements)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/46157_sb600_bdg_pub300.pdf AMD SB600 BDG] (BIOS Developer's Guide)&lt;br /&gt;
* [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/42119_sb600_ds_3.05.pdf AMD SB600 Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD SB700/SB710/SB750 ==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/assets/43009_sb7xx_rrg_pub_1.00.pdf AMD SB700/710/750 Register Reference Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/43366_sb7xx_bdg_pub_1.00.pdf AMD SB700/710/750 BIOS Developer’s Guide]&lt;br /&gt;
* [http://developer.amd.com/assets/42413_sb7xx_rpr_pub_1.00.pdf AMD SB700/710/750 Register Programming Requirements]&lt;br /&gt;
* [http://developer.amd.com/assets/45215_sb710_ds_pub_1.25.pdf AMD SB710 Databook]&lt;br /&gt;
&lt;br /&gt;
== AMD SB800 ==&lt;br /&gt;
Not available yet, but here are the numbers for the documents we'd like to get. I found these numbers with a creative internet search.&lt;br /&gt;
&lt;br /&gt;
* AMD SB800 Databook (Publication #44758)&lt;br /&gt;
&lt;br /&gt;
= Super I/O =&lt;br /&gt;
&lt;br /&gt;
== ITE ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 PC Desktop/Notebook Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=5 Desktop Super I/Os]&lt;br /&gt;
** [http://www.ite.com.tw/EN/products_kind.aspx?CategoryID=3&amp;amp;ID=6 Notebook Super I/Os]&lt;br /&gt;
&lt;br /&gt;
== Winbond / Nuvoton ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/ISASuperIO/ ISA Super I/Os]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/LPCSuperIOforDesktopAndServer/ LPC Super I/O for Desktop &amp;amp; Server]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforDesktop/ Advanced Super I/O for Desktop]&lt;br /&gt;
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ComputerIC/SuperIO/AdvancedSuperIOforNotebook/ Advanced Super I/O for Notebook]&lt;br /&gt;
&lt;br /&gt;
== Fintek ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.fintek.com.tw/eng/products.asp?BID=1&amp;amp;SID=17&amp;amp;layer=0 Super Hardware Monitor + SIO]&lt;br /&gt;
&lt;br /&gt;
== NSC ==&lt;br /&gt;
&lt;br /&gt;
(bought by Winbond, now Nuvoton)&lt;br /&gt;
&lt;br /&gt;
== ALi ==&lt;br /&gt;
&lt;br /&gt;
== SMSC ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.smsc.com/main/catalog/ioprods.html Products / datasheets overview]&lt;br /&gt;
* [http://www.smsc.com/main/datasheet.html Various product datasheets]&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
* [http://www.amd.com/us-en/Processors/TechnicalResources/1,,30_182_739,00.html AMD public documents]&lt;br /&gt;
** The [http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_15872,00.html AMD64 Embedded Processors and Chipset Linux Support] web page features links to supported projects (like coreboot) and links to documentation.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
There are many datasheet archives on the web which may have other (usually older) datasheets which already disappeared from vendor websites.&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/GSoC</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/GSoC"/>
				<updated>2010-03-07T00:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: GSoC 2010&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Google Summer of Code 2010 =&lt;br /&gt;
&lt;br /&gt;
This year, coreboot and flashrom are applying as one big project.&lt;br /&gt;
&lt;br /&gt;
== Deadlines ==&lt;br /&gt;
&lt;br /&gt;
http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs#timeline&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
=== coreboot ===&lt;br /&gt;
&lt;br /&gt;
* coreboot port to AMD 800 series chipsets (probably too big of a task)&lt;br /&gt;
* coreboot mass-porting to AMD 780 series mainboards (if the code is available until then)&lt;br /&gt;
* coreboot panic room (maybe just reuse the SerialICE core, too small project for full GSoC)&lt;br /&gt;
* coreboot cheap testing rig which works with the existing board test infrastructure&lt;br /&gt;
* coreboot GeodeLX port from v3 to v4&lt;br /&gt;
&lt;br /&gt;
=== flashrom ===&lt;br /&gt;
&lt;br /&gt;
Note: The list below is an idea collection. Many of the projects are simple enough to serve only as partial GSoC task&lt;br /&gt;
&lt;br /&gt;
* flashrom text mode GUI&lt;br /&gt;
* flashrom graphics mode GUI (Sean Nelson has preliminary code)&lt;br /&gt;
* flashrom as payload&lt;br /&gt;
* flashrom under DOS&lt;br /&gt;
* flashrom remote flashing for coreboot panic room mode&lt;br /&gt;
* flashrom remote flashing with modified SerialICE&lt;br /&gt;
* flashrom support for Nvidia SPI chipset hardware&lt;br /&gt;
* flashrom support for Paraflasher hardware&lt;br /&gt;
* flashrom support for RayeR SPIPGM hardware&lt;br /&gt;
* flashrom support for Willem hardware&lt;br /&gt;
* flashrom support for some-yet-uninvented cheap universal LPC/FWH/SPI flasher hardware&lt;br /&gt;
* flashrom support for bitbanging LPC/FWH&lt;br /&gt;
* flashrom support for bitbanging Parallel&lt;br /&gt;
* flashrom support for partial reflashing&lt;br /&gt;
* flashrom support for automatic recovery in case something goes wrong&lt;br /&gt;
* flashrom support for embedded controllers (ECs) in laptops&lt;br /&gt;
&lt;br /&gt;
== Student requirements ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2009 =&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/images/2009socwithlogo.gif&lt;br /&gt;
&lt;br /&gt;
Welcome to the [http://code.google.com/soc/ Google Summer of Code(tm)] page of the [[Welcome to coreboot|coreboot project]]. Apply for a coreboot GSoC project at http://socghop.appspot.com/.&lt;br /&gt;
&lt;br /&gt;
= Your own Projects =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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!&lt;br /&gt;
&lt;br /&gt;
Feel free to contact us at the email address below, and don't hesitate to suggest whatever you have in mind.&lt;br /&gt;
&lt;br /&gt;
= Possible ideas =&lt;br /&gt;
&lt;br /&gt;
== Infrastructure for automatic code checking ==&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* 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?)&lt;br /&gt;
* Make code lint clean (and maybe extend lint to not fall into our traps), and run lint over the tree. Report regressions&lt;br /&gt;
* Use LLVM's static code checking facilities, report regressions.&lt;br /&gt;
* Work on code coverage support for coreboot code (dump data into ram, or via serial. Provide tools to fetch it). Analyse that data.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* LLVM tools: [http://clang.llvm.org/StaticAnalysis.html Clang static analyser], [http://llvm.org/ProjectsWithLLVM/#Calysto SSA assertion checker]&lt;br /&gt;
* Lint tools: [http://lclint.cs.virginia.edu/ Splint]&lt;br /&gt;
* Coverage: [http://ltp.sourceforge.net/test/coverage/lcov.php LCOV], [http://ggcov.sourceforge.net GGCOV]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:PatrickGeorgi|Patrick Georgi]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
&lt;br /&gt;
== TianoCore on coreboot ==&lt;br /&gt;
&lt;br /&gt;
[http://www.tianocore.org/ 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.&lt;br /&gt;
&lt;br /&gt;
This project requires no hardware skills, but especially in case of TianoCore might require knowledge of Windows compilers (VC2005?)&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [http://www.tianocore.org/ Tiano Core]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
* [[User:Rminnich|Ron Minnich]]&lt;br /&gt;
* [[User:Stepan|Stefan Reinauer]]&lt;br /&gt;
* [[User:MJones|Marc Jones]]&lt;br /&gt;
&lt;br /&gt;
= Previous Summer of Code projects =&lt;br /&gt;
&lt;br /&gt;
We successfully participated in Google's Summer of Code in 2007 and 2008. See our [[Previous GSoC Projects|list of previous GSoC projects]].&lt;br /&gt;
&lt;br /&gt;
= Why work for coreboot =&lt;br /&gt;
&lt;br /&gt;
Why would you like to work for coreboot?&lt;br /&gt;
&lt;br /&gt;
* coreboot offers you the opportunity to work with modern technology &amp;quot;right on the iron&amp;quot;.&lt;br /&gt;
* Your application will be available to users worldwide and promoted along with all other coreboot projects.&lt;br /&gt;
* We are a very passionate team - so you will interact directly with the project initiators and project leaders. &lt;br /&gt;
* We have a large, helpful community. Over 100 experts in hardware and firmware lurk on our mailing list, many of them waiting to help you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Summer of Code Application =&lt;br /&gt;
&lt;br /&gt;
Please complete the standard [http://code.google.com/soc/ Google SoC 2008 application]. Additionally, please provide information on the following:&lt;br /&gt;
&lt;br /&gt;
# Who are you? What are you studying?&lt;br /&gt;
# Why are you the right person for this task?&lt;br /&gt;
# Do you have any other commitments that we should know about?&lt;br /&gt;
# List your C, Assembler and hardware experience.&lt;br /&gt;
# List your history with open source projects.&lt;br /&gt;
# What is your preferred method of contact? (Phone, email, Skype, etc) &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== How to apply ==&lt;br /&gt;
&lt;br /&gt;
The Drupal project has a great page on [http://drupal.org/node/59037 How to write an SOC application].&lt;br /&gt;
&lt;br /&gt;
Please also read Google's [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Students].&lt;br /&gt;
&lt;br /&gt;
== Some Caveats ==&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 &amp;quot;community bonding period&amp;quot; between acceptance and official start. Also, you must have made progress and committed significant code before the mid-term point.&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
== Time Frame ==&lt;br /&gt;
&lt;br /&gt;
'''DEADLINE FOR STUDENT APPLICATIONS:''' Students who are interested in working on a coreboot-related GSoC project must apply between '''March 23, 2009''' and '''April 3, 2009'''! If you want to apply, please get in contact with us right away!&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
If you are interested in becoming a GSoC student, please contact [mailto:stepan@coresystems.de Stefan Reinauer].&lt;br /&gt;
&lt;br /&gt;
There is also an IRC channel on irc.freenode.net: #coreboot&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Reverse_Engineering_PCI_Drivers</id>
		<title>Reverse Engineering PCI Drivers</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Reverse_Engineering_PCI_Drivers"/>
				<updated>2010-02-25T00:46:29Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Decoding traces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;by Vikram Ambrose -- [[User:Vambrose|Vambrose]] 01:44, 22 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Getting traces==&lt;br /&gt;
This is a short guide demonstrating how I used the PCI Passthrough framework in KVM  to reverse engineer atiflash.exe – a video BIOS flashing tool for DOS.&lt;br /&gt;
&lt;br /&gt;
atiflash.exe is a real dos application that flashes the video BIOS on ATi graphics cards. There are numerous ATi video BIOS flashing tools for Windows, but none for Linux as the code for doing this has not been made publicly available by AMD.&lt;br /&gt;
&lt;br /&gt;
This technique allowed me to trace all PCI configuration space and memory mapped i/o (mmio) accesses to the PCI-E device from the closed source flashing tool.&lt;br /&gt;
&lt;br /&gt;
Tools needed:&lt;br /&gt;
* CPU with virtualisation support (eg, AMD-V, Intel VT-x, an IOMMU is not necessary)&lt;br /&gt;
* Newer-the-better Linux kernel with KVM support&lt;br /&gt;
* Special KVM branch of QEMU (git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git)&lt;br /&gt;
* Guest operating system (I used FreeDOS from UBCD - http://www.ultimatebootcd.com/)&lt;br /&gt;
* Secondary video card to boot Linux with while the Radeon is used in the virtual machine&lt;br /&gt;
&lt;br /&gt;
In order to give the virtual machine direct pci access, the host operating system cannot register a driver for the device. In my case, this simply meant blacklisting the radeon and drm kernel modules.&lt;br /&gt;
&lt;br /&gt;
All the tracing is done from QEMU. Using the special qemu-kvm branch mentioned above, go into qemu-kvm/hw/device-assignments.c and ensure:&lt;br /&gt;
&lt;br /&gt;
  #define DEVICE_ASSIGNMENT_DEBUG 1 &lt;br /&gt;
&lt;br /&gt;
This will turn on logging for assigned_dev_pci_{read,write}_config() functions (Config space) and slow_bar_read{b,w,l} and slow_bar_write{b,w,l} functions (MMIO). You may also want to add d-&amp;gt;e_physbase to the prints to get the physical assigned address.&lt;br /&gt;
&lt;br /&gt;
In order to trace the write commands to the ROM space, you will need to write your own _write{b,w,l} functions. Eg:&lt;br /&gt;
  static void slow_rom_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)&lt;br /&gt;
  {&lt;br /&gt;
      DEBUG(&amp;quot; addr=0x&amp;quot; TARGET_FMT_plx &amp;quot; val=0x%02x\n&amp;quot;, addr, val);&lt;br /&gt;
  }&lt;br /&gt;
  ...&lt;br /&gt;
  static CPUWriteMemoryFunc * const slow_rom_write[] = {&lt;br /&gt;
     &amp;amp;slow_rom_writeb,&lt;br /&gt;
     &amp;amp;slow_rom_writew,&lt;br /&gt;
     &amp;amp;slow_rom_writel&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Then register your function array in assigned_dev_iomem_map_slow(), Eg:&lt;br /&gt;
  ...&lt;br /&gt;
     if (region_num == PCI_ROM_SLOT)&lt;br /&gt;
  -        m = cpu_register_io_memory(slow_bar_read, NULL, region);&lt;br /&gt;
  +        m = cpu_register_io_memory(slow_bar_read, slow_rom_write, region);&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Now modify assigned_dev_register_regions() to get QEMU to use the slow path otherwise KVM will let the guest write directly to the device.&lt;br /&gt;
  ...&lt;br /&gt;
        if (cur_region-&amp;gt;type &amp;amp; IORESOURCE_MEM) {&lt;br /&gt;
  -            int slow_map = 0;&lt;br /&gt;
  +            int slow_map = 1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
You can also get the Programmed I/O (PIO) by logging assigned_dev_ioport_{read,write)*(), but otherwise this should give you a good idea of what the flashing tool is doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now use lspci to get the location of the PCI device:&lt;br /&gt;
  02:00.0 VGA compatible controller: ATI Technologies Inc RV770 [Radeon HD 4870]&lt;br /&gt;
  02:00.1 Audio device: ATI Technologies Inc HD48x0 audio&lt;br /&gt;
&lt;br /&gt;
Pass the device to qemu, along with your virtual machine disk image. Eg;&lt;br /&gt;
&lt;br /&gt;
  qemu-system-x86 -hda disk.img -cdrom ubcd411.iso -boot order=d -pcidevice host=02:00:0,dma=none&lt;br /&gt;
&lt;br /&gt;
Run the flashing tool from the VM and watch the traces appear on the console.&lt;br /&gt;
&lt;br /&gt;
==Decoding traces==&lt;br /&gt;
Here are some traces from my trials (graciously decoded by Carl-D):&lt;br /&gt;
* http://coreboot.pastebin.com/f73df946c&lt;br /&gt;
* http://coreboot.pastebin.com/f3b85711d (complete decode with comments)&lt;br /&gt;
* http://coreboot.pastebin.com/f6c21856e&lt;br /&gt;
* http://coreboot.pastebin.com/YMYkrZGs (automated decode)&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Useful links:&lt;br /&gt;
* VGA Bios database - http://www.techpowerup.com/vgabios/&lt;br /&gt;
* Chapter 12, PCI device drivers of &amp;quot;Linux Device Drivers (3rd Edition)&amp;quot; by J.Corbet et al, downloadable for free from - http://lwn.net/Kernel/LDD3/&lt;br /&gt;
* If you would like to use the same technique on a native Linux application/driver, see the mmiotrace project - http://nouveau.freedesktop.org/wiki/MmioTrace &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Special thanks go out to Carl-Daniel Hailfinger, Twice#11 and the entire KVM and QEMU team for making this possible.''&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	<entry>
		<id>http://www.coreboot.org/Reverse_Engineering_PCI_Drivers</id>
		<title>Reverse Engineering PCI Drivers</title>
		<link rel="alternate" type="text/html" href="http://www.coreboot.org/Reverse_Engineering_PCI_Drivers"/>
				<updated>2010-02-24T23:20:20Z</updated>
		
		<summary type="html">&lt;p&gt;Hailfinger: /* Decoding traces */ one more trace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;by Vikram Ambrose -- [[User:Vambrose|Vambrose]] 01:44, 22 February 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Getting traces==&lt;br /&gt;
This is a short guide demonstrating how I used the PCI Passthrough framework in KVM  to reverse engineer atiflash.exe – a video BIOS flashing tool for DOS.&lt;br /&gt;
&lt;br /&gt;
atiflash.exe is a real dos application that flashes the video BIOS on ATi graphics cards. There are numerous ATi video BIOS flashing tools for Windows, but none for Linux as the code for doing this has not been made publicly available by AMD.&lt;br /&gt;
&lt;br /&gt;
This technique allowed me to trace all PCI configuration space and memory mapped i/o (mmio) accesses to the PCI-E device from the closed source flashing tool.&lt;br /&gt;
&lt;br /&gt;
Tools needed:&lt;br /&gt;
* CPU with virtualisation support (eg, AMD-V, Intel VT-x, an IOMMU is not necessary)&lt;br /&gt;
* Newer-the-better Linux kernel with KVM support&lt;br /&gt;
* Special KVM branch of QEMU (git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git)&lt;br /&gt;
* Guest operating system (I used FreeDOS from UBCD - http://www.ultimatebootcd.com/)&lt;br /&gt;
* Secondary video card to boot Linux with while the Radeon is used in the virtual machine&lt;br /&gt;
&lt;br /&gt;
In order to give the virtual machine direct pci access, the host operating system cannot register a driver for the device. In my case, this simply meant blacklisting the radeon and drm kernel modules.&lt;br /&gt;
&lt;br /&gt;
All the tracing is done from QEMU. Using the special qemu-kvm branch mentioned above, go into qemu-kvm/hw/device-assignments.c and ensure:&lt;br /&gt;
&lt;br /&gt;
  #define DEVICE_ASSIGNMENT_DEBUG 1 &lt;br /&gt;
&lt;br /&gt;
This will turn on logging for assigned_dev_pci_{read,write}_config() functions (Config space) and slow_bar_read{b,w,l} and slow_bar_write{b,w,l} functions (MMIO). You may also want to add d-&amp;gt;e_physbase to the prints to get the physical assigned address.&lt;br /&gt;
&lt;br /&gt;
In order to trace the write commands to the ROM space, you will need to write your own _write{b,w,l} functions. Eg:&lt;br /&gt;
  static void slow_rom_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)&lt;br /&gt;
  {&lt;br /&gt;
      DEBUG(&amp;quot; addr=0x&amp;quot; TARGET_FMT_plx &amp;quot; val=0x%02x\n&amp;quot;, addr, val);&lt;br /&gt;
  }&lt;br /&gt;
  ...&lt;br /&gt;
  static CPUWriteMemoryFunc * const slow_rom_write[] = {&lt;br /&gt;
     &amp;amp;slow_rom_writeb,&lt;br /&gt;
     &amp;amp;slow_rom_writew,&lt;br /&gt;
     &amp;amp;slow_rom_writel&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
Then register your function array in assigned_dev_iomem_map_slow(), Eg:&lt;br /&gt;
  ...&lt;br /&gt;
     if (region_num == PCI_ROM_SLOT)&lt;br /&gt;
  -        m = cpu_register_io_memory(slow_bar_read, NULL, region);&lt;br /&gt;
  +        m = cpu_register_io_memory(slow_bar_read, slow_rom_write, region);&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Now modify assigned_dev_register_regions() to get QEMU to use the slow path otherwise KVM will let the guest write directly to the device.&lt;br /&gt;
  ...&lt;br /&gt;
        if (cur_region-&amp;gt;type &amp;amp; IORESOURCE_MEM) {&lt;br /&gt;
  -            int slow_map = 0;&lt;br /&gt;
  +            int slow_map = 1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
You can also get the Programmed I/O (PIO) by logging assigned_dev_ioport_{read,write)*(), but otherwise this should give you a good idea of what the flashing tool is doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now use lspci to get the location of the PCI device:&lt;br /&gt;
  02:00.0 VGA compatible controller: ATI Technologies Inc RV770 [Radeon HD 4870]&lt;br /&gt;
  02:00.1 Audio device: ATI Technologies Inc HD48x0 audio&lt;br /&gt;
&lt;br /&gt;
Pass the device to qemu, along with your virtual machine disk image. Eg;&lt;br /&gt;
&lt;br /&gt;
  qemu-system-x86 -hda disk.img -cdrom ubcd411.iso -boot order=d -pcidevice host=02:00:0,dma=none&lt;br /&gt;
&lt;br /&gt;
Run the flashing tool from the VM and watch the traces appear on the console.&lt;br /&gt;
&lt;br /&gt;
==Decoding traces==&lt;br /&gt;
Here are some traces from my trials (graciously decoded by Carl-D):&lt;br /&gt;
* http://coreboot.pastebin.com/f73df946c&lt;br /&gt;
* http://coreboot.pastebin.com/f3b85711d (complete decode with comments)&lt;br /&gt;
* http://coreboot.pastebin.com/f6c21856e&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Useful links:&lt;br /&gt;
* VGA Bios database - http://www.techpowerup.com/vgabios/&lt;br /&gt;
* Chapter 12, PCI device drivers of &amp;quot;Linux Device Drivers (3rd Edition)&amp;quot; by J.Corbet et al, downloadable for free from - http://lwn.net/Kernel/LDD3/&lt;br /&gt;
* If you would like to use the same technique on a native Linux application/driver, see the mmiotrace project - http://nouveau.freedesktop.org/wiki/MmioTrace &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Special thanks go out to Carl-Daniel Hailfinger, Twice#11 and the entire KVM and QEMU team for making this possible.''&lt;/div&gt;</summary>
		<author><name>Hailfinger</name></author>	</entry>

	</feed>