Difference between revisions of "User:GNUtoo/Blobs-rewrite"

From coreboot
Jump to: navigation, search
(Definition)
(Definition)
Line 6: Line 6:
 
== Definition ==
 
== Definition ==
 
In computing, blobs has [https://en.wikipedia.org/wiki/Blob#In_computing several meanings]. Here we are  only talking about [https://en.wikipedia.org/wiki/Binary_blob Binary blobs]
 
In computing, blobs has [https://en.wikipedia.org/wiki/Blob#In_computing several meanings]. Here we are  only talking about [https://en.wikipedia.org/wiki/Binary_blob Binary blobs]
 +
TODO: Give explanation with examples of it in coreboot. Some blobs are extracted. (different vendor, partitions or filesystem-like)
  
 
== Introduction ==
 
== Introduction ==

Revision as of 16:18, 17 February 2017

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

In computing, blobs has several meanings. Here we are only talking about Binary blobs TODO: Give explanation with examples of it in coreboot. Some blobs are extracted. (different vendor, partitions or filesystem-like)

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].

Coreboot and blobs

  • Coreboot doesn't respect the FSF's Free software distributions guidelines. <ADD WHY>
  • Libreboot, which is a coreboot distribution is.
  • RYF != FSDG

Why coreboot is important

  • Removing blobs was possible thanks to coreboot
  • probably not everybody uses coreboot for freedom purposes
  • on a given hardware => limits the damage (harm reduction techique) => Better to buy and use good hardware though

Blobs

Classification, and descriptions of the blobs and what they can do and in what context they run (SMM?):

  • FSP/AGESA
  • ME/PSP
  • EC

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.