User:GNUtoo/Blobs-rewrite

From coreboot
< User:GNUtoo
Revision as of 15:56, 17 February 2017 by GNUtoo (talk | contribs) (Goals)
Jump to: navigation, search

Goals

  • Use as little jargon as possible, in order to be understandable by a broader audience.
  • Still be technically correct.
  • Try to be vendor neutral: ME/PSP FSP/AGESA, etc

Definition

TODO: Explain why and what is a blob.

Introduction

In coreboot, over time:

  • Some older devices's blobs gets replaced by free software:
    • The I945 Thinkpads required a Video BIOS not to have a black screen during boot. Now there is a free software replacement for it.
    • Many recent Intel devices required a proprietary software Intel blob to initialize the RAM. Now it has been replaced on many devices by free software.
  • The newer x86 devices that are added in coreboot tend to require more and more blobs:
    • Some newer devices depends on the intel FSP blob, which take care of initializing almost everything, leaving almost nothing to do to coreboot.
    • On most recent Intel devices, a non-free and signed Management Engine firmware is required.

The ability to replace blobs depends on:

  • The availability of documentation and/or source code: With good documentation or source code it is several order of magnitude easier to write free software implementation. Without that, developers have to first understand how the hardware works before writing any code, that can be a very tedious and very long work.
  • The ability to run the replacement: Many manufacturers will try to prevent the users from running code not approved by them. If this is the case, the only hope is to find flaws that either permit the user to run the code they wish[1].

References

  1. In some cases, it is also possible to prevent a chip from loading and running code. In the case of the management engine, this is desirable.