summaryrefslogtreecommitdiff
path: root/utility/bmpblk_utility.cc
Commit message (Collapse)AuthorAgeFilesLines
* bmpblk_utility: fix build warnings (errors) with USE="-minimal"Brian Norris2016-07-251-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Warning like this: utility/bmpblk_utility.cc: In member function 'void vboot_reference::BmpBlockUtil::load_yaml_config(const char*)': utility/bmpblk_utility.cc:104:61: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'std::vector<std::basic_string<char> >::size_type {aka unsigned int}' [-Werror=format=] printf("%ld image_names\n", config_.image_names.size()); ^ utility/bmpblk_utility.cc:108:59: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'std::map<std::basic_string<char>, vboot_reference::ImageConfig>::size_type {aka unsigned int}' [-Werror=format=] printf("%ld images_map\n", config_.images_map.size()); ^ utility/bmpblk_utility.cc:119:61: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'std::map<std::basic_string<char>, vboot_reference::ScreenConfig>::size_type {aka unsigned int}' [-Werror=format=] printf("%ld screens_map\n", config_.screens_map.size()); ^ utility/bmpblk_utility.cc: In member function 'void vboot_reference::BmpBlockUtil::pack_bmpblock()': utility/bmpblk_utility.cc:597:70: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::basic_string<char>::size_type {aka unsigned int}' [-Werror=format=] current_offset, it->second.compressed_content.length()); ^ utility/bmpblk_utility.cc:609:59: error: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::basic_string<char>::size_type {aka unsigned int}' [-Werror=format=] current_offset, config_.locale_names.size()); ^ Technically, C++ container::size_type is slightly different than size_t, but I think %zd should work fine. BRANCH=none BUG=none TEST=`USE="-minimal" emerge-kevin vboot_reference` Change-Id: I9d0b22818714cad2ad7e95557df7837c91c2b0f7 Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/362621 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Add hwid digest field to GBB headerBill Richardson2014-10-211-1/+1
| | | | | | | | | | | | | | | | | | | 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
* Massive refactoring of external header files.Bill Richardson2013-04-021-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Rename files and defines to simplify makefile.Randall Spangler2013-01-111-2/+2
| | | | | | | | | | | | | | 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
* Increase max number of bitmaps to composite to 16 per screen.Dave Parker2012-08-091-14/+1
| | | | | | | | | | | | | | | | | | | | | | | This is needed to render new-style screens that use 13 bitmaps. bmpblk version is changed from 1.2 to 2.0, due to incompatibility. BUG=chrome-os-partner:11078 TEST=emerge-<board> vboot-reference. Run firmware with new bmpblock. Original-Change-Id: I750da66b020fe195896df58f31fcbb2a9e33e404 Reviewed-on: https://gerrit.chromium.org/gerrit/28945 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Tested-by: Dave Parker <dparker@chromium.org> (cherry picked from commit 0b7ee46c2eeba858ff59d534e265b445895623a2) Change-Id: I80543c46a7c0e09169e29e32077d84c57192e431 Reviewed-on: https://gerrit.chromium.org/gerrit/29602 Reviewed-by: Dave Parker <dparker@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Ready: Hung-Te Lin <hungte@chromium.org> Tested-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
* bmpblock v1.2 - render HWID inside vboot_referenceBill Richardson2011-08-241-65/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vboot_api.h doesn't require the BIOS display the ASCII HWID in a graphical form (ARM U-Boot doesn't know how), so we have to do it ourselves. This change makes that possible. Summary of changes: * bmpblk_font.h defines a structure to map ASCII chars to BMPs * bmpblk_font utility generates that font structure * bmpblock format is bumped to version 1.2 - YAML file specifies font to use for $HWID - make_default_yaml updated to emit the new format - README updated to describe the difference BUG=chromium-os:18631 TEST=manual I've tested this on ARM, like so: Inside the chroot, build a U-Boot that uses it: emerge-tegra2_kaen vboot_reference vboot_reference-firmware emerge-tegra2_kaen tegra-bct tegra2-public-firmware-fdts \ chromeos-u-boot chromeos-bootimage Outside chroot, but in src/platform/vboot_reference: make <copy ./build/utility/bmpblk_font and ./build/utility/bmpblk_utility to somewhere in your $PATH> make clean cd scripts/newbitmaps/fonts bmpblk_font --outfile ../images/hwid_fonts.bin outdir/* cd scripts/newbitmaps/images make arm cd out_arm <edit DEFAULT.yaml> bmpblk_utility -z 2 -c DEFAULT.yaml arm_bmpblock.bin <use gbb_utility to replace the bitmaps in the U-Boot image, boot it> The HWID string is displayed. Change-Id: I782004a0f30c57fa1f3bb246e8c59a02c5e9f561 Reviewed-on: http://gerrit.chromium.org/gerrit/6544 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Tested-by: Bill Richardson <wfrichar@chromium.org>
* Cleanup: DEFAULT.yaml should include locale_names section.Bill Richardson2011-08-221-2/+1
| | | | | | | | | | | | | | | | bmpblk_utility correctly supports this field, which can be used by the factory process to map the localization to the correct locale. We forgot to put the entries in the DEFAULT.yaml file. This change corrects that for future releases. BUG=none TEST=none Change-Id: Iea65d7439e6ef8cc8730ec1b862abba87041d93f Reviewed-on: http://gerrit.chromium.org/gerrit/6424 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Tested-by: Bill Richardson <wfrichar@chromium.org>
* Add locale_string decoder into BmpBlock.Bill Richardson2011-05-191-0/+44
| | | | | | | | | | | | | | | | | | | | | This change adds an additional (optional) section to the .yaml file which can enumerate the names of the locales. If present, these names will be appended to the end of the bmpblock and the (new) locale_string_offset field in the BmpBlockHeader will point to it. The names are encoded as a series of null-terminated ASCII strings. The end of the series is indicated by an extra null (for example, "en_US\0fr\0\0" names two locales). The BIOS does not use this information. Factory or OOBE could use it to select the initiale locale for the BIOS screens from the list of locales included in the BmpBlock. BUG=chrome-os-partner:3868 TEST=none Change-Id: I34fd9ece27343d56ec43772de975ac6f2ad7c9a6 Reviewed-on: http://gerrit.chromium.org/gerrit/1156 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Tested-by: Bill Richardson <wfrichar@chromium.org>
* Change GBB bmpblock to version 1.1, supporting direct HWID rendering.Bill Richardson2011-05-051-438/+498
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With version 1.0, the BIOS displays its screens using composited images, but we still have to create a new bmp image for every HWID. Version 1.1 lets us render the ASCII HWID string directly, so the BIOS screens don't need modification just because the HWID changes. In the yaml file, we just replace the hwid image with a magic string, like so: bmpblock: 1.1 [...] screens: en_remove: - [ 0, 0, remove_bg] - [256, 534, en_model_text] - [314, 534, $HWID] - [192, 479, url] - [195, 453, en_remove_text] This change modifies the bmpblk_utility to accept and generate both 1.0 and 1.1 versions. It also updates the supporting scripts (most of which aren't needed anymore) and adds a new DEFAULT.yaml file which can be used as the basis for all locales. BUG=chrome-os-partner:3264 TEST=none (manual) Change-Id: I012349393848393928282 Reviewed-on: http://gerrit.chromium.org/gerrit/378 Tested-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Allow yaml file to specify default compression for imagesBill Richardson2011-02-171-0/+20
| | | | | | | | | | | | | BUG=chromium-os:11490 TEST=manual cd src/platform/vboot_reference make make runbmptests Change-Id: Ia887fc1aa1de873c6da6c04995bc0a9ad6b364aa Review URL: http://codereview.chromium.org/6541001
* Correctly handle reuse of screens in yaml file.Bill Richardson2011-02-171-1/+2
| | | | | | | | | | | | | BUG=chromium-os:12161 TEST=manual cd src/platform/vboot_reference make make runbmptests Change-Id: Ic7708474ce7009744c9f12154d1967bdae8e55d2 Review URL: http://codereview.chromium.org/6534025
* Write images to the bmpblock in the order they appear in the yaml.Bill Richardson2011-02-171-5/+7
| | | | | | | | | | | | | | | This ensures that equivalent yaml files produce identical bmpblock binaries. BUG=chromium-os:12158 TEST=manual cd src/platform/vboot_reference make make runbmptests Change-Id: Ic8103ff90e57034d72fb3920a6c198c77768f162 Review URL: http://codereview.chromium.org/6533012
* Enable LZMA compression in bmpbklk_utility.Tom Wai-Hong Tam2011-02-171-1/+34
| | | | | | | | | | | | | | LZMA has better compression ratio and is also supported in u-boot already. ARM BIOS will use LZMA to compress BMP files. BUG=chromium-os:11017 TEST=manual $ make $ make runbmptests Change-Id: I6b791e3284b65eb3085b0de548bd241eab2ee598 Review URL: http://codereview.chromium.org/6523019
* Enable EFIv1 compression in bmpbklk_utility.Bill Richardson2011-02-141-25/+56
| | | | | | | | | | | | | | | | | | | | This lets bmpbklk_utility generate BMPBLOCKs with EFIv1-compressed bitmaps. It also adds the ability to display or unpack BMPBLOCK blobs. The compression/decompression routines come from the tianocore EDK on sourceforge and are written in C, so now there's a mix of C and C++, but it works just fine. BUG=chromium-os:11491 TEST=manual cd src/platform/vboot_reference make make runbmptests Review URL: http://codereview.chromium.org/6508006 Change-Id: Ie05e1a3fd42f4694447c8c440b2432af4ac0f601
* Whitelist RLE compression for ARM in bmpblk_utilityTom Wai-Hong Tam2011-02-141-2/+2
| | | | | | | | | BUG=chromium-os:11017 TEST=use RLE BMP files as input to run bmpblk_utility Change-Id: I2398d1c6cb9d5f90a85d8bfcab0af6e41a52b022 Review URL: http://codereview.chromium.org/6489026
* New commandline args are clearer, and prepare for compression.Bill Richardson2011-02-101-60/+100
| | | | | | | | | BUG=chromium-os:11488 TEST=none Change-Id: I6ee493037da5746d2db6e840ac6590dd12f37cfe Review URL: http://codereview.chromium.org/6482001
* Test BMP files more thoroughly to be sure they're valid.Bill Richardson2011-02-081-21/+53
| | | | | | | | | | | | | | | | | | This is work-in-progress. More tests to come... Change-Id: Id2e59fd7d0229be3ad90b29b2d0dc035ceeca666 BUG=chromium-os:11766 TEST=manual Adding an example to the test framework. Use make make runbmptests to ensure it works. Review URL: http://codereview.chromium.org/6286157
* Add test framework for bmpblk_utility.Bill Richardson2011-02-071-2/+2
| | | | | | | | | | | | | | | | | 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
* Slight modification to a previously-LGTM'd CL, to work with ebuild changes.Bill Richardson2011-02-041-0/+551
| | | | | | | | | | | | | | | This replaces http://codereview.chromium.org/6307007. The only difference is the Makefile. The vboot_reference ebuild has been changed so that we only attempt to build bmpblk_utility on the host. Change-Id: I4902703baba155e0d2d7646d19b233aa695c282f BUG=chromium-os:11017,chromium-os:10599 TEST=none No test needed. If buildbot is green, it's verified. Review URL: http://codereview.chromium.org/6334111
* Revert for fixing the chromium os build.Satoru Takabayashi2011-01-271-554/+0
| | | | | | | | | | | | Revert "This change define the data structure of bmp block and implements the create more of bmpblk_utility. It reads a YAML config file, parse the informations, and creates bmpblock file as output." This reverts commit 95b0ae01eaaba86529173bac32d54f2b28135dcf. BUG=none TEST=emerge-x86 vboot_reference TBR=waihong@chromium.org Change-Id: If1692ca12ddb61b7814ca7dddccee5a395c8bed1
* This change define the data structure of bmp block and implements the create ↵Tom Wai-Hong Tam2011-01-271-0/+554
more of bmpblk_utility. It reads a YAML config file, parse the informations, and creates bmpblock file as output. The list mode and extract mode will be implemented later. Change-Id: I2b34b323814b1d6b0a369b0e4b2bfa7cf960ff4a BUG=chromium-os:11017 TEST=build and run, use bvi to check its output. Review URL: http://codereview.chromium.org/6307007