summaryrefslogtreecommitdiff
path: root/firmware/README
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/README')
-rw-r--r--firmware/README45
1 files changed, 40 insertions, 5 deletions
diff --git a/firmware/README b/firmware/README
index ac35e93b..754edf1b 100644
--- a/firmware/README
+++ b/firmware/README
@@ -1,8 +1,43 @@
-arch/ is stuff that defines the architecture-dependent information (only used in
-firmware build mode).
-lib/ is stuff that the BIOS needs to link with.
+Here's what's what in the firmware/ directory.
-stub/ is stuff to be implemented by the BIOS.
+include/
+lib/
-include/ describes the interfaces between the two parts.
+ These are the original structures and APIs used in the earliest
+ Chromebooks and continuing through 2014. It never had a version as such to
+ begin with, but we now refer to this implementation as "vboot1" or
+ "vboot version 1.0".
+
+linktest/
+stub/
+
+ These are stubs used to link the vboot1 libraries into host-side test
+ executables so we can run some tests on the build machine instead of a
+ Chromebook.
+
+2lib/
+
+ In 2014 we began work on a new vboot API. The first step was just a
+ refactoring and renaming of the verification API. The public functions and
+ external headers that are exported for use by the Chrome OS firmware (or
+ anything else that wants to use vboot) live in here. The internal
+ structures and implementations go elsewhere.
+
+lib20/
+
+ This is an early implementation of the public (2lib/) API. It is
+ binary-compatible with vboot1, so although the interface details are
+ different, any existing on-device structures or signatures created by the
+ vboot1 tools can be validated using this implementation.
+
+ This was deployed slightly before it was ready. That's not a problem,
+ thanks to the binary compatibility, but this directory will be abandoned
+ Real Soon Now, except for the product support branches.
+
+lib21/
+
+ This is where the current development of the second-generation vboot API
+ is taking place. It uses the public (2lib/) API, but will NOT be binary
+ compatible with vboot1 structs. Because of the early release of the lib20
+ stuff, we're actually calling this lib21.