summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* vboot_reference: change position of 'const'stabilize-4068.0.Bstabilize-4035.0.Bstabilize-4008.0.BYunlian Jiang2013-04-121-2/+2
| | | | | | | | | | | | | | BUG=chromium:230465 BRANCH=none TEST=USE="chrome_internal" CFLAGS="-clang -print-cmdline" CXXFLAGS="-clang -print-cmdline" emerge-x86-alex vboot_reference passes. Change-Id: I42466ac27b1ad7f473fc9400461b553646c04617 Reviewed-on: https://gerrit.chromium.org/gerrit/47883 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Yunlian Jiang <yunlian@chromium.org> Tested-by: Yunlian Jiang <yunlian@chromium.org>
* vbutil_kernel: copy zeropage fullyKees Cook2013-04-112-14/+16
| | | | | | | | | | | | | | | | | | When copying the vmlinuz zeropage, the entries were being truncated even though the boot protocol version was being retained. This means that booting a kernel that depended on details from the zeropage's ignored areas would find invalid information. Fix this by copying out the entire possible range of memory. BUG=chromium:230212 TEST=kernels can boot with CONFIG_RELOCATABLE BRANCH=None Change-Id: Ifb94bedcf881e17ab20fff44d8c1c1885b15ef9e Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/47832 Reviewed-by: Luigi Semenzato <semenzato@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Clarify comment in VbInit()Randall Spangler2013-04-101-1/+2
| | | | | | | | | | | | | | | In recovery mode we ignore all TPM errors. Just a comment change; no code change. BUG=none BRANCH=none TEST=build vboot Change-Id: I43ed89d0d38347b55e1f6e17b712814f9b972156 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/47747 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Build dump_fmap into futility.Bill Richardson2013-04-099-20/+147
| | | | | | | | | | | | | | | | | | 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>
* Build both static and dynamic versions of futility.Bill Richardson2013-04-084-16/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add framework for testing builtin futility functions.Bill Richardson2013-04-055-79/+157
| | | | | | | | | | | | | | | | | 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>
* Include generated dependency files for all object files.Bill Richardson2013-04-051-9/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix Makefile to only build fwlib when asked to, not hostlib too.Bill Richardson2013-04-051-14/+20
| | | | | | | | | | | 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>
* Massive refactoring of external header files.Bill Richardson2013-04-02136-180/+278
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Simplify the exported FindKernelConfig() function.Bill Richardson2013-03-293-27/+51
| | | | | | | | | | | | | | | | | | FindKernelConfig() is used to extract the kernel cmdline from a kernel partition. It's only used in the chromeos-installer, but was a bit awkward. This changes the calling parameters to make it simpler. BUG=chromium:221544 BRANCH=none TEST=manual CQ-DEPEND=CL:46835 FEATURES=test sudo emerge vboot_reference FEATURES=test emerge-$BOARD vboot_reference Change-Id: Ib7192175d72ad51387d8d122ead4490a4aa62300 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/46834
* Add a QUIET Makefile option to reduce non-error outputSimon Glass2013-03-261-21/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* crossystem: Fix cros_debug detection on non-chrome systems.toolchainAstabilize-3912.79.Brelease-R27-3912.BHung-Te Lin2013-03-201-1/+3
| | | | | | | | | | | | | | | | | | | "cros_debug" is usually the last token of kernel command line on UEFI/legacy BIOS systems. However, kernel command line may end with new line ("\n") and that may cause strcmp to fail (i.e., can't detect "cros_debug" if it's the last parameter in command line), so we need to add that into strtok delimiters. BRANCH=none BUG=chromium:222248 TEST=crossystem cros_debug # display 1 on UEFI system with cros_debug Change-Id: I9aed1562291469118acbadcc5211ff5c45eb9feb Reviewed-on: https://gerrit.chromium.org/gerrit/46106 Tested-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Hung-Te Lin <hungte@chromium.org>
* Apply consistent naming scheme for hostlib functions.Bill Richardson2013-03-2022-50/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The chromeos-installer uses several functions from the vboot_reference userspace library, but the names of those functions are inconsistent: IsZero MapFile VbGetSystemPropertyString cgpt_add cgpt_boot cgpt_create cgpt_get_boot_partition_number cgpt_get_num_non_empty_partitions cgpt_get_partition_details cgpt_prioritize cgpt_set_attributes find_kernel_config The Google C++ style guide says types and functions should use CamelCase, while variables use lower_case_with_underscores. Kernel style (which vboot_reference tries to be more-or-less compatible with) uses lower_case_with_underscores for everything, but that really only has to apply to firmware stuff. For userspace, we can use the Google style. BUG=chromium:221544 BRANCH=none TEST=buildbot CQ-DEPEND=CL:46045 Renaming/cleanup only; no functional changes. Change-Id: I9c82c9ff8909be88586194c8ffdb435fc771195f Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/46044
* Remove unused 'autotest' directory (real one's in autotest repo).Bill Richardson2013-03-208-495/+0
| | | | | | | | | | | | | | There are three tests in the local autotest directory. All of them have been moved to the autotest repository long ago. BUG=none BRANCH=none TEST=trybot Change-Id: I53d858db44bd2f84de8a7d61995ebe3d737eaebe Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/45994 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Get rid of some crufty macros.Gabe Black2013-03-1943-199/+57
| | | | | | | | | | | | | | | | | | | | | | | These were macros that were never used, or that were only set to one thing and could be substituted up front. I left in code guarded by the HAVE_ENDIAN_H and HAVE_LITTLE_ENDIAN macros even though those are never defined because they guard a reportedly significantly faster implementation of some functionality, at least according to a comment in the source. It would be a good idea to enable that code path and see if it really does make a big difference before removing it entirely. BUG=None TEST=Built for Link, Daisy, and the host with FEATURES=test. Built depthcharge for Link and booted in normal mode. BRANCH=None Change-Id: I934a4dd0da169ac018ba07350d56924ab88b1acc Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/45687 Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org>
* Get rid of the now unused biosincludes.h headers.stabilize-3881.0.BGabe Black2013-03-194-186/+0
| | | | | | | | | | | | | | | | These are no longer necessary. BUG=None TEST=Built for Daisy, Link, Lumpy. BRANCH=None Change-Id: I8db7dde1ba52bd5cf1881481ef6a502a5b509439 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/45686 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org>
* Don't include biosincludes.h any more.Gabe Black2013-03-181-10/+0
| | | | | | | | | | | | | | | | | | | It's no longer necessary and adds complexity. BUG=None TEST=Built vboot_reference (with FEATURES=test), chromeos-u-boot, depthcharge, chromeos-factory, chromeos-factoryinstall, chromeos-initramfs, and chromeos-cryptohome for daisy, lumpy, link, alex, and fox_wtm2 where applicable. Built vboot_reference for the host. BRANCH=None Change-Id: Ic2d70b92b25d57fd9ca1d9ad47d9889f6adc85e7 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/45685 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org>
* Wrap all vboot utilities with futility.firmware-spring-3833.Bfactory-spring-3842.BBill Richardson2013-03-1111-37/+565
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Rename Strncat to StrnAppend, use it instead of strncat.firmware-spring-3824.Bfirmware-spring-3824.84.Bfirmware-spring-3824.55.Bfirmware-spring-3824.4.Bfirmware-skate-3824.129.BBill Richardson2013-03-066-59/+60
| | | | | | | | | | | | | | | | | | 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
* Use Memcpy to avoid unaligned accesses when using RollbackKernelSpace.Gabe Black2013-03-041-6/+9
| | | | | | | | | | | | | | | | | | | | This structure, like RollbackSpaceFirmware in my previous CL, contains members that are inherently unaligned. This breaks when the machine running vboot cares about alignment. Like before, I'm using Memcpy to avoid the direct unaligned accesses. BUG=chrome-os-partner:17340 TEST=Built and booted into depthcharge on Snow. Without this change, there's an unaligned access in RollbackKernelRead. After this change, the unaligned access goes away and vboot gets at the kernel version successfully. BRANCH=None Change-Id: Ifcdcee1ab4bbce74d05e563cb82bef73a1aa9a84 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/44503 Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org>
* Use Memcpy to access the fw_versions member of RollbackSpaceFirmware.Gabe Black2013-03-041-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This structure has two uint8_t members and then fw_versions which is a uint32_t. That means that fw_versions is 32 bits wide but only has 16 bit alignment, and architectures that care about that sort of thing won't be able to access it. ARM generally cares about alignment, but there's a bit which lets you select whether 32 bit accesses can be unaligned. In the past this bit was ignored, and because this is a 32 bit data type the right load happened to be used. To avoid the unaligned access all together, this change makes vboot use Memcpy to access fw_versions. The number of accesses should be very small so the overhead should be minimal. BUG=chrome-os-partner:17340 TEST=Built and booted depthcharge on Snow. Without this change, there was an unaligned exception during SetupTPM when the fw_versions member was accessed as part of a VBDEBUG call. With this change, the exception went away and the TPM was initialized successfully. BRANCH=None Change-Id: I1ed705f2de450c65f986c1c7ba30da15c0150f74 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/44499 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org>
* Move CgptManager from vboot_reference to installerBill Richardson2013-03-044-1101/+40
| | | | | | | | | | | | | | | | | | 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>
* Remove the mount-encrypted utility from vboot_referenceBill Richardson2013-02-285-2388/+3
| | | | | | | | | | | | | | | | | | | | | | | 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>
* Point to new libchrome-180609 for CgptManager stuffBill Richardson2013-02-261-1/+1
| | | | | | | | | | | | | | | | 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>
* Split off modules required for VbInit() and VbSelectFirmware()Randall Spangler2013-02-269-137/+248
| | | | | | | | | | | | | | | | | 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>
* rollback_index: fix -Wshadow warningsAaron Durbin2013-02-261-4/+4
| | | | | | | | | | | | | | | | | | | | The rollback_index.c file uses a macro RETURN_ON_FAILURE which creates a locally block-scoped variable named 'result'. However, when built with -Wshadow -Werror the compile will break because the 'result' variable will shadow the one function scoped variable. Fix this warning by changing the variable name from 'result' to 'result_' in the RETURN_ON_FAILURE macro. BUG=chrome-os-partner:17695 BRANCH=None TEST=built fwlib with -Werror -Wshadow. Compiles correctly. runtests still passes as well. Change-Id: I9fedef5567411beacdc1c0b8ed182573601f24aa Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/44044 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* vboot_display: fix -Wwrite-strings compiler errorsAaron Durbin2013-02-262-5/+5
| | | | | | | | | | | | | | | | | | | | VbHWID() returns a fixed string which can also be a returning a string that lives in the read only text segment or read only flash. Because of this the compiler will rightfully error when built with -Werror and -Wwrite-strings because the const qualifier is being ignored. Correct this and the ripple effect in VbRenderTextAtPos(). VbRenderTextAtPos() should be using constant strings anyhow. BUG=chrome-os-partner:17695 BRANCH=None TEST=built fwlib with -Werror -Wwrite-strings. Compiles correctly. make runtests still passes as well. Change-Id: Id03a783d2d9b5de4cc3b3ce0fa6d74934751cca4 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/44043 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* fwlib: fix errors with -Wmissing-prototypesAaron Durbin2013-02-264-2/+12
| | | | | | | | | | | | | | | | | | | | | When the fwlib is built with -Wmissing-prototypes and -Werror there build breakages that occur. Fix these errors by either including the header file with the correct declaration or provide the declaration at the top of the c files for global symbols that are used by tests. BUG=chrome-os-partner:17695 BRANCH=None TEST=built fwlib library with -Wmissing-prototypes and -Werror. Also 'make runtests' still passes. Change-Id: I992516ee2545509054887173bc65234905381e06 Signed-off-by: Aaron Durbin Reviewed-on: https://gerrit.chromium.org/gerrit/44042 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Aaron Durbin <adurbin@chromium.org> Tested-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* mount-encrypted: issue sync()s between umount stagesKees Cook2013-02-211-0/+9
| | | | | | | | | | | | | | | | In an effort to reduce the chances of a kernel bug wrecking filesystems during encrypted-stateful shutdown, add explicit sync() calls during shutdown. BUG=chrome-os-partner:17610 TEST=link build, shutdown with simulated panic in LOOP_CLR_FD results in successful journal replays BRANCH=None Change-Id: I4be981ebd0270d275ae81a79e3195bc72b70d984 Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/43736 Reviewed-by: Grant Grundler <grundler@chromium.org>
* Let the Makefile install the utilities, not the ebuild.Bill Richardson2013-02-141-28/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Remove hardcoded path in unused chromeos-tpm-recovery-testBill Richardson2013-02-131-1/+1
| | | | | | | | | | | | | | | AFAICT, we don't actually run this test anywhere. If we do, we shouldn't hard-code the path to the real chromeos-tpm-recovery utility, because we may need to move it around. BUG=none BRANCH=none TEST=none Change-Id: I295d57d659adf564ca964efc91d95dfdd1ff00aa Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/43174 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Software sync checks for shutdown-requested in all code pathsRandall Spangler2013-02-122-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, 1) AP-RO, EC-RO -> checked 2) AP-RW, EC-RO transition to EC-RW -> checked 3) AP-RW, EC-RW already -> NOT checked Now, (3) calls VbExIsShutdownRequested() as well. This fix is needed to avoid inconsistent behavior of software sync after we ship a RW update. Whether we *should* actually shut down or not based on how/why we booted is a separate issue to be addressed by the U-boot implementation of VbExIsShutdownRequested() in a separate CL. BUG=chromium-os:38645 BRANCH=all TEST=make runtests Manual testing also possible - force AP-RW firmware, then reboot with lid closed. Previously, the first boot would shut down because of (2), but subsequent reboots of the AP only wouldn't because of (3). Change-Id: I226202f48d793b88a30ffa62731de878f8c22315 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/43044 Reviewed-by: Simon Glass <sjg@chromium.org>
* Add more display testsRandall Spangler2013-02-113-12/+73
| | | | | | | | | | | BUG=chromium-os:38139 BRANCH=none TEST=make runtests && FEATURES=test emerge-daisy vboot_reference Change-Id: I28cd31f995f078d1715acaeaccce6e864930a986 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42846 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Add more vboot_api_kernel testsstabilize-bluetooth-smartRandall Spangler2013-02-067-31/+1189
| | | | | | | | | | 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
* Fix and enable vboot_api_kernel_testsRandall Spangler2013-02-062-35/+16
| | | | | | | | | | | | | | 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
* Reformat to kernel styleRandall Spangler2013-02-062-359/+389
| | | | | | | | | | | | No code changes, just reformatting. BUG=none BRANCH=none TEST=make runtests Change-Id: Ibffadf6c8a5911b79a29f8f554ca00c595f6b27b Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42624
* EC software sync uses precomputed hash if availableRandall Spangler2013-02-064-19/+102
| | | | | | | | | | | | | This removes the need to load the EC code at all when the precomputed hash matches. BUG=chrome-os-partner:17606 BRANCH=spring TEST=wouldn't that be nice Change-Id: If4438b9db8b1449b8fd4d90ef3acb3bbec5e09a0 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42567
* Remove +x permissions from source files.Bill Richardson2013-02-057-0/+0
| | | | | | | | | | | | | | | | There's no need to give execute permissions to files that aren't supposed to executed. BUG=none BRANCH=none TEST=manual make runtests Change-Id: I2480b97b39124e98c2f639d56be54cadfdc17f9b Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42648 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* set_lsb_release: enable batch modificationMike Frysinger2013-02-051-12/+22
| | | | | | | | | | | | | | | | | | | When setting a field, this script mounts the image, unmounts, mounts it, then writes the field, then unmounts it. When setting 4 or 5 keys at once, this is quite a waste. Tweak it so we only mount it once, and we can set multiple keys in a single call by looping over the input args. BUG=None TEST=`./signing_unittests.py` passes BRANCH=None Change-Id: Id7dc4e8ef58113cc4632721851fcab04ef1e69eb Reviewed-on: https://gerrit.chromium.org/gerrit/42601 Reviewed-by: Ryan Cui <rcui@chromium.org> Commit-Queue: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org>
* Add VbExEcGetExpectedRWHash()Randall Spangler2013-02-051-1/+12
| | | | | | | | | | | | | | This is used by vboot to retrieve the precomputed hash of the expected EC image, which requires reading less data from EEPROM than getting the entire EC image. BUG=chrome-os-partner:17606 BRANCH=spring TEST=none; just a new API not used yet Change-Id: I226643144280acabba147d345ef1f83a77a91fbc Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42566
* Reformat to kernel styleRandall Spangler2013-02-041-719/+901
| | | | | | | | | | | | | No code changes, just reformatting. BUG=none BRANCH=none TEST=make runtests Change-Id: I0adb8044ff79a1653a5093ba24934d87b142c9b7 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42565 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Add even more load kernel testsstabilize-3658.0.0Randall Spangler2013-02-011-5/+133
| | | | | | | | | | | BUG=chromium-os:38139 BRANCH=none TEST=make runtests && FEATURES=test emerge-daisy vboot_reference Change-Id: I49ac7f64c1d0ef17afab5dcc8fcb9f777d6cab1c Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42472 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Add more vboot_kernel testsRandall Spangler2013-01-311-9/+216
| | | | | | | | | | | BUG=chromium-os:38139 BRANCH=none TEST=make runtests && FEATURES=test emerge-daisy vboot_reference Change-Id: I69fdbb9d392ba34c8411362aef0f9f0ace284a3c Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42400 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Reformat cgptlib to kernel styleRandall Spangler2013-01-316-720/+800
| | | | | | | | | | | | | No code changes, just reformatting. BUG=none BRANCH=none TEST=make runtests Change-Id: Ib8748df93c64395c88e1f789805393fcfe3ac419 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42397 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Reformat to kernel styleRandall Spangler2013-01-3113-1848/+2086
| | | | | | | | | | | | | | No code changes, just reformatting. BUG=none BRANCH=none TEST=make runtests Change-Id: Id690c8334147970784db5ac54933ad1f5a58dcc1 Reviewed-on: https://gerrit.chromium.org/gerrit/42263 Tested-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Randall Spangler <rspangler@chromium.org>
* Add kernel testsRandall Spangler2013-01-313-8/+213
| | | | | | | | | | 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
* Add tlcl testsRandall Spangler2013-01-314-0/+365
| | | | | | | | | | | | | | 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>
* Reformat files to kernel styleRandall Spangler2013-01-291-604/+657
| | | | | | | | | | | | | No code changes, just reformatting. BUG=none BRANCH=none TEST=make runtests Change-Id: I93507c45c0790da6162758e0fb02031441169f65 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42171 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Add display testsRandall Spangler2013-01-293-17/+128
| | | | | | | | | | | BUG=chromium-os:38139 BRANCH=none TEST=make runtests Change-Id: Ibfd3f5f2b7ac8871a99e5d8603baae17926ab972 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/42170 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Fixed error in verifyPaul Taysom2013-01-291-1/+1
| | | | | | | | | | | | | | | Fixed the error when running "sign_official_build.sh verify" that was introduced by https://gerrit.chromium.org/gerrit/#/c/40052/ BUG=chromium-os:38229 TEST=sign_official_buils.sh verify on parrot recovery image BRANCH=none Change-Id: Ice1933347811c006005f622d178869df12344998 Reviewed-on: https://gerrit.chromium.org/gerrit/42231 Tested-by: Paul Taysom <taysom@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> Commit-Queue: Paul Taysom <taysom@chromium.org>