History log of /external/vboot_reference/Makefile
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4e4c19602edf3834b50d66d3ba067e895aca6fa0 04-Feb-2015 Bill Richardson <wfrichar@chromium.org> futility: Add create command to make keypairs from RSA files

This command reads a single .pem file and emits the public and
private keys generated from it. It can produce both the old-style
vboot 1.0 keys (.vbpubk and .vbprivk), or the new vboot 2.1
format keys (.vbpubk2 and .vbprik2). The default is the new
format, but you can give futility the --vb1 arg to force the old
format.

A test is included.

BUG=chromium:231547
BRANCH=ToT
TEST=make runtests

Change-Id: I4713dc5bf34151052870f88ba52ddccf9d4dab50
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/246766
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
822120106c963b43c3d303a791f8dd8731d0888e 27-Feb-2015 Bill Richardson <wfrichar@chromium.org> Do not litter the source directory with build artifacts

Before, building locally left a file named "vboot_host.pc" in the
top directory.

With this change, it's put into the $BUILD directory where it
belongs.

It still gets installed into the same place, of course.

BUG=chromium:459338
BRANCH=none
TEST=make runtests, and

Run:

make test_setup MINIMAL=
make test_setup MINIMAL=1
find . -name vboot_host.pc

Before this CL:

./build/install_for_test/usr/lib/pkgconfig/vboot_host.pc
./build/install_for_test/lib/pkgconfig/vboot_host.pc
./vboot_host.pc

After this CL:

./build/install_for_test/usr/lib/pkgconfig/vboot_host.pc
./build/install_for_test/lib/pkgconfig/vboot_host.pc
./build/vboot_host.pc

Change-Id: I3a888f72a5753228eec5187178d0da22de782171
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/254712
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Nam Nguyen <namnguyen@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
0840b842c1609accee80b148bc26f5e84f42e309 05-Feb-2015 Bill Richardson <wfrichar@chromium.org> Fix some Makefile dependencies for parallel tests

make runtests -j4 occasionally failed due to missing
dependencies. This helps. Of course, there may be others...

BUG=none
BRANCH=ToT
TEST=make runtests -j4

Change-Id: Iff6e96f94b125a16be76d8cf34ce473bf6c65fe5
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/246764
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
9d437e9122019568df7fa2d602f911e6a873d78b 19-Feb-2015 Anatol Pomazau <anatol@google.com> Remove duplicated linker flag

We already set '-static' to LDFLAGS above no need to do it again here.

TEST=build with 'make' and 'make STATIC=1'. Check that 'STATIC=1' adds '-static' linker flag.
BUG=None

Change-Id: I83e23984753094af203432eb4570930085788398
Reviewed-on: https://chromium-review.googlesource.com/251151
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Anatol Pomazau <anatol@google.com>
Commit-Queue: Anatol Pomazau <anatol@google.com>
Tested-by: Anatol Pomazau <anatol@google.com>
/external/vboot_reference/Makefile
317bb498a697ae49f070e3ca46100b879f25aa1b 20-Feb-2015 Zach Reizner <zachr@chromium.org> vboot2: add library function for extracting vmlinuz from kernel part

postinst needs access to a kernel that is bootable from legacy BIOS.
futility provides extraction of a bootable vmlinuz from the kernel
partition via the command line. This patch provides a function which
does the same thing and is suitable for static linking into postinst
with minimal additonal code linked in. This way we can avoid issues with
running dynamic executables during postinst.

BRANCH=none
TEST=None
BUG=chromium:455343

Change-Id: Iaec2f48e4d8f78a4bbfcc1636b6ce478e95e9a8e
Reviewed-on: https://chromium-review.googlesource.com/251760
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
/external/vboot_reference/Makefile
f44ebbe36b2c1603437edc57b534244e89bfcd9c 12-Feb-2015 Nam T. Nguyen <namnguyen@chromium.org> vboot_reference: Support MTD devices in dump_kernel_config

This CL implements a read function that works with MTD devices in
dump_kernel_config.

BUG=chromium:457862
BRANCH=none
TEST=make runtests
TEST=try on storm_nand

Change-Id: Id784d422de64e7918b163005c0b426d727d2115e
Reviewed-on: https://chromium-review.googlesource.com/249271
Reviewed-by: Nam Nguyen <namnguyen@chromium.org>
Commit-Queue: Nam Nguyen <namnguyen@chromium.org>
Trybot-Ready: Nam Nguyen <namnguyen@chromium.org>
Tested-by: Nam Nguyen <namnguyen@chromium.org>
/external/vboot_reference/Makefile
07d9043da43ddce10406f56a040fb5a240747282 17-Feb-2015 Nam T. Nguyen <namnguyen@chromium.org> vboot_reference: Install vboot_host.pc file

Since we are going to pull in libmtdutils, it would be nice to let
downstream packages automatically query for appropriate linking flags.

BUG=chromium:459338
BRANCH=None
CQ-DEPEND=CL:250836
TEST=See the depending CL.

Change-Id: I9ff8046b95e1d7e909a483fe87a69d460777e192
Reviewed-on: https://chromium-review.googlesource.com/250530
Commit-Queue: Nam Nguyen <namnguyen@chromium.org>
Trybot-Ready: Nam Nguyen <namnguyen@chromium.org>
Tested-by: Nam Nguyen <namnguyen@chromium.org>
Reviewed-by: Nam Nguyen <namnguyen@chromium.org>
/external/vboot_reference/Makefile
05987b159acb9737707b9ef92b818ac434ef8c3d 06-Feb-2015 David Riley <davidriley@chromium.org> Changes to compile signing tools on darwin

The following works from a Mac with these changes:
make Q= ARCH=arm HAVE_MACOS=1 `pwd`/build/futility/futility

Only vbutil_keyblock and vbutil_kernel have been exercised.

BUG=none
TEST='make Q= ARCH=arm HAVE_MACOS=1 `pwd`/build/futility/futility'
BRANCH=none

Signed-off-by: David Riley <davidriley@chromium.org>

Change-Id: Ie69cfee0c650d4ff96be6322083a2fea1543ee39
Reviewed-on: https://chromium-review.googlesource.com/246773
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Commit-Queue: David Riley <davidriley@chromium.org>
/external/vboot_reference/Makefile
04d98e399d034656770e0049613d09ef3ea6d2d0 31-Jan-2015 Bill Richardson <wfrichar@chromium.org> Restore lost dependencies

Oops. Somehow the Makefile stopped including the generated
dependencies. As long as we're building from scratch this didn't
matter, but rebuilding following local changes wouldn't always
work. Let's fix it.

BUG=none
BRANCH=none
TEST=make runtests

Change-Id: I80bd30d1847734a288cddf61f28bb33ae9906525
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/245501
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
62d482ecddf5735076a085859cf40fcfa24671ee 29-Jan-2015 Daisuke Nojiri <dnojiri@chromium.org> add vb2api_get_pcr_digest

this api allows firmware to get the digest indicating boot mode status.

BUG=chromium:451609
TEST=VBOOT2=1 make run2tests
BRANCH=tot

Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Change-Id: Idca7bc5f6aed947689ad7cf219805aad35047c7d
Reviewed-on: https://chromium-review.googlesource.com/244542
/external/vboot_reference/Makefile
2559338dbdacbcbd3ae426337403196135bbc7e8 30-Jan-2015 Bill Richardson <wfrichar@chromium.org> futility: refactor file type detection into new files

This moves the what-kind-of-file-is-this logic into a separate
file, and makes it work by calling distinct recognizers until one
hits. A new "-t" option to the show command prints what it's
doing.

BUG=chromium:228932
BRANCH=ToT
TEST=make runtests

Change-Id: Id8f60bdf3fe6a9adf41b4555b3448a261fa52fea
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/245122
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
8db64da0926e95c4cc19145e911aa270e06a83c0 30-Jan-2015 Bill Richardson <wfrichar@chromium.org> Don't include lib20 files in xrefs

The vboot 2.0 stuff is deprecated, so let's not index that when
building cross-references (cscope.files and TAGS).

BUG=none
BRANCH=ToT
TEST=manual

make xrefs

Change-Id: If3a9c42f869308acd929e32d5290e3354f5c3555
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/244751
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
06eb78c0f64c898c8d564b3efbffe349a8ae79b2 28-Jan-2015 Bill Richardson <wfrichar@chromium.org> Rename Makefile's fwlib2 target to fwlib20.

This accurately reflects what's really happening. Vboot 2.0 is
backwards-compatible with the binary structs used in vboot 1.0,
while vboot 2.1 will not be.

When building firmware, vboot_reference should be invoked in one
of three ways:

TARGET OUTPUT VERSION

fwlib vboot_fw.a 1.0
fwlib20 vboot_fw20.a 2.0
fwlib21 vboot_fw21.a 2.1

BUG=chromium:228932
BRANCH=ToT
CQ-DEPEND=CL:243981
TEST=manual

emerge-veyron_pinky coreboot
emerge-samus coreboot
emerge-daisy_spring chromeos-u-boot

make runtests

Change-Id: I98d8ea6b48e5922a470e744d56699cad43eabb3d
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/243980
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
5fb14634b9f7618592b9e88d9aa74b2111f15ee1 27-Jan-2015 Bill Richardson <wfrichar@chromium.org> futility: extract vb2_verify_fw to an external test

The vb2_verify_fw command is used only in a host-side test. It
doesn't need to be built into futility. This makes it a separate
executable used just for that test.

BUG=chromium:231547
BRANCH=none
TEST=make VBOOT2=1 runtests

Note that tests/vb2_firmware_tests.sh still passes, now using an
external vb2_verify_fw executable instead of a futility command.

Change-Id: Iee58df065e7a762369c5e691f6c2093de9122ed2
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/243630
/external/vboot_reference/Makefile
f242ad0f6fcfc9dc9195af06fe79301a9bd74113 12-Dec-2014 Bill Richardson <wfrichar@chromium.org> futility: remove obsolete dev_sign_file command

This wasn't being used anywhere, so out it goes.

BUG=chromium:231457
BRANCH=none
TEST=make runtests

Change-Id: If3865f54ac29655ee7d520f00e618f490f25c619
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/235481
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
a77541f94f731f5f7755264e9b49b7826aa48dfe 05-Dec-2014 Bill Richardson <wfrichar@chromium.org> futility: extract verify_kernel command to an external test

The verify_kernel command is used only in a host-side test. It
doesn't need to be built into futility. This makes it a separate
executable used just for that test.

BUG=chromium:231547
BRANCH=none
TEST=make runtests

Note that the load_kernel_tests.sh still passes, using the
external verify_kernel executable.

Change-Id: I309d2561d65af7eb4f3708e9bc024852238deeec
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/235480
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
4dad690e082af98de8311566c197efbbfa1bc956 04-Dec-2014 Bill Richardson <wfrichar@chromium.org> futility: update the vbutil_kernel implementation

Now that the underlying bug is fixed (commit 64ef69c), this
replaces the old vbutil_kernel command implementation with the
new one that we rolled back in commit f1dba02.

BUG=chromium:418647
BRANCH=none
TEST=make runtests

I've also built an image with this change, installed it on a
Chromebook, ran make_dev_ssd.sh, make_dev_firmware.sh, recovered,
etc. Everything still works.

Change-Id: I8996e674a24b5d994658a6be2973ef3623cd659b
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/235429
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
d1236e4be6a7fe1c2b132ca8f63a513949d59775 08-Jan-2015 Nam T. Nguyen <namnguyen@chromium.org> Add cgpt_wrapper binary to transparently support NAND

This CL adds a "cgpt_wrapper" binary that will forward to "cgpt" binary
as needed to transparently support NAND.

The idea is that if we are working with an MTD device, this binary will
exec out to "flashrom" to read in the GPT section, then exec out to the
actual "cgpt" binary to work on that file, and finally write it back
with "flashrom".

This CL introduces a make target "install_mtd" to install this wrapper.
The corresponding ebuild should use this make target when "mtd" USE flag
is on.

BUG=chromium:442518
BRANCH=none
CQ-DEPEND=CL:239573
TEST=unittest and some trial runs with mtdram
TEST=test on a real device with NOR flash and NAND

Change-Id: I54534afa9a970ec858f313f698c0eb210c827477
Reviewed-on: https://chromium-review.googlesource.com/239580
Tested-by: Nam Nguyen <namnguyen@chromium.org>
Reviewed-by: Daniel Ehrenberg <dehrenberg@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Nam Nguyen <namnguyen@chromium.org>
/external/vboot_reference/Makefile
c8c87b3264e02df2842e20866f717607a07c5ab4 15-Jan-2015 Mike Frysinger <vapier@chromium.org> use ${} with make vars instead of $()

BUG=None
TEST=make still builds
BRANCH=none

Change-Id: Ie7292e4cc88338dc6544fd859028ce55557578b4
Reviewed-on: https://chromium-review.googlesource.com/241043
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@google.com>
/external/vboot_reference/Makefile
0b789c56fc5ff34309e935bab15f130a386a1140 15-Jan-2015 Mike Frysinger <vapier@chromium.org> integrate support for static builds

Add a STATIC knob to easily get static builds of all binaries.
We want this for the signer system.

We also need to fix the bmpblk utility to look up its libraries
via pkg-config.

BUG=chromium:447051
TEST=`make STATIC=1` works now
BRANCH=none

Change-Id: Icaef1f19f4618b0ce2b934735796749539081a02
Reviewed-on: https://chromium-review.googlesource.com/241041
Trybot-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@google.com>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
/external/vboot_reference/Makefile
32a999d2c0e5bf8a1c0f6141d3db77a1dcc6f5af 22-Nov-2014 Dan Ehrenberg <dehrenberg@chromium.org> vboot: Move IsEntryUnused to gpt_misc

Over in depthcharge, IsEntryUnused will be useful for presenting the
partition table to the kernel. This patch moves that function to
gpt_misc.[ch] for export to depthcharge.

TEST=Booted a kernel on NAND with all this compiled in
TEST=make runtests passed
BRANCH=none
BUG=none

Signed-off-by: Dan Ehrenberg <dehrenberg@google.com>
Change-Id: I56445d1a420fec4d8385ddffc5469b7d77eab576
Reviewed-on: https://chromium-review.googlesource.com/231455
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Daniel Ehrenberg <dehrenberg@chromium.org>
Tested-by: Daniel Ehrenberg <dehrenberg@chromium.org>
/external/vboot_reference/Makefile
cfe83a827d40b310003fc6996b9978d8cf301444 04-Dec-2014 Bill Richardson <wfrichar@chromium.org> Allow /etc/defaults/vboot_reference to customise some utilities

The dev_debug_vboot program can sometimes interfere with
automated firmware testing because it takes too long to read the
BIOS flash. Limiting the sections of flash that are read may
help, but in some cases skipping this program entirely may be
better.

This CL does three things:

1. dev_debug_vboot will read only some sections of the BIOS
flash, falling back to reading the whole thing only if it
fails at that.

2. dev_debug_vboot will source /etc/default/vboot_reference if it
exists. Putting DEV_DEBUG_FORCE=1 in that file will prevent
dev_debug_vboot from reading the flash at all unless it's
invoked with --force option.

3. The Makefile will create the /etc/default/vboot_reference file
in the install directory, setting DEV_DEBUG_FORCE to the value
in effect at build time. This will let a future CL change the
default behavior for each target.

BUG=chromium:438854
BRANCH=none
TEST=manual

Built and tested on Samus. /etc/default/vboot_reference was
present, containing "DEV_DEBUG_FORCE=". The dev_debug_vboot
script ran normally.

Manually changing /etc/default/vboot_reference to contain
"DEV_DEBUG_FORCE=1" and rebooting caused dev_debug_vboot to stop
before reading the BIOS flash.

I also manually forced various flashrom invocations to fail to
test each part of the new flow.

Change-Id: Ib319dd16b9026162d01f435f15570ec8ba99c512
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/233228
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
/external/vboot_reference/Makefile
6f1b82ac14f341d9733d6e95d518b3ee352002ef 03-Dec-2014 Randall Spangler <rspangler@chromium.org> vboot2: Move old struct handling to lib20/

This is part 4 of a series of changes to rearrange the vboot2 library
so that it's possible to start using the new-style data structs. This
change moves knowledge of the old vboot1 data structs into lib20; 2lib
now contains only code which is common to both vboot2.x libraries
(that is, code which is data structure version agnostic).

No functional changes; just rearranging code and tests.

BUG=chromium:423882
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests (works with/withoug VBOOT2 flag)
And compile firmware for veyron_pinky
CQ-DEPEND=CL:233051

Change-Id: I8f9e67157575e5be14952ef4809c3dfafd92596d
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/233021
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
108d991c678f80c99967bd07035de7418c81a072 03-Dec-2014 Randall Spangler <rspangler@chromium.org> vboot2: Move knowledge of vboot 2.1 data structures inside lib21/

Code which compiles against fwlib2 no longer knows or cares about the
new data structures. This should shrink fwlib2 a bit. This is part 3
of 4 changes which split vboot 2.0 struct handling (old vboot1
structs) from vboot 2.1 struct handling (new style structs).

No functional changes; just shuffling around code.

BUG=chromium:423882
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests (works with/withoug VBOOT2 flag)
And compile firmware for veyron_pinky.

Change-Id: Ibccd7d1974e07f38b90c19c924ef3b1ffcb77d62
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/233020
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
a5b69b02e039d7267390fea10266d45e14630559 02-Dec-2014 Randall Spangler <rspangler@chromium.org> vboot2: Move files which use new vboot 2.1 structs to their own directories

This is part 1 of a series of 4 changes which rearrange the vboot2
files and unit tests so that we can more cleanly switch over from
old-style structs to new-style structs.

No functional changes, just shuffling around code.

BUG=chromium:423882
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests (works with/withoug VBOOT2 flag)
And build firmware for veyron_pinky.

Change-Id: I170d737bf151a6bafe61cde23b3d2f7a3fae43ce
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232978
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
c86f0415a0dd1ddea4497e18813a2dd00dd0e3f4 02-Dec-2014 Randall Spangler <rspangler@chromium.org> vboot2: Clean up signing data for unit tests

Signing is now simple enough (thanks to full utility lib support for
vboot2 data structs) that we don't need the vb2_convert_structs module
anymore. Also, use the utility lib function to create a firmware
preamble, rather than duplicating that code in the fwlib unit tests.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests, and build firmware for veyron_pinky

Change-Id: I1db402a08621f79274d2a69095aebc3e84f4328d
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232755
/external/vboot_reference/Makefile
aaaff86467823e0d3d29c383402275eeae481256 02-Dec-2014 Randall Spangler <rspangler@chromium.org> Tidy vboot2-specific libraries and tests

Most importantly, make a vboot 2.0 utility library, rather than just
tossing all the vboot2 files into the main utility library. This will
allow creation of a vboot 2.1 library with overlapping symbol names.

BUG=chromium:423882
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests (works with/withoug VBOOT2 flag)
And build firmware for veyron_pinky.

Change-Id: I514bda18cb0fa62bbc507251219b02054c447f3c
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232753
/external/vboot_reference/Makefile
42a850059ca07f5e14fdf31990a35ad63e3f1bd8 25-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add host lib function to create a vb2-style firmware preamble

And associated unit tests

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I3bf6ff6c6e32dfd0dd737f9b04ff0546e9e0a463
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/231728
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
9328bbff521625e788396ef9c5b26b79e6d1a7cb 24-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add host lib function to create a vb2-style keyblock

Also add vb2_common_desc() helper function to return the description
for an object starting with a common struct header.

And use the new host lib function to create the keyblock for verifying
the firmware lib.

Add tests for everything new.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I1fadb3e249e771a692cc69b23620c6ddd46a48ac
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/231721
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
91852e7f58d50a031bcb5c02e68473cefb10ebb0 28-Nov-2014 Bill Richardson <wfrichar@chromium.org> futility: workaround for broken toolchain in static builds

The cros-compiler doesn't support backtrace(3) when linked
statically. Until that's fixed, just don't use it.

BUG=chromium:437107
BRANCH=ToT, samus
TEST=manual

FEATURES=test emerge-link vboot_reference
/build/link/usr/bin/futility_s gbb_utility -c 100,100,100,100 test.bin
/build/link/usr/bin/futility_s gbb_utility -s --hwid=HEY test.bin

Change-Id: I66b76fc8c0aa92f95976c5d5015f62730bb12064
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232234
Reviewed-by: Mike Frysinger <vapier@chromium.org>
/external/vboot_reference/Makefile
c644a8c0f2df024798ac0e60c6028261ed389a16 21-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add host library functions for signing to new struct format

Including signing with bare hashes, and signing an object with more
than one signature. With unit tests, even.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: Iad0b9f9f6cca7129071aebf0cbc60c0daa94d382
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/231452
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
fb9a216dd677d97f3d6963f668a9b84d349ef339 20-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add host lib support for bare hash keys

And use them in the other vboot2 unit tests.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I0c3590649a0acf792e41e295ca4279ccba17a41f
Reviewed-on: https://chromium-review.googlesource.com/231345
Tested-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
59c29202d2d67b97f587152b5457ed89f7430a77 17-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add host library functions to read/write new-format key objects

And unit tests for them.

BUG=chromium:423882
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests

Change-Id: I720bfb2537bae60f05b5ce28ab196a331a82eedf
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/230931
/external/vboot_reference/Makefile
02e11b323b819140590d99b6af440d36c12d161b 19-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add host library functions to read/write files and objects

And unit tests for them.

Move roundup32() into hostlib.

Fix WriteFile() returning success even if it failed to write to the file.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I8a115335c088dc5c66c88423d1ccbda7eaca1996
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/230844
/external/vboot_reference/Makefile
8577b5360ca4c9514d9091ed9aded2bb3193f1f0 25-Nov-2014 Nam T. Nguyen <namnguyen@chromium.org> vboot: Remove FTS code

flash_ts driver (from Android) was pulled to support Sonic. But now we
go a different route, this CL is to drop the FTS code.

BUG=chromium:436597
BRANCH=none
TEST=unittest

Change-Id: I86d6273f9f5f642b504ccb6a76e005cda12d0e78
Reviewed-on: https://chromium-review.googlesource.com/231896
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Nam Nguyen <namnguyen@chromium.org>
Tested-by: Nam Nguyen <namnguyen@chromium.org>
/external/vboot_reference/Makefile
efa37b87f2b4cd4b4f515e96201502ae0408cec7 13-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add api-level functions to use new data structures

And associated unit tests.

And fix a memory overwrite in the old vb_api_tests.c, which apparently
didn't touch a critical piece of the shared work buffer, but was still
wrong. (This was a problem in the test, not in the code being
tested.)

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I322fb7e6bb5214b0adcf5d6d48a0cd238abba88e
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/229738
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
ab899591808dd3e5f955ab7693b54a83389cd35f 14-Nov-2014 Nam T. Nguyen <namnguyen@chromium.org> vboot: cgpt: Treat drive_path as the GPT storage

Previously, "cgpt" called out to "flashrom" directly to read and write
NOR area. This CL removes that dependency and always treats "drive_path"
as the storage of GPT structs. This makes it consistent that whatever
device that cgpt reads from or writes to is always the device that
stores GPT structs. We only need to pass in the size of the drive that
contains the partitions, but we do not need to access to that drive.

More information is in the bug.

BUG=chromium:432611
BRANCH=none
TEST=unittest
CQ-DEPEND=CL:228942

Change-Id: Id0139adf70463cec4f2924de8b9a4725dbec822b
Reviewed-on: https://chromium-review.googlesource.com/229736
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Nam Nguyen <namnguyen@chromium.org>
Tested-by: Nam Nguyen <namnguyen@chromium.org>
/external/vboot_reference/Makefile
837b408c92d02108cbb16a97769675f39598d576 10-Nov-2014 Randall Spangler <rspangler@chromium.org> vboot2: load keyblock and preamble from new-style structs

And associated unit tests.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I6565d8f5da947b4874a656a61051df1a4ce415c7
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/229163
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
/external/vboot_reference/Makefile
6ee52d9a929d00e871e7316240b54f381146fbc6 24-Oct-2014 Nam T. Nguyen <namnguyen@chromium.org> vboot: cgpt: Support writing GPT structs to NOR flash

This CL allows the GPT headers and partition entry arrays to be stored
in a NOR flash device. Instead of treating both the NOR and NAND devices
as one (in a sandwich way), this CL writes and reads the GPT structs
independently of the actual device that houses the partitions.
Therefore, the first usable LBA of the partitions will be at 0, and the
last usable LBA is at the end of the NAND.

+------------------------+
| NOR houses GPT structs |
+------------------------+
|
0 | Index into
v v
+------------------------+
| NAND houses partitions |
+------------------------+

Note that the "my_lba", "alternate_lba", "entries_lba" in the GPT headers
are no longer meaningful.

Consumers of cgptlib will have to set "stored_on_device" to either
GPT_STORED_ON_DEVICE or GPT_STORED_OFF_DEVICE, and "gpt_drive_sectors"
to the number of 512-byte sectors available to store GPT structs.

The NOR read and write operations are done by "flashrom".

BUG=chromium:425677
BRANCH=none
TEST=unittest
TEST=build with DEBUG, cgpt create/add/show on a stumpy-moblab

Change-Id: I083b3c94da3b0bb3da1a7b10c6969774080a2afd
Reviewed-on: https://chromium-review.googlesource.com/226800
Reviewed-by: Nam Nguyen <namnguyen@chromium.org>
Commit-Queue: Nam Nguyen <namnguyen@chromium.org>
Tested-by: Nam Nguyen <namnguyen@chromium.org>
/external/vboot_reference/Makefile
6b5b8f65d52bc91ca37e5cb484867251d81136b1 31-Oct-2014 Randall Spangler <rspangler@chromium.org> vboot2: use common header size fields

Add functions for verifying object integrity using common header size
fields. Convert vb2_packed_key2 to use the the new functions. This
isn't much prettier for packed keys; the benefit is more obvious for
keyblocks (coming next).

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I0c09533368abb7ced3b5ac622a15e62832413b7f
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/226874
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
f4f395e1ca724ef8795cfe86a9edbf15f14eacd1 23-Oct-2014 Bill Richardson <wfrichar@chromium.org> Extend HWID digest into PCR1 (GBB v1.2 only)

GBB header v1.2 adds a digest of the HWID string to the blob (and
maintains it when updated with the current futility/gbb_utility).

This CL causes VbSelectFirmware() to extend PCR1 with that HWID
digest (only for GBB header v1.2 and later, of course).

Tests are updated.

This also adds a "pcr" command to futility to help determine that
the change is working on the hardware (adds 4K bytes or fewer to
the size of the executable).

BUG=chromium:415714
BRANCH=ToT (and maybe others?)
TEST=make runtests, manual install on HW

To test on hardware, build and update a system with this change
(both the disk image and the RO firmware).

NOTE: The BIOS image must be built in a chroot that is using the
current version of futility. You may need to update your chroot
if your BIOS image still produces v1.1 GBB headers. Check with:

futility show <firmware_image.bin> | grep -B1 'digest:'

Boot the new system with a new test image, then follow these steps:

Read the BIOS:

# flashrom -r /tmp/bios.bin

Make sure the GBB has a valid digest for the HWID.

# futility show /tmp/bios.bin | grep -B1 'digest:'
HWID: SAMUS TEST 8028
digest: 4172d24f40bf72cc0ab8... <valid>
#

Extract only the sha1sum-sized part of the HWID digest:

# futility show /tmp/bios.bin | awk '/digest:/ {print $2}' | colrm 41
4172d24f40bf72cc0ab878b4c589b8fe9cf4405e
#

Simulate extending that value in a PCR using the futility "pcr"
command:

# futility pcr 4172d24f40bf72cc0ab878b4c589b8fe9cf4405e
PCR: 0000000000000000000000000000000000000000
+ 4172d24f40bf72cc0ab878b4c589b8fe9cf4405e
PCR: b6e5ffd2d898a7b15236ad22ca25f53ac1f40776
#

Finally, look at the value of PCR1. It should match the last line
of the futility pcr output:

# head /sys/class/misc/tpm0/device/pcrs | grep PCR-01
PCR-01: B6 E5 FF D2 D8 98 A7 B1 52 36 AD 22 CA 25 F5 3A C1 F4 07 76
#

Change-Id: I09cf855f1a24616cc1a9ddb676670edbc76827d2
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/226408
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
e1486c3234b7dc6fc5b58681b271a65a09141e20 31-Oct-2014 Bill Richardson <wfrichar@chromium.org> futility: add version command

BUG=none
BRANCH=none
TEST=manual

make && ./build/futility/futility version

Change-Id: I362b13d3befba62a33bc9fd2e87ad68f4bc62a84
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/226779
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
d274a2e9536907d0474d988f32f602cd64ed1ae6 24-Oct-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add vb2_unpack_key2() and unit tests

This unpacks new-style packed keys.

For now, it can also handle old-style packed keys by passing them to
the old unpacking function. Once we've switched over to new-style
keys in the signing scripts, we'll remove the old format to save code
size.

Also added is a test library which converts from old to new struct
formats. That should eventually get absorbed into futility, and the
test keys directory should have both old and new format packed keys in
it.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: I0fe31f124781d1ea1efedab65dcd6130bfca18dd
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/225490
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
7c2beb08380410ca6847abdac23e11ded2d1b625 22-Oct-2014 Dan Ehrenberg <dehrenberg@chromium.org> cgpt: Separate out certain GPT manipluation functions

For kernel NAND support, some vboot/cgptlib functionality is
needed from depthcharge. This patch moves certain function
declarations to a new header in firmware/include and puts
their definitions in a common place.

TEST=make runalltests passes and packages build
BRANCH=none
BUG=chromium:403432

Change-Id: Idd42b1f9f531651d78bb4afb80ca90c24aae93d9
Reviewed-on: https://chromium-review.googlesource.com/224996
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Daniel Ehrenberg <dehrenberg@chromium.org>
Tested-by: Daniel Ehrenberg <dehrenberg@chromium.org>
/external/vboot_reference/Makefile
f18038b750c43c2185e64db38d0d244c6810083b 24-Oct-2014 Randall Spangler <rspangler@chromium.org> vboot2: Move and rename functions

Move packed key functions to their own file, in preparation for
introducing support for vb2_packed_key2.

Rename the awfully-named vb2_verify_fw_preamble2() function to
vb2_load_fw_premable(), since the new structs actually have a
vb2_fw_preamble2 struct and that would be very confusing.

Rename vb2_verify_fw_keyblock() to vb2_load_fw_keyblock(), so it
matches.

No functional changes, just renaming.

BUG=chromium:423882
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: Ia914e48e6c5814ab3205b999ceda1aa2452206ff
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/225458
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
6df3e33912baf2633ed27fce6fe166d87e2f04a8 03-Oct-2014 Bill Richardson <wfrichar@chromium.org> Add hwid digest field to GBB header

This adds a field in the GBB header to store the sha256 digest of
the HWID string, and updates gbb_utility so that it stores the
digest when it modifies the HWID. Because this is a new field,
the GBB_MINOR_VER is incremented.

BUG=chromium:415227
BRANCH=ToT
TEST=make runtests, VBOOT2=1 make runtests

Since the GBB is in the RO firmware, there should be no side
effects for existing devices (but even without that, they should
handle a minor version change without complaint).

Change-Id: Icdb2a0b564677b0b65e58df897d2ec5af3964998
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/221360
/external/vboot_reference/Makefile
5dc75d16b6d5cb0ebc677e6572a2559c6157b8e4 07-Oct-2014 Dan Ehrenberg <dehrenberg@chromium.org> vboot: new streaming APIs

This patch adds three functions called from vboot into depthcharge to
support NAND. NAND needs to stream rather than be accessed randomly
in order to skip bad blocks. The intended flow from vboot1 is:
- Read the GPT from a NAND disk handle, and depthcharge will silently
fill it in with reads from from SPI
- When a partition is selected, open a stream on the volume to access
NAND
- Sequentially read the NAND partition
- Close the NAND stream
This can be done multiple times when trying different partitions. The
stream is associated with the GPT by reading/opening a stream from the
same disk handle.

This patch includes stub implementations by rspangler to translate the
stream calls to block device calls.

To reduce vboot code duplication, this flow will be done for all media
types eventually, but a STREAMING flag is included to ease the transition.
The draft depthcharge code can be found at
https://chromium-review.googlesource.com/#/c/222312/

BUG=chromium:403432
TEST=stub implementations pass unit tests; together with upcoming depthcharge
and vboot code, actually boots a kernel. This compiles by itself.
BRANCH=none

Change-Id: I660a89594390c72c2ef6ea2564367ce62bd90cf2
Reviewed-on: https://chromium-review.googlesource.com/221992
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Daniel Ehrenberg <dehrenberg@chromium.org>
Tested-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
80872dbffcb2e0079bfe095d770ccc6c8bd5fd7a 03-Oct-2014 Bill Richardson <wfrichar@chromium.org> Improve cross-reference targets

Any of these:

make xrefs
make tags
make TAGS

should create "build/cscope.files", containing a list of the
source files used in preparing to run tests (minus any test
sources). If the 'ctags' or 'etags' programs are installed in the
chroot, they'll be run too.

BUG=none
BRANCH=ToT
TEST=manual

make xrefs
cat build/cscope.files

Change-Id: If1173af7edb41742bb348b728238d800ef66ad55
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/221425
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
4d49d34c4ba5aa64ca7aeb26c77e170b2cf2462f 02-Oct-2014 Bill Richardson <wfrichar@chromium.org> Don't install vbutil_what_keys on the target

BUG=chromium:419773
BRANCH=ToT
TEST=manual

make MINIMAL=1 DESTDIR=FOO install
make MINIMAL= DESTDIR=BAR install
find FOO BAR -name vbutil_what_keys

It should only install the script into BAR/.

Change-Id: I48d3a780533c5b72cc18720d39b18ac286b07fd9
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/221177
Reviewed-by: Mike Frysinger <vapier@chromium.org>
/external/vboot_reference/Makefile
f1dba02034fba650c84cec52630755cd3c063e88 01-Oct-2014 Bill Richardson <wfrichar@chromium.org> futility: rolled back vbutil_kernel change

When disabling verity with make_dev_ssh.sh, a bug in
vbutil_kernel caused the re-signed kernel size to be the entire
kernel partition instead of just the necessary bits. Until we can
improve the test coverage, I'm rolling back the changes that
introduced this bug.

BUG=chromium:418647
BRANCH=ToT
TEST=manual

Created a new test image with these changes. You can install it
and disable dm-verity and it works (although there seems to be an
unrelated browser startup issue on ToT).

Change-Id: I48e8427b05e191c9894c42056429a79d57bfc78d
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/220935
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
5f2696d2ff09d7c9c5c6125e9f0a62e56e54e0b8 24-Sep-2014 Bill Richardson <wfrichar@chromium.org> futility: Add support for [re]signing kernel partitions

BUG=none
BRANCH=ToT
TEST=make runtests

This also modifies the tests to compare the futility sign command
results against the vbutil_kernel results.

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Change-Id: Ibc659f134cc83982e3f0c0bcc108cc0eddbe228e
Reviewed-on: https://chromium-review.googlesource.com/219730
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
f318ee205cc8d92def925c6158272da8a63bf1ed 23-Sep-2014 Bill Richardson <wfrichar@chromium.org> futility: implement vbutil_kernel using buffers, not files

The original vbutil_kernel command used file read and write to
make changes. Futility prefers to use memory-mapped files. This
rewrites cmd_vbutil_kernel.c to use that scheme.

BUG=none
BRANCH=ToT
TEST=make runtests

The original cmd_vbutil_kernel.c is renamed, and a test written
to ensure that the refactored version produces identical results.

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Change-Id: Ic6c3e12429a5dcb271f8136a9edac70807d66120
Reviewed-on: https://chromium-review.googlesource.com/219647
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
779796f57e1e0236ea502248ede2cbea986fca21 23-Sep-2014 Bill Richardson <wfrichar@chromium.org> futility: Improve help messages

This provides help messages for the futility commands similar to
the way git does. These show the available commands:

futility
futility help
futility --help

While these show help for a specific command:

futility help COMMAND
futility --help COMMAND
futility COMMAND --help

BUG=none
BRANCH=ToT
TEST=manual

make runtests

And manually look at help messages for each command.

Change-Id: I1126471e242784c6ca7a2f11694fa7c505d833e8
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/219528
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
0f07867e6fe186ea460afd557e830c1e49f1ff85 19-Sep-2014 Duncan Laurie <dlaurie@chromium.org> Re-add dumpRSAPublicKey utility

This utility is used by firmware tests and having it missing is causing subtle
FAFT test failures that are frustratingly difficult to track down.

BUG=chrome-os-partner:38032
BRANCH=none
TEST=successful run of firmware_UpdateKernelDataKeyVersion

Change-Id: I4dcf277ce2678001f6e68d89781b6166042ea96e
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/219079
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
efa8756c5e7068e57f5e98f0e7f2f42fb8d969d6 11-Sep-2014 Bill Richardson <wfrichar@chromium.org> cleanup: DESTDIR refers to the install root, not the bin/

This doesn't have any visible effect. It just brings the meaning
of the where-do-I-put-this variable more in line with common
convention.

BRANCH=ToT
BUG=none
CQ-DEPEND=CL:217940
TEST=lots...

make runtests
make DESTDIR=BAR install
make MINIMAL=1 DESTDIR=FOO install
emerge-$BOARD vboot_reference
sudo emerge vboot_reference
trybots: link-tot-paladin, daisy_spring-paladin

Change-Id: I8d72664da07535f663d8b2f13c872eece37978b9
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/217930
Reviewed-by: Mike Frysinger <vapier@chromium.org>
/external/vboot_reference/Makefile
a1d9fe6eecf82540d31d34bba988e4838d295302 05-Sep-2014 Bill Richardson <wfrichar@chromium.org> futility: stop using the symlink names in utility scripts

We still create the symlinks (FOO -> futility), but this
change invokes those built-in functions with "futility FOO ..."
instead of using the FOO symlink.

Note that the scripts/ directory is unchanged. That's a
separate CL, since we don't have tests for that.

BUG=chromium:231547
BRANCH=ToT
TEST=make runtests

In addition to running "make runtests", I temporarily
modified the Makefile to avoid creating the symlinks at all.
The tests still passed.

Change-Id: I96863259b9df02a3611f759a7509bf4090ae03e8
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/216717
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
ef376b41af8287d421e3d08be6200f0f3cb38fc6 27-Aug-2014 Alex Deymo <deymo@chromium.org> Remove unused include path.

This path doesn't exists in the repo so this patch removes it from the
Makefile:
firmware/arch/${FIRMWARE_ARCH}/include

BUG=None
BRANCH=None
TEST=./emerge_test

Change-Id: I8b5461ee0ddfa0aa8d31bc6d2b981912a9ccde58
Reviewed-on: https://chromium-review.googlesource.com/214392
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
/external/vboot_reference/Makefile
2e25e813419f2cd437164929543e452b28b89260 03-Sep-2014 Bill Richardson <wfrichar@chromium.org> futility: add load_fmap command, useful for tests

This adds a "load_fmap" command, which is pretty much the
opposite of the "dump_fmap -x" command. It allows you to
replace the content of any FMAP areas with new stuff, without
mucking around with dd. There's a test for it, too.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Change-Id: I5a9ab249c9e63a9bb1a9b26feeb3ed757cd294f1
Reviewed-on: https://chromium-review.googlesource.com/216228
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
15dc6fc5eabc1b1756aca1dbed38cb9d26259bf2 02-Sep-2014 Bill Richardson <wfrichar@chromium.org> futility: add "sign" command to resign firmware images

The "sign" command can perform the same operation as the old
resign_firmwarefd.sh script, only about 20 times faster. The
test for that will use the new command instead.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: Ie7f7a0ab6fc00d7e06cb263733bf6e7246fdb023
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/216227
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
64ddad77e58b9892c72f49977f479a585dce095c 30-Aug-2014 Bill Richardson <wfrichar@chromium.org> futility: Add a test for the resign_firmwarefd.sh script

This resigns official MP-signed BIOS images, because that's the best way to
ensure we remain compatible forever. The resign_firmwarefd.sh script is
invoked make_dev_firmware.sh, which is used for development and bringup.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

No new functionality, only a new test.

Change-Id: I4bf9cdd8321d126e1c1a45fc198ef46b0eeb5c36
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/216226
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
cf6e78dbd54684ebba0c3bfc2524426f61193416 28-Aug-2014 Bill Richardson <wfrichar@chromium.org> futility: the show command can traverse all file types

It doesn't yet handle block devices, but it can display normal files
containing a entire BIOS image, a GBB, a VBLOCK, a .vbpubk, a .vblock,
and a firmware preamble (VbFirmwarePreambleHeader).

The command-line options are not well-documented.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: I181f6331ae23599302bbaee3f270e8af9586cf06
Reviewed-on: https://chromium-review.googlesource.com/216032
Commit-Queue: Bill Richardson <wfrichar@chromium.org>
Tested-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
e08ee28548934e933733babf0bc0c418142d095d 29-Aug-2014 Alex Deymo <deymo@chromium.org> Remove futility linker script.

The futility.lds linker script was used to generate a table with
all the symbols in a specific section called .futil_cmds listed
in order under the symbol "futil_cmds". This allows the source files
to define a command and let the linker figure out the list of
compiled commands. Nevertheless, passing this linker script
makes the linker leave a gap of about 2MiB in the output ELF file.

Instead of mess up with linker scripts just to generate a table of
commands, this patch generates such table in the Makefile looking
at the included sources and compiling that table. The result is a
futility binary of about 88 KiB instead of the 2.1 MiB required
originally.

This patch also adds sys-boot/chromeos-u-boot to the list of ebuilds
tested by emerge_test.sh.

BUG=chromium:408926
BRANCH=None
TEST=BOARD=link ./emerge_test.sh
TEST=BOARD=daisy_spring ./emerge_test.sh
TEST=`readelf -S futility` shows no gap.
TEST=/usr/bin/futility shows no difference in the help output.

Change-Id: I9c0febc76140b404d48aa13e7f948e8ea77a41b5
Reviewed-on: https://chromium-review.googlesource.com/215496
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
/external/vboot_reference/Makefile
b8ff397674fb98c1d7eea864e7fa571369675131 27-Aug-2014 Randall Spangler <rspangler@chromium.org> vboot: Add system-level test for LoadKernel()

This creates a disk image and verifies a kernel can be loaded from it.
It is roughly analogous to vb2_firmware_tests.sh, but at the kernel
step instead of the firmware step.

This will get more interesting in the near future, with the upcoming
addition of a streaming API to read the kernel.

BUG=chromium:408265
BRANCH=none
TEST=make runtests

Change-Id: Icc9e6d0e318c4bd38fc9ab1ad704da99232822e1
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/214508
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
/external/vboot_reference/Makefile
0e6ae29eec7a58eeeeba67356c3a3ee384ba6687 26-Aug-2014 Bill Richardson <wfrichar@chromium.org> Add 'tags' target to Makefile

Handy for quick code searches.

BUG=none
BRANCH=ToT
TEST=manual

make tags

Change-Id: Icc21769a168d1760f4f21802e1183a519cfeb019
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/214620
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
78d59bffec45da47b4e8a763186723192dd24f87 28-Aug-2014 Bill Richardson <wfrichar@chromium.org> cleanup: remove ancient tests that haven't been run in years

There are a number of tests that haven't even been compiled in a LOOOONG
time. Let's get them out of the way. We can always put them back later.
I'm adding a comment to this CL in the Makefile.

BUG=none
BRANCH=ToT
TEST=make runalltests

Change-Id: Id2d9f0b71fc40e4a260f54cf919c6af5e0ff85c5
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/214610
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
028f468aff976ef5e76f20133c64ec19cb9d1517 19-Aug-2014 Randall Spangler <rspangler@chromium.org> vboot2: Move vb2_verify_fw inside of futility

Update the unit tests which use it to use futility. No functional
changes to it, just relocation.

Remove the futility test which checks the exact list of supported
commands. This doesn't have a good way of handling
conditionally-compiled commands, and will be even harder to maintain
as we add more commands in the future. Presence of sub-commands is
still ensured by the other tests which use them (such as
vb2_firmware_tests.sh)

BUG=chromium:231547
BRANCH=none
TEST=make runtests && VBOOT2=1 make runtests

Change-Id: Idddb639276e4c6449d023d40ac7977123113bd28
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/213191
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
6014c048131f7c3d055e97c0aaa44494edc4f813 22-Jul-2014 Randall Spangler <rspangler@chromium.org> Call software sync a second time for PD, if necessary

If a device has both an EC and a separate PD chip, call software sync
for each chip.

BUG=chrome-os-partner:30079
BRANCH=none
TEST=Flash image.bin with new AP+EC+PD firmware, reboot.
See EC and PD both update and jump to RW.
On next cold boot, they jump to RW without again updating.
CQ-DEPEND=CL:210520

Change-Id: Ie445336ade46f0009c040afc14b3f40452caf27b
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/210536
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
6f3961507e73f90cec665896dece884e86be560a 15-Jul-2014 Bill Richardson <wfrichar@chromium.org> futility: Add remaining vboot binary utilities

This change adds these formerly external utilities into the futility binary:

dev_sign_file
dump_kernel_config
gbb_utility
vbutil_firmware
vbutil_kernel

These target binaries will remain independent of futility, since they are
not directly related to verified boot:

cgpt
crossystem
tpm_init_temp_fix
tpmc

Also, dumpRSAPublicKey is removed from the target, since it is only used on
the build host to create new keypairs.

This change also add several additional tests.

BUG=chromium:224734
BRANCH=ToT
CQ-DEPEND=CL:210391,CL:210568,CL:210587
TEST=manual

make runtests
make clean

Also build and test:
- normal image
- test image
- recovery image
- firmware shellball

Note that this CL depends on simultaneous changes to the chromeos-initramfs
ebuild.

Change-Id: If791b5e9b5aac218ceafa9f45fc1785f16b91a64
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/210403
/external/vboot_reference/Makefile
e155044a7bbb9b8c6eb751af051726cfe1b411a4 17-Jul-2014 Bill Richardson <wfrichar@chromium.org> futility: deprecate eficompress and efidecompress

I don't think these utilities are needed any longer, so mark them as
deprecated. They will still be built and can be run via futility, but
invoking them directly will fail with a warning message.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: Ie704f2cecc3c37c91e4a0ffbcbcf94e2bf3ba05b
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/208775
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
884a5f10c1a0c7a37848aef7669e1c735b779cc7 15-Jul-2014 Bill Richardson <wfrichar@chromium.org> futility: add vbutil_keyblock into the built-in features

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: Ie9efdcf0b69ab4697f050643b8f2f588e22d20d7
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/208368
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
b84b81dc265a766a968bf126905447d442558218 14-Jul-2014 Bill Richardson <wfrichar@chromium.org> futility: add vbutil_key into the built-in features

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Change-Id: I6757a9c7f70bbe8d1db9bb3f0521778fbbb9632e
Reviewed-on: https://chromium-review.googlesource.com/207927
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
3e3790d00827e75d39b77a14bca2756a14a51b3c 15-Jul-2014 Bill Richardson <wfrichar@chromium.org> Install and use futility when running tests

As we build features into futility, the standalone executables disappear.
Tests that invoke those executables will need to invoke futility instead.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Change-Id: I75230f6901aab8d978fa5d12505c243e1c90c938
Reviewed-on: https://chromium-review.googlesource.com/207926
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
0f6679e8582219b40e2ab5485992827a92c18bcd 11-Jul-2014 Bill Richardson <wfrichar@chromium.org> Slight tweak to Makefile

Replacing a few duplicated items with a single definition, removing a couple
of unnecessary/redundant dependencies.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: I31e78ae1e3810865e26c9c4937eb44222cbfa9d6
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/207741
/external/vboot_reference/Makefile
d462101f06e1bf817295a6cdd2b82e7e87eaeef3 10-Jul-2014 Bill Richardson <wfrichar@chromium.org> Avoid coredumps if the FMAP is wrong.

If the FMAP points beyond the boundaries of the image, don't believe it.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Change-Id: Ic35ce71ceac9beb7eb56b50baec938a8e085606c
Reviewed-on: https://chromium-review.googlesource.com/207740
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
bc2d2b21d97d35f69dc083ad44fb08419fe32a08 10-Jul-2014 Bill Richardson <wfrichar@chromium.org> Increase test coverage for dump_fmap

This checks some additional cases where the FMAP is a bit messed up.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: Ic2b16bd8afdd1247d1f24c9f976d967764cadb73
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/207719
/external/vboot_reference/Makefile
d2d08b2cc68f720a485cdfa6f044ddb234e8c42b 09-Jul-2014 Bill Richardson <wfrichar@chromium.org> Cleanup futility test coverage framework a bit

This cleans up the Makfile and test scripts a bit, and adds a new test for
the builtin commands.

BUG=chromium:224734
BRANCH=ToT
TEST=make runtests

Change-Id: Ibf5aa867d4dcabc0e46daac6633036b035c99ac8
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/207718
/external/vboot_reference/Makefile
18e03706df6ab4256a89f4e578ecf0f165641c8a 24-Jun-2014 Bill Richardson <wfrichar@chromium.org> Clean up exported Mtd* functions

A lot of functions were added some time ago, nominally to support keeping
the firmware in an MTD device that wasn't formatted with the GPT headers.
That work was never completed, so these functions aren't used anywhere.

We may want to resurrect this work at some future point. Until then, this CL
just moves some of the functions into an "unused" file.

BUG=chromium:231567
BRANCH=ToT
TEST=manual

All tests pass, all firmware and external repos build.

Change-Id: I420dd52d1cea0418cedf2f8e834c61145915f20c
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/207037
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
782990277ac7d6730db4c43c2b5632de93396921 20-Jun-2014 Bill Richardson <wfrichar@chromium.org> Split libvboot_host.a into external and local libraries.

We've been creating and linking against a library called "libvboot_host.a"
for two different reasons. The main purpose is to build the vboot_reference
tools found in the utility/ directory. But there are some external userspace
programs that would also like to use some functions in this library.

This change establishes libvboot_host.a as the library for use by external
userspace programs only, and creates a new libvboot_util.a library that's
only used inside this source tree to build the vboot utilities.

BUG=chromium:231567
BRANCH=ToT
TEST=manual

Build and run the local tests:

make runalltests
make clean

Build Link firmware and all the utilities:

emerge-link chromeos-base/vboot_reference \
sys-boot/depthcharge \
sys-boot/coreboot \
chromeos-base/chromeos-ec \
chromeos-base/chromeos-firmware-link \
chromeos-base/chromeos-cryptohome \
chromeos-base/update_engine \
chromeos-base/chromeos-installer \
chromeos-base/chromeos-login \
chromeos-base/verity

Build Lumpy utilities, which include the 32-bit cros_installer:

emerge-lumpy chromeos-base/vboot_reference \
chromeos-base/chromeos-login \
chromeos-base/verity \
chromeos-base/update_engine \
chromeos-base/chromeos-installer \
chromeos-base/chromeos-cryptohome

Change-Id: Ie81ff1f74a6356cb8fab7d98471139d7758c4f19
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/207016
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
f8f807a5ef00e8d5360fc2c9093bd0b5da8c0507 30-Jun-2014 Bertrand SIMONNET <bsimonnet@chromium.org> Add fPIE flag

libvboot_host.a is needed by metrics, compiled in platform's gyp/ninja system.
All platform executables need to be position independent so we need
libvboot_host.a to be position independent too.

BRANCH=None
BUG=chromium:389742
TEST=Unittests.
TEST=Build vboot_reference and metrics, metrics compiles.
TEST=Build coreboot on a rambi, the compilation succeeds.
TEST=trybot run on daisy, link, duck, rambi and x86-mario.

Change-Id: I4b761d9435c35e3d3fcae2efc72fcaed7fc746a6
Reviewed-on: https://chromium-review.googlesource.com/206055
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
/external/vboot_reference/Makefile
539cbc27305b6aef9643adffc3297c7079fe7457 18-Jun-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add end-to-end test of firmware verification

This constructs a test firmware using the old vboot signing utilities,
and then verifies it using vboot2 libraries. This ensures vboot2 can
read files signed by the current signing process.

BUG=chromium:370082
BRANCH=none
TEST=VBOOT2=1 make runtests

Change-Id: Icc113c982e5ed99382a4592f9ab688784e853c8e
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/204561
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
a7ab8b50b8923afcfd7a9e6181892c4c8a2de250 11-Jun-2014 Randall Spangler <rspangler@chromium.org> vboot2: api-level routines

I'm breaking the last chunk of vboot2 into smaller pieces as I add
tests. This has the api-level routines actually called by depthcharge.

BUG=chromium:370082
BRANCH=none
TEST=make clean && VBOOT2=1 COV=1 make

Change-Id: Ic7c082fc5faa0b874b2fa5a15ebda7135dcafe0b
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/200151
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
1803068173a625efd83d1cee8dd90843feb0d972 12-Jun-2014 Randall Spangler <rspangler@chromium.org> vboot2: misc higher-level routines, part 2

I'm breaking the last chunk of vboot2 into smaller pieces as I add
tests. This has the higher-level routines for verifying keyblock and
preamble.

BUG=chromium:370082
BRANCH=none
TEST=make clean && VBOOT2=1 COV=1 make

Change-Id: I82da9542c8857a3f89a85f206c9f5aecadf94a79
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/203501
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
da2b49cf08a27551fd910626f669910a636378d4 11-Jun-2014 Randall Spangler <rspangler@chromium.org> vboot2: misc higher-level routines

I'm breaking the last chunk of vboot2 into smaller pieces as I add
tests. This has a bunch of misc routines like the dev switch logic
and GBB header parsing.

BUG=chromium:370082
BRANCH=none
TEST=make clean && VBOOT2=1 COV=1 make

Change-Id: I0f67400d9b59ec21ed5cc155a9b774fd37eb559b
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/203374
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
7141d73c149ee203a192f0cb45ca9bfa10c0ff8c 16-May-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add common functions

This is the third of several CLs adding a more memory- and
code-efficient firmware verification library.

BUG=chromium:370082
BRANCH=none
TEST=make clean && COV=1 make

Change-Id: I3a5daa5438afc5598d3dfcf5a597ffb16eda8749
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/200140
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
3333e578497aafc4eb8c6e1e359f6e2b1dee633a 14-May-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add nvstorage and secdata functions

This is the second of several CLs adding a more memory- and
code-efficient firmware verification library.

BUG=chromium:370082
BRANCH=none
TEST=make clean && COV=1 make

Change-Id: I1dd571e7511bff18469707d5a2e90068e68e0d6f
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/199841
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
e166d04e797b605dd2f6784bc863a262c418c0c4 13-May-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add crypto functions

This is the first of several CLs adding a more memory- and
code-efficient firmware verification library. This CL adds the crypto
library (modified from firmware/lib/cryptolib) and unit tests for it.

BUG=chromium:370082
BRANCH=none
TEST=make clean && VBOOT2=1 COV=1 make

Change-Id: I4240eab227bb197cacc6c8e7a6397127d74414a2
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/199578
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
786acdabcc15f023330d7c628aca9679e757a238 22-May-2014 Randall Spangler <rspangler@chromium.org> vboot2: Add workbuf functions

We'll try breaking this up into smaller pieces. This one's pretty
small - just the work buffer utility functions.

BUG=chromium:370082
BRANCH=none
TEST=make clean && VBOOT2=1 COV=1 make

Change-Id: I4c417438053c155d6f7f9725552066e9b059951c
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/201141
/external/vboot_reference/Makefile
46e00e63805f85c05449ce09cd843a18b76ca665 19-Dec-2013 Gabe Black <gabeblack@chromium.org> x86: Stop building the vboot library using regparm=3.

This complicates things in a number of ways, including making GDB not work
properly because it assumes the standard ABI in some places. Measurements
show that it doesn't really make much difference performance wise.

BUG=None
TEST=Built and booted with coreboot and depthcharge on link.
BRANCH=None

Change-Id: I7f004f8cf83b7c1a78ab12f814477504a5a5c28c
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://chromium-review.googlesource.com/180874
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
/external/vboot_reference/Makefile
d96b25d0c0a739d351b8f09b128782ca12b7b0e1 19-Sep-2013 Stefan Reinauer <reinauer@chromium.org> fwlib: Map architecture armv7 to arm

In coreboot the architecture for our ARM platforms
is armv7. In order to have vboot_reference pick up the
right build parameters, map armv7 to arm.

BUG=none
BRANCH=none
TEST=lots more changes on coreboot needed for a reasonable
test. Right now coreboot compiles fine with ramstage
verification and this patch.

Change-Id: I64dad9be663b7bd7d80d138b3c49ae8f4699f01d
Reviewed-on: https://chromium-review.googlesource.com/170071
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Stefan Reinauer <reinauer@google.com>
Tested-by: Stefan Reinauer <reinauer@google.com>
/external/vboot_reference/Makefile
527ba810eff4006cf69579f6b96cb4350cb1e189 25-Jul-2013 Simon Glass <sjg@chromium.org> Implementation of Region API

At present reading data from storage in Vboot is a little fragmented. For
the firmware image, we expect the boot loader to handle this. For the disk
we have a block-level API. For the GBB (which also sits in the firmware
image) we expect the entire thing to be read before Vboot is called.

Add the concept of a region, and an API to read from a region. At present,
and most pressing, is reading from a GBB region. In the future this could
be extended to other parts of the firmware or even the disk.

Move all access to the GBB into this API so that the boot loader can provide
either a GBB region in one large contiguous chunk, or a function to deal with
read requests from vboot.

The call to VbExRegionRead() is behind a flag since not all boot loaders
support it yet.

The main change for boot loaders which don't support this new API is that
vboot will do more behind the scenes. For example, it will allocate memory
for chunks of data that it reads from the GBB, rather than just accessing it
directly. This approach is considerably simpler than trying to pass char **
everywhere and have vboot decide whether something needs to be allocated or
not.

The tests are updated, mainly to include setting up a GBB structure
accessible from VbCommonParams, which is now required by the firmware and
kernel functions. In normal operation this is set up at the start of
VbLoadFIrmware() and VbSelectAndLoadKernel() but for tests which call
children of these functions directly, the GBB structure must be set up
manually by the test.

BUG=chrome-os-partner:21115
BRANCH=none
TEST=manual
FEATURES=test sudo -E emerge vboot_reference

Change-Id: If2b8bbe467fdbd643239d8d9b5d7aa98df4d286f
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/63336
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/167361
/external/vboot_reference/Makefile
8fa13ad6f727d44fdc0ae1d2bde5f54b32dab9b9 29-Aug-2013 Yoshiki Iguchi <yoshiki@chromium.org> Revert "Implementation of Region API"

This reverts commit 1d3c804b6b9d2ffb6953a7ee98fabfd548915ad7.

This patch breaks cbuildbot on internal paladins bots.

Change-Id: Icf7f9d9bbb56b092035888eaa3e249ffd23fac16
(cherry picked from commit 3a60335ebb1530e5fd9d5da3bc6214949bc59caf)
Reviewed-on: https://chromium-review.googlesource.com/167451
Reviewed-by: Yoshiki Iguchi <yoshiki@chromium.org>
Commit-Queue: Yoshiki Iguchi <yoshiki@chromium.org>
Tested-by: Yoshiki Iguchi <yoshiki@chromium.org>
/external/vboot_reference/Makefile
1d3c804b6b9d2ffb6953a7ee98fabfd548915ad7 25-Jul-2013 Simon Glass <sjg@chromium.org> Implementation of Region API

At present reading data from storage in Vboot is a little fragmented. For
the firmware image, we expect the boot loader to handle this. For the disk
we have a block-level API. For the GBB (which also sits in the firmware
image) we expect the entire thing to be read before Vboot is called.

Add the concept of a region, and an API to read from a region. At present,
and most pressing, is reading from a GBB region. In the future this could
be extended to other parts of the firmware or even the disk.

Move all access to the GBB into this API so that the boot loader can provide
either a GBB region in one large contiguous chunk, or a function to deal with
read requests from vboot.

The call to VbExRegionRead() is behind a flag since not all boot loaders
support it yet.

The main change for boot loaders which don't support this new API is that
vboot will do more behind the scenes. For example, it will allocate memory
for chunks of data that it reads from the GBB, rather than just accessing it
directly. This approach is considerably simpler than trying to pass char **
everywhere and have vboot decide whether something needs to be allocated or
not.

The tests are updated, mainly to include setting up a GBB structure
accessible from VbCommonParams, which is now required by the firmware and
kernel functions. In normal operation this is set up at the start of
VbLoadFIrmware() and VbSelectAndLoadKernel() but for tests which call
children of these functions directly, the GBB structure must be set up
manually by the test.

BUG=chrome-os-partner:21115
BRANCH=none
TEST=manual
FEATURES=test sudo -E emerge vboot_reference

Change-Id: I2c19e9dc2ed602d0642bbf4f7d27f79fe9fad873
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/63336
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
acc9846dc79275d7d62dbdd248fac8951441f4db 27-Aug-2013 Hung-Te Lin <hungte@chromium.org> Revert "Enable debug flags when building natively"

This reverts commit e4759b782dff166600dbbfac884462babb433fac.

The DEBUG flags changed something in futility's section layout and caused its
command searching mechanism to fail (we can verify that by running "dump_fmap"
command).

BUG=chromium:279645
TEST=emerge-link vboot_reference; /build/link/usr/bin/dump_fmap # success
BRANCH=none

Change-Id: Ie42a33aed3fdc0443f2a758e1216d86aea5c326d
Reviewed-on: https://chromium-review.googlesource.com/67015
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
/external/vboot_reference/Makefile
e4759b782dff166600dbbfac884462babb433fac 16-Aug-2013 Simon Glass <sjg@chromium.org> Enable debug flags when building natively

It is still useful to build natively with debugging, particularly when
improving test code, so add this to the compiler flags in this case.

BUG=chrome-os-partner:21115
BRANCH=pit
TEST=manual
'make DEBUG=1' in the vboot directory within the chroot. See that the test
executables are now build with debugging info and gdb has line number
information.

Change-Id: Icaedae67151883673525930e25cf8b1f30654339
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/66172
/external/vboot_reference/Makefile
42c08cb2dac102509491810361e239fbde52b9e0 02-Apr-2013 Albert Chaulk <achaulk@chromium.org> Add MTD test script

So the quick & dirty hack is to just modify the cgpt command to be
cgpt -N=<MTD magic> <rest of the commands>

There are a couple limitations of the MTD command versions that will cause
them to always fail, so they're skipped if the second argument is empty - boot,
adding unknown GUIDs and more than 15 partitions.

BUG=chromium:221745
TEST=MTD version of run_cgpt_tests.sh passes
BRANCH=none

Original-Change-Id: Ida0debdefdc736f38e616801f6a40e67d393f405
Reviewed-on: https://gerrit.chromium.org/gerrit/47177
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Tested-by: Albert Chaulk <achaulk@chromium.org>
(cherry picked from commit 53fd488fc772e2ed964331fe98eaa21d2a1e471b)

Change-Id: Id7af245cc0e8c2dc00fe9ceab9ce0be0e47882ec
Reviewed-on: https://gerrit.chromium.org/gerrit/49796
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Tested-by: Albert Chaulk <achaulk@chromium.org>
/external/vboot_reference/Makefile
b334e651a597a10d562bc882613f0b482b24e3ca 28-Mar-2013 Albert Chaulk <achaulk@chromium.org> Provide MTD version of common functions

Provide an MTD implementation of several common functions in cgpt_common.c

BUG=chromium:221745
BRANCH=none
TEST=none

Original-Change-Id: Ib3248c283ca31e33a91b9ea0c14b2f72ea7c5850
Reviewed-on: https://gerrit.chromium.org/gerrit/47029
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Tested-by: Albert Chaulk <achaulk@chromium.org>
(cherry picked from commit b0bd7e4cf8dd15cc3c371dac157093c7e7c7a874)

Change-Id: I243c2bf98a88d0019c332b274868459b5f1b8ea1
Reviewed-on: https://gerrit.chromium.org/gerrit/49791
Reviewed-by: Albert Chaulk <achaulk@chromium.org>
Tested-by: Albert Chaulk <achaulk@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
/external/vboot_reference/Makefile
534723a6519267461855441279b321e6fc1e4e90 20-Mar-2013 Albert Chaulk <achaulk@chromium.org> Integrate the flash key-value store code into cgpt.

Integrates the FTS driver into cgpt. This driver is binary-format compatible
with the linux driver for interoperabiilty. The cgpt changes load & store a
hex-encoded mtd partition table in the FTS; we need some sort of encoding
because FTS only stores NUL-terminated strings.

Currently, the mtd code paths aren't executed in cgpt, only in the tests. It's
also not hooked up to the vboot code yet, we will need to do that eventually.

BUG=chromium:221745
TEST=new unit test added
BRANCH=none

Change-Id: I94eb0389d29aca0beb9d9a644465c7d86161b3c2
Original-Change-Id: I9fe2fa91b666572563426adb8fa9d426f9b60bbf
Reviewed-on: https://gerrit.chromium.org/gerrit/46796
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Reviewed-by: Albert Chaulk <achaulk@chromium.org>
Tested-by: Albert Chaulk <achaulk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/49789
/external/vboot_reference/Makefile
5c9e4532b9bc45cff22f37d3556da679809a60a7 21-Mar-2013 Albert Chaulk <achaulk@chromium.org> Implement cgptlib for MTD devices.

Defines MTD on-disk structures & API in mtdlib.h/c that closely mirrors
the existing cgpt implementation. Currently, the disk structures do not
contain guids or labels, and the number of available partition types and
quantities are limited, exactly what we want to support should be decided
before we ship this.

Adds appropriate test coverage to the unit test library - either by modifying
existing tests, or copying them and changing them accordingly.

BUG=chromium:221745
TEST=added appropriate tests to the unittests
BRANCH=none

Change-Id: Iee19864498024c72229bc3c7811594fe762f52de
Original-Change-Id: I031eca69d6c8e825b02bd0522d57e92b05eb191a
Reviewed-on: https://gerrit.chromium.org/gerrit/46082
Tested-by: Albert Chaulk <achaulk@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/48793
Reviewed-by: Albert Chaulk <achaulk@chromium.org>
/external/vboot_reference/Makefile
20807b6158b6a43baf0974bc763890888ba1f841 09-Apr-2013 Bill Richardson <wfrichar@chromium.org> Build dump_fmap into futility.

This stops creating dump_fmap as a standalone utility and builds it into
futility. Since it was already invoked as a symlink, no user-visible changes
should be observed.

BUG=chromium:224734
BRANCH=none
TEST=manual, trybots

sudo FEATURES=test emerge vboot_reference
FEATURES=test emerge-$BOARD vboot_reference

Change-Id: I68d1bea0c1867043b2633e15509b95c2717009a7
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47672
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
6db8c75021e2edfa400ae707a8544d041e3c415f 05-Apr-2013 Bill Richardson <wfrichar@chromium.org> Build both static and dynamic versions of futility.

In almost every case we want the dynamically linked version of futility,
because it's smaller and the openssl functions require it (they use
dl_open() to invoke the correct RSA libraries).

However, the AU shellball requires three futility functions (crossystem,
gbb_utility, and dump_fmap). Those pretty much have to be built statically,
because they run from the new rootfs and packing all the dynamic libraries
into the shellball is way too large and complicated.

This change prepares to build both futility (full featured) and futility_s
(just those functions). The scripts that create the AU shellball will
already choose futility_s from /build/$BOARD/.

BUG=chromium:224734
BRANCH=none
TEST=none
CQ-DEPEND=CL:47589

Nothing to test just yet. The AU shellball is currently broken (it uses the
dynamic version of futility and doesn't copy the symlinks anyway), so this
should have no effect. We just need to ensure that the _s version doesn't go
into any of the other images.

Change-Id: I60b8dcd17e135f12a0d29ddacfb9fe8275567c70
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47466
/external/vboot_reference/Makefile
339f7e030cebe98a072d37acccbd1f0b4c1dea9b 05-Apr-2013 Bill Richardson <wfrichar@chromium.org> Add framework for testing builtin futility functions.

This tweaks the Makefile and adds a couple of placeholder tests to prepare
for testing the builtin futility operations. There aren't any useful builtin
functions yet, but this lets us start adding them along with the tests.

BUG=chromium:224734
BRANCH=none
TEST=none

This doesn't actually do anything yet.

Change-Id: Iff0ca514f7d26346f072bd80a3bcd04621284843
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47432
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
1912bbae89b82c10819b01d039e140e39c668fc7 05-Apr-2013 Bill Richardson <wfrichar@chromium.org> Include generated dependency files for all object files.

This just fixes the dependencies for repeated manual builds, so that
touching just a couple of files will rebuild the right things. It doesn't do
anything for ebuilds, since those always (or should!) compile everything
from an empty directory.

BUG=chromium:224734
BRANCH=none
TEST=none

Actually, I tested this by adding a fake target that removed all the listed
generated object and dependency files (a side effect of compilation).

foo:
rm -f ${ALL_OBJS} ${ALL_DEPS}
find ${BUILD} -name '*.[od]'

Then run "make clean; make; make foo". If there are any .o or .d files left
over, they needed to be listed explicitly. I found a bunch. This CL takes
care of them.

Change-Id: If33f7e13a9f3dbee023b63aa21a47691746bad25
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47407
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
a130e0b0a38efa01195f5a7be635a66f0dd60c29 05-Apr-2013 Bill Richardson <wfrichar@chromium.org> Fix Makefile to only build fwlib when asked to, not hostlib too.

BUG=chromium:224734
BRANCH=none
TEST=manual, trybots

Change-Id: I5811a89c3b68de7fd2da032ecf5a56800b4754a4
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47406
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
0c3ba249abb1dc60f5ebabccf84ff13206440b83 29-Mar-2013 Bill Richardson <wfrichar@chromium.org> Massive refactoring of external header files.

This reduces the number of exported header files to the minimum needed by
the existing userspace utilities and firmware implementations.

BUG=chromium:221544
BRANCH=none
TEST=manual, trybots
CQ-DEPEND=CL:47019,CL:47022,CL:47023

sudo FEATURES=test emerge vboot_reference
FEATURES=test emerge-$BOARD \
vboot_reference \
chromeos-cryptohome \
chromeos-installer \
chromeos-u-boot \
peach-u-boot \
depthcharge

Change-Id: I2946cc2dbaf5459a6c5eca92ca57d546498e6d85
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47021
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
661ae9e9cbaad430b87b443712d2608f9ce59883 26-Mar-2013 Simon Glass <sjg@chromium.org> Add a QUIET Makefile option to reduce non-error output

At present building vboot results in some output when there are no warnings/
errors. Add a QUIET option to suppress this.

BUG=none
BRANCH=none
TEST=manual
Build without QUIET=1

CC firmware/lib/cryptolib/padding.o
CC firmware/lib/cryptolib/rsa.o
CC firmware/lib/cryptolib/rsa_utility.o
CC firmware/lib/cryptolib/sha1.o
CC firmware/lib/cryptolib/sha256.o
CC firmware/lib/cryptolib/sha512.o
CC firmware/lib/cryptolib/sha_utility.o
CC firmware/lib/stateful_util.o
CC firmware/lib/vboot_api_firmware.o
CC firmware/lib/vboot_common.o
CC firmware/lib/vboot_firmware.o
CC firmware/lib/tpm_bootmode.o
CC firmware/lib/crc8.o
CC firmware/lib/utility.o
CC firmware/lib/vboot_api_init.o
CC firmware/lib/vboot_common_init.o
CC firmware/lib/vboot_nvstorage.o
CC firmware/lib/rollback_index.o
CC firmware/lib/tpm_lite/tlcl.o
CC firmware/lib/cgptlib/cgptlib.o
CC firmware/lib/cgptlib/cgptlib_internal.o
CC firmware/lib/cgptlib/crc32.o
CC firmware/lib/utility_string.o
CC firmware/lib/vboot_api_kernel.o
CC firmware/lib/vboot_audio.o
CC firmware/lib/vboot_display.o
CC firmware/lib/vboot_kernel.o
RM vboot_fw.a
AR vboot_fw.a

Build with QUIET=1:

(no output from Makefile)

Change-Id: I35e057df6c640ed06325092365934d870240b9cf
Reviewed-on: https://gerrit.chromium.org/gerrit/46533
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Commit-Queue: Simon Glass <sjg@chromium.org>
/external/vboot_reference/Makefile
feb2518166b1cd181e607c611cbb610f0c7300da 07-Mar-2013 Bill Richardson <wfrichar@chromium.org> Wrap all vboot utilities with futility.

This moves all the old userspace utilities generated by vboot_reference into
a subdirectory not in $PATH, and replaces them with symlinks to a single
executable named 'futility'. At the moment that utility just execs the
original utilities (optionally logging that fact first).

Ultimately, the old utilities will be subsumed into a single binary instead
of multiple separate executables.

There is a matching CL needed to make the recovery image creation work.

BUG=chromium-os:37062
BRANCH=none
CQ-DEPEND=CL:44864
TEST=auto

To test, build everything, test everything. It should work as before in all
cases. I have built normal images, test images, factory installers, recovery
images; they all seem to work.

I've run trybots on daisy-paladin link-paladin lumpy-paladin and alex-paladin.

Change-Id: Ie93db676f2ed2a64e4b13b3b5dc6b65a77db0f8c
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44871
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
/external/vboot_reference/Makefile
5fed2a667096341160db8643a4a057e328953a1d 05-Mar-2013 Bill Richardson <wfrichar@chromium.org> Rename Strncat to StrnAppend, use it instead of strncat.

Strncat() looks almost like strncat(), but it's completely different. Change
the name to reduce confusion.

Also fix a place where strncat() was misused anyway.

BUG=none
BRANCH=all
TEST=manual

sudo FEATURES=test emerge vboot_reference
FEATURES=test emerge-$BOARD vboot_reference

Change-Id: I39c30d391aa6566ec67461462e800720ade66a91
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44572
/external/vboot_reference/Makefile
81a0b3de707b4e00958faf36f41b8f3d7bac6808 28-Feb-2013 Bill Richardson <wfrichar@chromium.org> Move CgptManager from vboot_reference to installer

The C++ wrapper around various vboot_reference functions doesn't belong in
the vboot repo itself. Put it in the installer repo instead.

BUG=chromium-os:39228
BRANCH=none
TEST=auto
CQ-DEPEND=CL:44441, CL:44443

Refactoring only, no new code. Everything should continue to work as before.

Change-Id: I15ba416987e38905825fedcc87d7b75ebdc4fd1f
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44442
Reviewed-by: Jay Srinivasan <jaysri@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
c7c6e5d2f7076fe512b692411f0d05d4bf76d91f 28-Feb-2013 Bill Richardson <wfrichar@chromium.org> Remove the mount-encrypted utility from vboot_reference

This utility sets up the encrypted directories for Chrome OS at boot time.
It uses some of the TPM-related libraries from vboot_reference, but it
isn't really part of the verified boot process itself so I'm moving it into
the cryptohome repo where it belongs.

This CL just removes the code from vboot_reference. Another CL will put it
into cryptohome, and yet another will change the ebuilds to notices.

BUG=chromium-os:39264
BRANCH=none
TEST=auto
CQ-DEPEND=CL:44301, CL:44302

This is just refactoring, not a new feature. After all the CLs are in, the
platform_EncryptedStateful autotest should continue to pass as before.

Change-Id: I6bb436ae57140e89581cb0be5dc2385b8f3ff5e2
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44303
Reviewed-by: Kees Cook <keescook@chromium.org>
/external/vboot_reference/Makefile
2f8ac1588601437ef00fa985a3ad3a7df7e8ed03 26-Feb-2013 Bill Richardson <wfrichar@chromium.org> Point to new libchrome-180609 for CgptManager stuff

vboot_reference really shouldn't have anything to do with this.

BUG=chromium-os:38949
BRANCH=none
TEST=manual
CQ-DEPEND=CL:44062

Tested by running cbuildbot.

Change-Id: Idd99cb698a735b85169e7ebcbb0b7dc82c057b40
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44063
Reviewed-by: Chris Masone <cmasone@chromium.org>
/external/vboot_reference/Makefile
93943266c597ad66300445a04afa01270f2b5763 26-Feb-2013 Randall Spangler <rspangler@chromium.org> Split off modules required for VbInit() and VbSelectFirmware()

This makes it more obvious which modules and VbEx*() functions must be
implemented to call these entry points.

This change only moves functions between modules and adds two
link-test binaries; it doesn't change any functionality.

BUG=chromium-os:39262
BRANCH=none
TEST=make && make runtests

Change-Id: If3edf0b1989b631f0e7ad18de7ccdad8315181b5
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44076
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
c9bf348239af9bcf6c1e9eb6b83cd0ad9b3ea084 13-Feb-2013 Bill Richardson <wfrichar@chromium.org> Let the Makefile install the utilities, not the ebuild.

The ebuild has been pulling various bits of the vboot utilities out of the
build directory and shoving them random places. That's really the job of the
Makefile's "install" target. This cleans it up a bit.

Note that there's a simultaneous CL for the ebuild that must go in at the
same time.

BUG=chromium-os:37062
BRANCH=none
TEST=none
CQ-DEPEND=CL:43236

This is just a refactoring of the Makefile/ebuild interaction. The end
result should be the same: install the vboot utilities in the correct places
on both host and target.

I ran:

sudo emerge vboot_reference
emerge-link vboot_reference

And inspected every file that was touched as a result. I ran a trybot on
daisy-paladin link-paladin lumpy-paladin, too. Seems to be working.

Change-Id: I1aac93a62609c1c9840cafca7cb00c92f7cdc905
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43237
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
7f43669630cb42e40ca6ddc1128eefea8fd339d9 05-Feb-2013 Randall Spangler <rspangler@chromium.org> Add more vboot_api_kernel tests

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests && FEATURES=test emerge-daisy vboot_reference

Change-Id: Ib280b80ba707f8a2141d728f78ae296774b1301a
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42669
/external/vboot_reference/Makefile
0714d9de56da3a5c686b26755d15aa6788c727d4 05-Feb-2013 Randall Spangler <rspangler@chromium.org> Fix and enable vboot_api_kernel_tests

Previously, these were not being run, and failed due to a test config
problem when they were run (vboot_api_kernel.c worked correctly, but
the test checked the wrong recovery reason).

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests && FEATURES=test emerge-daisy vboot_reference

Change-Id: Ibefe5fe32f99a2c40f619a85df1bbfc81eb0c26c
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42668
/external/vboot_reference/Makefile
49cb0d3471e768da11fe76b65769bd57dca38bd7 29-Jan-2013 Randall Spangler <rspangler@chromium.org> Add kernel tests

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests

Change-Id: Iee7c965d5c29063259c66d0ccb117c60f4f4a92e
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42314
/external/vboot_reference/Makefile
c3d488d155961d2849dfdaa4f0461df1aa95c2ca 29-Jan-2013 Randall Spangler <rspangler@chromium.org> Add tlcl tests

Verifies the right TPM commands are called, but doesn't check at a
detailed level that they're packed properly.

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests

Change-Id: I6c14db083ac0a40d4738582d200d9687cddb99de
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42261
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
786a5dca74387de5ffdc51ca5a099a4e90f406da 24-Jan-2013 Randall Spangler <rspangler@chromium.org> Start adding display tests

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests

Change-Id: Idd1c275077a9a00cd2f7eab684238eb5b2d235dd
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42015
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
45cc0f2c0a48b377520842597769a5813cf55902 25-Jan-2013 Randall Spangler <rspangler@chromium.org> Fix incorrect CFLAGS when compiling for host

Both HOSTLIB and FWLIB depend on FWLIB_OBJS, and it's the OBJS which
need to override their CFLAGS. The way it was, depending on the order
of evaluation of HOSTLIB and FWLIB, the OBJS would get compiled with
different flags.

So 'make' worked, because it depended on fwlib before hostlib. But
'make runtests' failed, because it depended on hostlib but not fwlib.

BUG=none
BRANCH=none
TEST=make runtests

Change-Id: Id4e4cb4f7a58c7ab8d9fd00d91c4ab8f4518d4bc
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42014
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
0f872495cab2bcd8fc74f478bdbfd4293a67b47c 24-Jan-2013 Randall Spangler <rspangler@chromium.org> Remove unused vbutil_ec

EC verification is done via software sync; the EC doesn't do vboot on
its own.

BUG=chromium-os:38139
BRANCH=none
TEST=manual

make runtests
emerge-link vboot_reference chromeos-u-boot chromeos-bootimage

Change-Id: I6e5c0db8fc54b474f044d37c2603a9c116747a85
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41953
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
a3eac79f5070747e326da631c1eec155f0389919 23-Jan-2013 Randall Spangler <rspangler@chromium.org> Improve coverage of rollback_index.c

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests

Change-Id: I21b62b5dd3fc6037f54f7c3bac768c2b67a4c12d
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41859
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
6dbf9d9160b2927d76017d0f51919e0880f9b2cc 23-Jan-2013 Randall Spangler <rspangler@chromium.org> Improve coverage of vbnvstorage test

BUG=chromium-os:38139
BRANCH=none
TEST=make runtests

Change-Id: I93aabedb99fdeba01954a4b59e3e089b4087380c
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41850
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
61a2eb389d9903b1b5a88d3e11ad5d713b3a364a 23-Jan-2013 Randall Spangler <rspangler@chromium.org> Fix architecture definitions.

We should use only arm, x86, and x86_64; currently we also use i386 to
mean x86, and amd64 to mean x86_64.

BUG=chromium-os:26317
BRANCH=none
TEST=manual

sudo FEATURES=test emerge vboot_reference
FEATURES=test emerge-link vboot_reference chromeos-u-boot chromeos-installer
FEATURES=test emerge-daisy vboot_reference chromeos-u-boot chromeos-installer
FEATURES=test emerge-x86-alex vboot_reference chromeos-installer
make && make runtests (both inside and outside chroot)

Change-Id: I4fb64fafa9c48a76ded862e074776cab9ea54ab3
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41838
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
59d7508c2261a8371715b28f663b8b2efbb5a895 23-Jan-2013 Randall Spangler <rspangler@chromium.org> Clean up building code coverage

Now 'COV=1 make' will make coverage automagically.

Coverage stats are reported separately for the firmware subdirectory,
for easier tracking.

BUG=chromium-os:38139
BRANCH=none
TEST='COV=1 make' then browse to build/coverage/index.html

Change-Id: Ie671a82b402beeb17882536f89b9230821fc4d13
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41824
/external/vboot_reference/Makefile
e061a256549607a56d771eb8ddae5d0dd90d519c 23-Jan-2013 Randall Spangler <rspangler@chromium.org> Convert common tests from shell scripts to running directly

So they can run under qemu.

Also, mount /proc and /dev before running qemu in the chroot.

BUG=chromium-os:37916
BRANCH=none
TEST=manual

make runtests
sudo FEATURES=test emerge vboot_reference
FEATURES=test emerge-daisy vboot_reference
FEATURES=test emerge-link vboot_reference

Change-Id: I940ce370bd149621e666250b07cf9219f9e22bac
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41786
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
eecc18fc953bd367d3cb5aa006df4b153d20a45e 18-Jan-2013 Bill Richardson <wfrichar@chromium.org> Complete refactoring of Makefile

Cleaning up the Makefile to add correct dependencies, avoid using variables
before they're fully defined (which required .SECONDEXPANSION to work
around), generally improve readability.

There are so many changes that there's no point in trying to compare old
vs new - just look at the final result. And this still isn't perfect, but
it's a big step forward.

BUG=chromium-os:37062
BRANCH=none
TEST=manual

All these should continue to work:

make && make runtests
sudo emerge vboot_reference
emerge-$BOARD vboot_reference

Change-Id: Ic05a19231155d7e6427732e41d1682012d2dcdca
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41768
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
844bce57471153664c78993dab453e87891bb969 16-Jan-2013 Randall Spangler <rspangler@chromium.org> Run some tests under qemu when cross-compiling

BUG=chromium-os:26317
BRANCH=none
TEST=manual

sudo FEATURES=test emerge vboot_reference
FEATURES=test emerge-link vboot_reference chromeos-u-boot chromeos-installer
FEATURES=test emerge-daisy vboot_reference chromeos-u-boot chromeos-installer
make && make runtests (both inside and outside chroot)

Change-Id: Ie829e375736ce0df46ddd5a3345efb0ca7e33aba
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41317
/external/vboot_reference/Makefile
a808dc944284e6eba39a8f19ddb46bc61c34de8a 14-Jan-2013 Randall Spangler <rspangler@chromium.org> Fix missing dependency

BUG=chromium-os:26317
BRANCH=none
TEST=make && make runtests

Change-Id: I420e81a9f9cb1333c233abedfad5cae8984f11b7
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41233
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
826db09fcec194951e1dc71002d6a92620fbb46b 14-Jan-2013 Bill Richardson <wfrichar@chromium.org> Use 'install' to do installation, prepare for futility installation.

Previously we've been using manual cp and chmod operations to implement
"make install". This switches to using the install utility instead, which
can handle permissions and so forth.

This also tweaks the DESTDIR slightly to prepare the way for futility.

BUG=chromium-os:26317
BRANCH=none
TEST=manual

Run

sudo emerge vboot_reference

Shouldn't see any difference.

Change-Id: I667ddbb9de3ab7713921ddd734d1fbcbe3b936b1
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41228
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
acb2ee977b8dd139b01b68d0e269ea6bcc425c2b 12-Jan-2013 Bill Richardson <wfrichar@chromium.org> Add .PHONY targets for phony targets

We have a bunch of manual dependency targets. They need to be marked as
.PHONY so that they'll always work.

Also made the spacing around the ':' more consistent so it's easier to find
specific instances.

BUG=chromium-os:26317
BRANCH=none
TEST=manual

sudo emerge vboot_reference
emerge-link vboot_reference chromeos-u-boot chromeos-installer
emerge-daisy vboot_reference chromeos-u-boot chromeos-installer

Change-Id: I00a1b8abcd588bdbab33b172c64a4b305b6d7237
Reviewed-on: https://gerrit.chromium.org/gerrit/41185
Commit-Queue: Bill Richardson <wfrichar@chromium.org>
Tested-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
17f8d341099120da78a6ca71165834eefb0960ed 11-Jan-2013 Randall Spangler <rspangler@chromium.org> Rename files and defines to simplify makefile.

BUG=chromium-os:26317
BRANCH=none
TEST=manual

sudo emerge vboot_reference
emerge-link vboot_reference chromeos-u-boot chromeos-installer
emerge-daisy vboot_reference chromeos-u-boot chromeos-installer

Signed-off-by: Randall Spangler <rspangler@chromium.org>
Change-Id: I8c55ca40f3f0cacf08530ab63c886fe351bcee8e
Reviewed-on: https://gerrit.chromium.org/gerrit/41152
/external/vboot_reference/Makefile
5d9bbf2bbd7b8dfad45d8ddfea6512987736e523 08-Jan-2013 Randall Spangler <rspangler@chromium.org> Unify vboot build into a single makefile

This is a necessary precursor to getting coverage working.

BUG=chromium-os:26317
BRANCH=none
TEST=manual

sudo emerge vboot_reference
emerge-link vboot_reference chromeos-u-boot
emerge-daisy vboot_reference chromeos-u-boot

Change-Id: Ibed91c64a5ca5fa486169d64fb01a9e868ce27e5
Signed-off-by: Randall Spangler <rspangler@chromium.org>
(cherry picked from commit 13ed1f4812f810ee0a47b946ad990f1fa93f366c)
Reviewed-on: https://gerrit.chromium.org/gerrit/40906
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/Makefile
e8cfa31d548c069d73c304fea522b527fe7c7dd6 03-Jan-2013 Randall Spangler <rspangler@chromium.org> Move lengthy tests from 'make runtests' to 'make runlongtests'

This reduces 'make runtests' from ~90 sec on a z620 to ~8 sec, which
is short enough we can run it as part of the continuous build.

BUG=chromium-os:26317
BRANCH=none
TEST=make && time make runtests && time make runlongtests

Change-Id: I8165efaf8b8290ca3c8f8da73e3f8a54c2bc19f9
Reviewed-on: https://gerrit.chromium.org/gerrit/40374
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Randall Spangler <rspangler@chromium.org>
Tested-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
0aedbe1950225f8c8f3e535efa9575dc3a9c970d 20-Dec-2012 Gabe Black <gabeblack@chromium.org> Add support for a V option which selects verbose Makefile output.

When V=1, the full command lines are printed. When V is not 1, then only a
small summary line is printed which shows what commands are being executed.
The command lines themselves are usually quite long and are overwhelming to
see fly by on the console. Abbreviated command lines are easier to read and
don't fill up your console so quickly.

This change is primarily targeted at vboot_fw.a and probably excludes some
things which could also be converted. The indentation between the action
string (OBJCOPY, CC, etc.) and the target is three spaces longer than "normal",
aka what's used in depthcharge, so that when this make is run from the other,
you can tell the difference between the commands run by each.

BUG=chrome-os-partner:8339
TEST=Built with and without V=1 and saw and did not see the full command
lines, respectively.
BRANCH=None

Change-Id: Ibee244c24dc44b8da109b8c23ac7273174836bb9
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/40011
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
/external/vboot_reference/Makefile
121f3db2d586ac730318455778a94fc3e9cd294c 07-Jun-2012 Mike Frysinger <vapier@chromium.org> respect pkg-config env settings

Rather than use the host's pkg-config, we want to use the target's.
This way we query the right .pc files.

BUG=None
TEST=`emerge vboot_reference` still works
TEST=`emerge-arm-generic vboot_reference` still works

Change-Id: I083a987ee6c23716f8d79eb14e7c38c12e18b8f8
Reviewed-on: https://gerrit.chromium.org/gerrit/24727
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
/external/vboot_reference/Makefile
d50b27d15de8cc9e37410fc52d3184f17e0db5bb 11-May-2012 Doug Anderson <dianders@chromium.org> Switch vboot reference to hardfp

This allows it to compile without switching to a private libgcc.

BUG=chromium-os:30807
TEST=While making sure u-boot, vboot_reference and
vboot_reference-firmware were cros_workoned and grabbing
the associated U-Boot change (I3cdc86ee2846814a6522c7874e5b438be94164ab),
I did:

1. emerge-daisy chromeos-u-boot vboot_reference vboot_reference-firmware
2. cros_bundle_firmware --add-config-int load_env 1 \
-d exynos5250-daisy -b daisy -o /tmp/uboot.bin
3. sudo dd if=/tmp/uboot.bin of=${SDCARD} bs=512 seek=1
...and then booted that.

Change-Id: I49d567e51d95c77f0e0fef8ec0f678e51b5ab77f
Reviewed-on: https://gerrit.chromium.org/gerrit/22479
Tested-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Terry Lambert <tlambert@chromium.org>
Tested-by: Terry Lambert <tlambert@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Commit-Ready: Doug Anderson <dianders@chromium.org>
/external/vboot_reference/Makefile
f47291926afce3235421f73811a04324195f3e13 03-May-2012 Bill Richardson <wfrichar@chromium.org> Require -Wall -Werror for everything.

BUG=none
TEST=none

Change-Id: Ib9781238274285f73d00d8fca4ecda28fc2c6678
Reviewed-on: https://gerrit.chromium.org/gerrit/21748
Commit-Ready: Bill Richardson <wfrichar@chromium.org>
Tested-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
/external/vboot_reference/Makefile
5fac757abef456bf66d9dd96b316ec61fe04b48e 23-Feb-2012 Jay Srinivasan <jaysri@chromium.org> Enable building of Cgpt C++ Library for 32-bit.

The existing library had a bunch of dependencies which are too many to
build for the 32-bit platform. So this checkin prunes the dependency
list by building only things that are absolutely required for the
functionality used in 32-bit Post-Installer.

Made the use of libuuid restricted only to cgpt and unit tests so that
libcgpt-cc.a doesn't depend on it.

BUG=chromium-os:25374
TEST=Built 32-bit and 64-bit. Tested 32-bit post-install.
Change-Id: Idd0826fdf507a95728fee8adac9520e26f05d469
Reviewed-on: https://gerrit.chromium.org/gerrit/16433
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Commit-Ready: Jay Srinivasan <jaysri@chromium.org>
Tested-by: Jay Srinivasan <jaysri@chromium.org>
/external/vboot_reference/Makefile
250549d3e742cddaf72b4f53d5739e54faf5db96 17-Feb-2012 Jay Srinivasan <jaysri@chromium.org> Implementation of CgptManager C++ library and unit tests.

CgptManager exposes the cgpt commands via a C++ library so that
the post-installer for 32- to 64-bit upgrade can link directly
against a library and thus avoid any shell dependency.

The default make target will not build libcgpt-cc.a since it
requires some dependencies that are available only in chroot.
A separate follow-up checkin to the vboot_reference
ebuild will enable emerging the libcgpt-cc.a by default.

BUG=chromium-os:25374
TEST=Tested with the new unit tests for CgptManager,
ran existing cgpt unit tests, as well as running the
cgpt commands manually. Built on both amd64 and x86.
Tested that vboot_reference is also buildable outside of chroot.
Tested that vboot_reference-firmware and vboot_reference-tests
also build fine with these changes.
CQ-DEPEND=I99f6c321e09c2425eaa8171d78685d2d731954c8
Change-Id: I59a896255b8ea2fc8b1b2150ae7c4ff9d0769699
Reviewed-on: https://gerrit.chromium.org/gerrit/15730
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Ready: Jay Srinivasan <jaysri@chromium.org>
Tested-by: Jay Srinivasan <jaysri@chromium.org>
/external/vboot_reference/Makefile
ed5fcc0191ca1ce959b4614f3f6fa861135f506f 14-Feb-2012 Don Garrett <dgarrett@google.com> Rename dump_kernel_config.a to libdump_kernel_config.a.

It should have been named this way from the beginning.

TEST=Made/emerged. Since it's only used at build time, this is sufficient.
BUG=None

Change-Id: I60cc6510e8494e3dde852efbdcb5af156e7400ac
Reviewed-on: https://gerrit.chromium.org/gerrit/15835
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
/external/vboot_reference/Makefile
0fc95946347a3318b41372aa8e2a4509a384e92b 25-Jan-2012 Don Garrett <dgarrett@google.com> Bundle up the utilities methods used in dump_kernel_config and
export them as a library to be used by post installer programs.

A matching change to vboot_reference-9999.ebuild is also required.

TEST=Built, verified library symbols with nm on x86-mario, amd64-generic.
BUG=chromium-os:25381

Change-Id: Icb23838a8cd804e0c66718c6d4d60f639ee6b72f
Reviewed-on: https://gerrit.chromium.org/gerrit/14770
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
/external/vboot_reference/Makefile
6d696e532c6a0c93ad9b915c59dad4144e6f1b33 14-Nov-2011 Simon Glass <sjg@chromium.org> Allow caller to specify build output directory

This changes the Makefile to set the BUILD directory only if the caller
does not specify it.

This allows U-Boot to build vboot reference and put the resulting binaries
into its own output directory.

BUG=chromium-os:16808
TEST=emerge vboot_reference-firmware for tegra2-seaboard, x86-mario

Change-Id: I6b0bba47e397f86a130e67c4e18fbcf5fffdfd68
Reviewed-on: https://gerrit.chromium.org/gerrit/11638
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Ready: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
/external/vboot_reference/Makefile
8e85e987739281161ece1dbc9ff2b73f3e8e1e35 22-Nov-2011 Simon Glass <sjg@chromium.org> Revert "Revert "Add x86_64 architecture support""

This reverts commit 354630570900cd5c2180610acfa47422ff484fe6

Change-Id: I832a675911f66837f31ea47d19babf5c656bfaf9
Reviewed-on: https://gerrit.chromium.org/gerrit/12044
Commit-Ready: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
/external/vboot_reference/Makefile
b265c34321c01bd279f3a1df0a2fea3601f732ee 17-Nov-2011 Simon Glass <sjg@chromium.org> Revert "Revert "Revert "Revert "Break out common compile flags""""

This reverts commit 9d7d7c653bfac91180ec6e4a8047be8dc2e73448

Change-Id: Id4357ee6f22666b47734a8f754da67317265d348
Reviewed-on: https://gerrit.chromium.org/gerrit/11809
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Ready: Simon Glass <sjg@chromium.org>
/external/vboot_reference/Makefile
f287021864c70d3b642152f27d2f1ae8bb5a1a02 16-Nov-2011 David Hendricks <dhendrix@chromium.org> Revert "Revert "Revert "Break out common compile flags"""

reverted again (due to build breakage on ARM)

This reverts commit 00e7bb9dd02287db868bc291e25d27066fc486da

Change-Id: I9d7d7c653bfac91180ec6e4a8047be8dc2e73448
Reviewed-on: https://gerrit.chromium.org/gerrit/11789
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Tested-by: David Hendricks <dhendrix@chromium.org>
/external/vboot_reference/Makefile
25c36746a2c91831e8d7a36246e7413420bec6f8 16-Nov-2011 Simon Glass <sjg@chromium.org> Revert "Revert "Break out common compile flags""

This reverts commit 45e1067502da0c3cbf77d8b6aafc9d17b461cea3

Change-Id: I00e7bb9dd02287db868bc291e25d27066fc486da
Reviewed-on: https://gerrit.chromium.org/gerrit/11746
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Ready: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
/external/vboot_reference/Makefile
6f5da79114987c3b3881230f2efad6f50dd564ae 15-Nov-2011 Nick Sanders <nsanders@chromium.org> Revert "Break out common compile flags"

This reverts commit 5ca219f8d6eb854d95c5d811a4cfdeff2d8405b4

Mysterious ARM PFQ breakage

Change-Id: I45e1067502da0c3cbf77d8b6aafc9d17b461cea3
Reviewed-on: https://gerrit.chromium.org/gerrit/11663
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Nick Sanders <nsanders@chromium.org>
Tested-by: Nick Sanders <nsanders@chromium.org>
/external/vboot_reference/Makefile
52499b8f3c9db6e7bd948a48d3c7c7e49b722cf8 15-Nov-2011 Nick Sanders <nsanders@chromium.org> Revert "Add x86_64 architecture support"

This reverts commit fbf9de6b2ba3162a7183211872bd23ca52f58289

Mysterious ARM PFQ breakage

Change-Id: I354630570900cd5c2180610acfa47422ff484fe6
Reviewed-on: https://gerrit.chromium.org/gerrit/11664
Reviewed-by: Nick Sanders <nsanders@chromium.org>
Tested-by: Nick Sanders <nsanders@chromium.org>
/external/vboot_reference/Makefile
bf5540eb1e277f8dfad11691311ef062870e7a9c 08-Aug-2011 Simon Glass <sjg@chromium.org> Add x86_64 architecture support

This is required for U-Boot's sandbox test system.

BUG=chromium-os:16808
TEST=emerge vboot_reference-firmware for tegra2-seaboard, x86-mario

Change-Id: I18b48b069dc56f9b2c826de99780dfff1e544ded
Reviewed-on: https://gerrit.chromium.org/gerrit/5980
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
/external/vboot_reference/Makefile
77ce2e864e09d82111c92c5177ede3bb5163aeb5 11-Nov-2011 Simon Glass <sjg@chromium.org> Break out common compile flags

Many of the compile flags are common between archs, so this makes that
more obvious.

BUG=chromium-os:16808
TEST=emerge vboot_reference-firmware for tegra2-seaboard, x86-mario

Change-Id: I62bfbaadac392e3dd03d6997f24055fafac162af
Reviewed-on: https://gerrit.chromium.org/gerrit/11549
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
/external/vboot_reference/Makefile
b7d2f1efcab4356cabfdbe941cf9a35ac084eca4 02-Nov-2011 Stefan Reinauer <reinauer@chromium.org> vboot_reference: clean up CFLAGS and enable unrolled loops

- loop unrolling has a positive effect on execution speed.
- This change also drops the -march=i386 and thus allows
the compiler to use SSE instructions.
- A few duplicate options are dropped from CFLAGS.
- drop -fno-toplevel-reordering. This sneaked in from
u-boot where it might be needed by some drivers.

With this change I just successfully booted my Stumpy in 833ms

BUG=chrome-os-partner:4675
TEST=boot tested on stumpy
Change-Id: I805cbcaec48b4f8d1d8fa7d7bed9241178f59a8e
Reviewed-on: https://gerrit.chromium.org/gerrit/11061
Tested-by: Stefan Reinauer <reinauer@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
6b0003c6381a7e69818b0b34b358c2cfb1393043 14-Oct-2011 Che-Liang Chiou <clchiou@chromium.org> Remove -isystem from CFLAGS for firmware build

The -isystem and the rest of the CFLAGS for firmware builds is copied
from U-Boot, where U-Boot generates it on the fly, as a temporary
solution before we figure out how make the CFLAGS right.

Given that, the hard-coded -isystem is both incorrect (since tool chain
is upgraded to a new version) and unnecessary. It is unnecessary
because firmware lib is carefully written that the lib does not (and
probably should not) depend on any system header.

Even if in the future a system header is added to the firmware lib,
because firmware build sets -nostdinc to CFLAGS, the compiler will
safely report missing header instead of silently using the standard
system header.

So this commit removes the -isystem.

BUG=chromium-os:16808
TEST=Make sure non-firmware build still works by running
`emerge-{tegra2_seaboard,x86-alex} vboot_reference`
TEST=Run firmware build successfully
`emerge-{tegra2_seaboard,x86-alex} vboot_reference-firmware`
TEST=Add #include<stdarg.h> to any header in firmware/include/ and run
firmware build again and observe build fail on missing stdarg.h

Change-Id: I8291390f21a975446993640d7a92a3eed4750e32
Reviewed-on: http://gerrit.chromium.org/gerrit/10072
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/Makefile
7604a7dba239c1f4f1ce2561d3c5aa968dc53d8d 22-Jun-2011 Che-Liang Chiou <clchiou@chromium.org> make: remove typo quote marks

BUG=chromium-os:16808
TEST=run "make FIRMWARE_ARCH=arm" and make sure CFLAGS are set properly

Change-Id: I4cd5d8d03dabf256706a2961b6776c64c03c72ac
Reviewed-on: http://gerrit.chromium.org/gerrit/2966
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
/external/vboot_reference/Makefile
74359b755c4a203df0fe3bf51fc53d5de87d1fbf 22-Jun-2011 Che-Liang Chiou <clchiou@chromium.org> make: temporarily hard-coded compiler flags for firmware builds

Before this commit, u-boot and vboot_reference are inter-dependent on
each other; the former needs to be linked with the latter, and the
latter needs the compiler flags of the former to be built properly.

This commit hard-code u-boot's compiler flags into Makefile, and thus
removes the inter-dependency. Note that this is just a temporarily
measure before we get the compiler flags right.

BUG=chromium-os:16808
TEST=emerge-{tegra2_seaboard,x86-alex} vboot_reference-firmware

Change-Id: Ia3b487b32775afd98fa15db29dbff51ae9d8a94d
Reviewed-on: http://gerrit.chromium.org/gerrit/2947
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Tested-by: Che-Liang Chiou <clchiou@chromium.org>
/external/vboot_reference/Makefile
8511f7891b5eca7ae93a147964201a4b57210ff6 22-Apr-2011 Che-Liang Chiou <clchiou@chromium.org> Add option to use mocked TPM driver

Some ARM boards, such as Seaboard, have buggy TPM chip that bricks the borad.
This commit adds a option to use mocked TPM driver.

R=rongchang@chromium.org,rspangler@chromium.org,wad@chromium.org
BUG=chromium-os:14239
TEST=Run verified boot on Seaboard

Review URL: http://codereview.chromium.org/6883040

Change-Id: Iae6133f081c2e3d9daa4e14bb711550e2658e9df
/external/vboot_reference/Makefile
287beaed7f8ceff679c57664d4da008c6234edfd 11-Apr-2011 Randall Spangler <rspangler@chromium.org> Add default arch to fix compiling outside emake

Change-Id: I225c2ee7e703aad961c50ec8988ed2466886f266

R=wfrichar@chromium.org
BUG=none
TEST=make && make runtests

Review URL: http://codereview.chromium.org/6820018
/external/vboot_reference/Makefile
856e072e8119cab07fd884e54853f1c3897452ee 08-Feb-2011 Bill Richardson <wfrichar@chromium.org> Add test framework for bmpblk_utility.

BUG=chromium-os:11742
TEST=manual

Check out sources, run:

cd src/platform/vboot_reference
make
make runbmptests

It should pass.

Change-Id: I50ebdef26662e7446828315a3f5e2786624508b9

Review URL: http://codereview.chromium.org/6246150
/external/vboot_reference/Makefile
34be8273e0fb80a6654deab650e581b0dc9046a4 27-Jan-2011 Che-Liang Chiou <clchiou@chromium.org> Import firmware compiler flags

If passed into Makefile, firmware compiler flags (CC and CFLAGS) will
override old values to make sure that the compiled vboot_reference
library has calling convention and alike compatible with the firmware.

CL:6257018 had caused buildbot failure due to combination of two
reasons:

First, the Makefile rule for tlcl_generator that uses HOSTCC, which is
not the cross-compiler passed to Makefile, but wrongly passes CFLAGS,
rather than stuff like HOSTCFLAGS, into HOSTCC.

Second, CL:6257018 changed the behavior of Makefile, and so it did not
override CFLAGS value passed by emerge-${BOARD}, which is incompatible
with HOSTCC.

Thus, this CL preserves the previous the behavior of Makefile that
always overrides CFLAGS value received from outside world.

See also CL:6355014

BUG=None
TEST=See below

1. Run emerge-tegra2_seaboard vboot_reference-firmware successfully, and
check if vboot.a is compiled with CFLAGS from u-boot-cflags.mk

2. Run emerge and emerge-${BOARD} vboot_reference successfully

Review URL: http://codereview.chromium.org/6297017

Change-Id: I4b85079c520efdb7043c012b994817b47ebe831c
/external/vboot_reference/Makefile
9f1973e271937f8b494c9f247f40dafd7a80b58b 27-Jan-2011 Chris Sosa <sosa@chromium.org> Revert "Import firmware compiler flags"

This reverts commit 440ad516c4840882557bfb76ddf497ea0041fc03.

BUG=
TEST=

Review URL: http://codereview.chromium.org/6396002

Change-Id: I6b241e418cbba62c9dc82549f2a5c7a9485db1df
/external/vboot_reference/Makefile
440ad516c4840882557bfb76ddf497ea0041fc03 27-Jan-2011 Che-Liang Chiou <clchiou@chromium.org> Import firmware compiler flags

If passed into Makefile, compiler flags for firmware (so far CC and CFLAGS) will
override old values to make sure that the compiled vboot_reference library has
calling convention and etc. compatible with the firmware.

See also CL:6355014

BUG=None
TEST=See the CL for related ebuilds

Review URL: http://codereview.chromium.org/6257018

Change-Id: I46f77c576d2355f5cde506a0240dd2e2d4a74f0e
/external/vboot_reference/Makefile
0a0e8d0bb26c951a895c5034a4c1c12f3d4e8707 30-Nov-2010 Che-Liang Chiou <clchiou@chromium.org> Add firmware build mode to Makefiles

This CL also includes a biosincludes.h for ARM platform.

The changes to ebuilds are in a separated CL:5352002.

BUG=None
TEST=Run 'make' and 'make FIRMWARE_ARCH=arm' successfully

Review URL: http://codereview.chromium.org/5301004

Change-Id: I76738972a8215e346910a76a664a91f6f6927747
/external/vboot_reference/Makefile
89678602e66df24dea75b384ce079519cb8ec2a4 09-Nov-2010 Che-Liang Chiou <clchiou@chromium.org> Fix integration bugs (vboot side)

BUG=chromium-os:8621
TEST=See below

1. Build and run tests of vboot (including linktest)
$ make && make runtests

2. Check if *_stub.o are not in vboot_fw.a
$ nm /build/<board>/usr/lib/vboot_fw.a | grep _stub.o

3. Build and boot x86-generic image
$ ./build_packages --board=x86-generic && ./build_image --board=x86-generic
(Then successfully boot the image you just built)

See CL=4372001 for u-boot side changes

Review URL: http://codereview.chromium.org/4266002

Change-Id: Icc2bcc551c998f370e4b737fbe442ebf029cd81c
/external/vboot_reference/Makefile
5896b9664d088699e246de964a7c374af663a34e 25-Aug-2010 Luigi Semenzato <semenzato@google.com> Added new commands and reactivated full rebuild after fixing for ARM ebuild.

Review URL: http://codereview.chromium.org/3116025

Change-Id: Ideb82562f6b1c3ce5cd9e0b79de250d0a7bd976e
/external/vboot_reference/Makefile
dd4cfdffab458d90572cc578731848b6623b4649 04-Aug-2010 David Rochberg <rochberg@chromium.org> Temporarily remove problematic line while semenzato generates a real fix.

TBR: semenzato

BUG=None
TEST=emerge-arm-generic vboot_reference

Review URL: http://codereview.chromium.org/3069027
/external/vboot_reference/Makefile
50d48feb9e0df6a990cc5890ce14e1398798eeb1 04-Aug-2010 Luigi Semenzato <semenzato@google.com> Various bug fixes to tpm_lite. Some changes to the test suite.

Review URL: http://codereview.chromium.org/3091004
/external/vboot_reference/Makefile
b2b0fcc0f62fadce6f854bf14826a9778c0f7632 16-Jul-2010 vbendeb <vbendeb@chromium.org> Introduce ability to change the kernel command line.

After this change vbutil_kernel allows to repack an existing
signed ChromeOS kernel such that the kernel command line is
changed on operator's request.

The new command line parameter is --verbose which causes
--verify to print out current contents of the kernel
command line.

Some refactoring and cleaning were also done:
- provide a macro to access command line buffer inside
a kernel blob
- ReadConfigFile() a new wrapper to preprocess the
config file.
- keep the key_block and preamble in the blob when
unpacking an existing signed kernel for --repack and
--verify.
- make --pack expect at least one of the two:
--config or --keyblock, thus allowing to change the
command line without replacing anything else in the
signed kernel image.
- refactor Verify() to use OldBlob() to preprocess the
image.

The top level Makefile was changed to allow compiling for debugging.

Build with DEBUG=1 in the make command line to enable gdb debugging and debug printouts. Build with DISABLE_NDEBUG=1 in the make command line to enable cryptolib debug outputs.

BUG=http://code.google.com/p/chromium-os/issues/detail?id=4814

TEST=see below

1. Observe that all unit tests still pass by running

(vboot_reference $) RUNTESTS=1 make

2. On a working DVT system copy the running kernel into a
file using

dd if=/dev/sda2 of=/tmp/dev.kernel

and transfer the file to the host into /tmp/try/dev.kernel

Then create the new config file in /tmp/try/new.conf.txt and run the following commands:
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
(vboot_reference $) ./build/utility/vbutil_kernel --verify /tmp/try/dev.kernel --signpubkey tests/devkeys/kernel_subkey.vbpubk --verbose
Key block:
Size: 0x4b8
Data key algorithm: 4 RSA2048 SHA256
Data key version: 1
Flags: 7
Preamble:
Size: 0xfb48
Header version: 2.0
Kernel version: 1
Body load address: 0x100000
Body size: 0x302000
Bootloader address: 0x3fe000
Bootloader size: 0x4000
Body verification succeeded.
Config:
earlyprintk=serial,ttyS0,115200 console=ttyS0,115200 init=/sbin/init add_efi_memmap boot=local rootwait ro noresume noswap i915.modeset=1 loglevel=7 cros_secure root=/dev/sd%D%P dm_verity.error_behavior=2 dm_verity.max_bios=1024 dm="0 2097152 verity ROOT_DEV HASH_DEV 2097152 1 sha1 a7fbd641ba25488509987959d5756d802790ef8f" noinitrd

(vboot_reference $) ./build/utility/vbutil_kernel --repack /tmp/try/dev.kernel.repacked --signprivate tests/devkeys/kernel_data_key.vbprivk --oldblob /tmp/try/dev.kernel --config /tmp/try/new.conf.txt
(vboot_reference $) ./build/utility/vbutil_kernel --verify /tmp/try/dev.kernel.repacked --signpubkey tests/devkeys/kernel_subkey.vbpubk --verbose
Key block:
Size: 0x4b8
Data key algorithm: 4 RSA2048 SHA256
Data key version: 1
Flags: 7
Preamble:
Size: 0xfb48
Header version: 2.0
Kernel version: 1
Body load address: 0x100000
Body size: 0x302000
Bootloader address: 0x3fe000
Bootloader size: 0x4000
Body verification succeeded.
Config:
console=tty2 init=/sbin/init add_efi_memmap boot=local rootwait ro noresume noswap i915.modeset=1 loglevel=7 cros_secure root=/dev/sd%D%P dm_verity.error_behavior=2 dm_verity.max_bios=1024 dm="0 2097152 verity ROOT_DEV HASH_DEV 2097152 1 sha1 ff06384015a7726baff719ee68eab312b1d45570" noinitrd
(vboot_reference $)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Observe the chanegd command line printed by --verify --verbose. Then transfer the new kernel image back to the DVT system, dd it into /dev/sda2 and restart the DVT system.

Observe kernel startup messages dumped on the screen (due to the changed kernel command line).

Then examine /proc/cmdline to verify that the command line indeed matches the contents of /tmp/try/new.conf.txt on the host.

3. Build the code with

(vboot_reference$) DEBUG=1 make

observe that debug information is visible by gdb.

Build the code with

(vboot_reference$) DISABLE_DEBUG=1 make

and observe that -DNDEBUG is dropped from the compiler invocation line.

Review URL: http://codereview.chromium.org/3004001
/external/vboot_reference/Makefile
39f66114c03639715cb88774255f066a2d942557 14-Jul-2010 Randall Spangler <rspangler@chromium.org> Add tpm lite to vboot reference

Review URL: http://codereview.chromium.org/2919010
/external/vboot_reference/Makefile
18b814d9bc7fcf0a7e5d7fca57eed8229f0e9aac 09-Jul-2010 Luigi Semenzato <semenzato@google.com> New targets to compile and install rollback tests only with USE=rbtest emerge ...

Review URL: http://codereview.chromium.org/2962002
/external/vboot_reference/Makefile
93bccfc4525d677696c50c3bf280300b0b013bfd 09-Jul-2010 Randall Spangler <rspangler@chromium.org> Fix makefiles to work with ebuild

Review URL: http://codereview.chromium.org/2951002
/external/vboot_reference/Makefile
6832511d3f775c82e64094791afbd0fbc0287129 09-Jul-2010 Randall Spangler <rspangler@chromium.org> Also need to disable calling make tests install.

Review URL: http://codereview.chromium.org/2913005
/external/vboot_reference/Makefile
416f681882d8a35fa4c7ad9245a9e544c3115670 08-Jul-2010 Luigi Semenzato <semenzato@google.com> This test sets the TPM to a each of a large amount of "interesting" initial states, and runs the firmware code at user level.

This code compiles and installs using a modified ebuild (which needs to be committed after this change).

Review URL: http://codereview.chromium.org/2857030
/external/vboot_reference/Makefile
a08b5c9d032be485fe6e2790c23e8c9bb9fca2ad 01-Jul-2010 Bill Richardson <wfrichar@chromium.org> Adding --repack and --headeronly options to vbutil_kernel

The --repack option lets us sign a previously signed kernel blob with a new
kernel data key.

The --headeronly option is so we can emit the new verification header
separately from the kernel blob.

More work to come...

Review URL: http://codereview.chromium.org/2812034
/external/vboot_reference/Makefile
3ecaf776d82d29573be083b2e5c6ddc5b9f49c70 25-Jun-2010 vbendeb <vbendeb@chromium.org> Make vboot_reference build in MSVC command line environment.

This is a mostly NOOP change which modifies the source code
to compile cleanly in the MSVC command line build
environment.

A new makefile is introduced (msc/nmakefile) along with a
README.txt in the same directory explaining how to build
the code in the DOS window. As of this submission the build
is running in a 32 bit environment, the intention is to use
the same makefile for 64 bit builds in the future.

Enabling high compilation warnings level allowed to
identify a couple of bugs in the code which are being fixed.

Not all sources are being compiled in the MSVC environment,
only those in firmware/ and most of those in test/
subdirectories. The benchmark calculations require porting
of the timer facilities and are being postponed.

TEST

Built in DOS and linux environments. Ran unit tests in
linux environment.

Review URL: http://codereview.chromium.org/2809037
/external/vboot_reference/Makefile
e2ec98412e3a6e24620f8d8730c50c79b7ce7d25 24-Jun-2010 Randall Spangler <rspangler@chromium.org> Add VBDEBUG macro for debug output.

Replaced in firmware/ lib; not replaced in host-side utils/tests.

Review URL: http://codereview.chromium.org/2810026
/external/vboot_reference/Makefile
d0dae7a4388139161c56e5b3c37a6e079f9558fd 22-Jun-2010 Randall Spangler <rspangler@chromium.org> More cleanup of MSVC errors

Review URL: http://codereview.chromium.org/2871019
/external/vboot_reference/Makefile
6216f5abe9901e9c47789d55ae90243c6cc50aeb 21-Jun-2010 vbendeb <vbendeb@chromium.org> Include BIOS specific definitions when required.

This is a noop for host/chroot environment. When compiling
in the firmware space the standard include files will not be
included, the definitions will be supplied by the BIOS,
through the new file (firmware/include/sysincludes.h).

Testing
=======

RUNTESTS=1 make

in the top level directory succeeds, confirming that the
tree compiles cleanly and the unit tests pass.

Review URL: http://codereview.chromium.org/2862019
/external/vboot_reference/Makefile
620c38cf34eadcd222535b01fb71c5e9fbc1cb80 17-Jun-2010 Randall Spangler <rspangler@chromium.org> Remove unused files, and tidy the directory structure of the remaining ones.

Review URL: http://codereview.chromium.org/2815011
/external/vboot_reference/Makefile
d471f2a83961f1da85d49163da4782d2439b611f 16-Jun-2010 Randall Spangler <rspangler@chromium.org> Remove old firmware verification code, now that firmware build has switched to the new algorithms.

Review URL: http://codereview.chromium.org/2835006
/external/vboot_reference/Makefile
70e9509a2748c0ee8646d77f2a0e6fcbb1446505 15-Jun-2010 vbendeb <vbendeb@chromium.org> Rework the vboot_reference make system.

After this change the generated files are placed in a
separate tree (such thet they don't show in the
`git status' output anymore) and the dependencies are
followed properly (if a .h file changes the
appropriate .o files and apps get rebuilt).

Tested as follows:

> $ make clean
> $ make # build succeeds
> $ git status # shows clean directory
> $ RUNTESTS=1 make # (captured test output matches that of the test run before any changes)
> $ touch ./vboot_firmware/include/tlcl.h
> $ make # make succeeds
> $ find build -type f -newer ./vboot_firmware/include/tlcl.h
build/vboot_firmware/lib/rollback_index.o
build/vboot_firmware/lib/rollback_index.o.d
build/vboot_firmware/a.out
build/vboot_fw.a
build/utility/vbutil_key
build/utility/kernel_utility.d
build/utility/vbutil_key.d
build/utility/verify_data
build/utility/load_kernel_test.d
build/utility/vbutil_keyblock.d
build/utility/vbutil_kernel
build/utility/vbutil_kernel.d
build/utility/firmware_utility
build/utility/signature_digest_utility.d
build/utility/kernel_utility
build/utility/verify_data.d
build/utility/vbutil_keyblock
build/utility/signature_digest_utility
build/utility/load_kernel_test
build/utility/firmware_utility.d
build/tests/vboot_common3_tests
build/tests/vboot_common2_tests
build/host/a.out
$ >

Review URL: http://codereview.chromium.org/2845001
/external/vboot_reference/Makefile
f1372d9109d638fbb1a177a89ebaf64e7ee0637e 11-Jun-2010 Bill Richardson <wfrichar@chromium.org> Nearly complete rewrite of cgpt tool.

This fixes a number of bugs, adds a bunch of commands, and essentially makes
cgpt ready to use as a replacement for gpt. Still to do is to add commands
and options that will let it generated intentionally bad partitions, for use
in testing.

Review URL: http://codereview.chromium.org/2719008
/external/vboot_reference/Makefile
d183644564ec27c106a3eb1931f565fae167a058 10-Jun-2010 Randall Spangler <rspangler@chromium.org> Major refactoring of structures, with unit tests. This matches the doc I sent out earlier.

Firmware-side code for LoadKernel() is in place now. LoadFirmware() replacement coming soon.

The new functions are implemented in parallel to the existing ones (i.e., everything that used to work still does).

Review URL: http://codereview.chromium.org/2745007
/external/vboot_reference/Makefile
e642198b93cf2c50e279a6598f21f69564b13c6f 03-Jun-2010 Gaurav Shah <gauravsh@chromium.org> Add a Makefile target to run all vboot_reference tests.

Review URL: http://codereview.chromium.org/2561003
/external/vboot_reference/Makefile
371df8bbbf9088dc1206701bdc2294d9598bb339 27-May-2010 Bill Richardson <wfrichar@chromium.org> Add install target to put utilities into chroot (in /opt/bin/)

Review URL: http://codereview.chromium.org/2225008
/external/vboot_reference/Makefile
3003c1dd5048dde791e69850333539edc1c767eb 27-May-2010 Randall Spangler <rspangler@chromium.org> Moved cgptlib into vboot_firmware
Moved cgptlib tests into tests

Review URL: http://codereview.chromium.org/2303003
/external/vboot_reference/Makefile
0b8f35c6a56a0e645254dd7f07ca68e01c8ee629 26-May-2010 Bill Richardson <wfrichar@chromium.org> Rearrange vboot_reference directories to isolate external components.

This creates a new vboot_firmware subdirectory, and which contains the
entirety of the BIOS code. There shouldn't be anything in this directory
that is NOT required by the BIOS.

Review URL: http://codereview.chromium.org/2219004
/external/vboot_reference/Makefile
b31ddcec6a826986cd215725bf4defbc6021fe6b 21-May-2010 Louis Yung-Chieh Lo <yjlou@chromium.org> add cgpt framework and attribute support.

Review URL: http://codereview.chromium.org/2082015
/external/vboot_reference/Makefile
0dce41c2ece9020d5ac9bb68c9772432fac85e64 18-May-2010 Louis Yung-Chieh Lo <yjlou@chromium.org> rename cgpt files with cgptlib prefix (to avoid conflicts to cgpt utility)

Review URL: http://codereview.chromium.org/2082007
/external/vboot_reference/Makefile
fc70d72aaab4d558e39ec43832375267603bfd93 31-Mar-2010 Gaurav Shah <gauravsh@chromium.org> VBoot Reference: Refactoring Part 3

Refactor and restructure reference code into individual self-contain modules. I have revamped the way the code is structured to make it easy to determine which parts belong in the firmware and which are used by userland tools.

common/ - common utilities and stub functions (Firmware)
cryptolib/ - crypto library (Firmware)
misclibs/ - miscellaneous userland libraries (Userland)
sctips/ - Miscellaenous scripts (Userland)
tests/ - Tests (Userland)
vfirmware/ - Verified Firmware Implementation
vfirmware/firmware_image_fw.c (Firmware)
vfirmware/firmware_image.c (Userland)

vkernel/ - Verified Kernel Implementation
vkernel/kernel_image_fw.c (Firmware)
vkernel/kernel_image.c (Userland)

Review URL: http://codereview.chromium.org/1581005
/external/vboot_reference/Makefile
456678b0c45d9fa6ad45d5dc6769051a731207f3 11-Mar-2010 Gaurav Shah <gauravsh@google.com> Vboot Reference: Make length types explicitly sized.

Review URL: http://codereview.chromium.org/744002
/external/vboot_reference/Makefile
56c9f4dfa7cd00c8bd87da3813360f73f6df9546 03-Mar-2010 Gaurav Shah <gauravsh@google.com> Add a README and turn-on optimizations.

Review URL: http://codereview.chromium.org/665009
/external/vboot_reference/Makefile
27bfc8be07935ccb0dab251c5d084c64830163c2 17-Feb-2010 Gaurav Shah <gauravsh@google.com> Vboot Reference: Conditionally set Makefile CC variable so that it cross-compiles.

Review URL: http://codereview.chromium.org/629003
/external/vboot_reference/Makefile
7ca31f3e4d21bb7dfa39e1e4b9ab42c7047e66d8 17-Feb-2010 Gaurav Shah <gauravsh@google.com> Vboot Reference: Misc style fixes to Makefile and fix testing script.

Review URL: http://codereview.chromium.org/600114
/external/vboot_reference/Makefile
322536d2f9d30f42218cc9f2ab40574557da8a9a 29-Jan-2010 Gaurav Shah <gauravsh@google.com> RSA signature verification and SHA-1/256/512 reference implementation for verified boot.

Also contains some preliminary tests for these primitives.

Review URL: http://codereview.chromium.org/553023
/external/vboot_reference/Makefile