summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* minidiag: Add storage self-test screenfirmware-volteer-13672.156.Bfirmware-volteer-13672.148.BChung-Sheng Wu2021-04-285-31/+260
| | | | | | | | | | | | | | | | Implement the ui for storage self-test. BUG=b:173364332 TEST=make clean && CC=x86_64-pc-linux-gnu-clang make runtests BRANCH=none Cq-Depend: chromium:2848057 Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: Ieb3a24e0bf19f4e62de41cccd1138719dbc65e7c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848049 Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org> Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
* minidiag: Update strings for minidiag v1.1Chung-Sheng Wu2021-04-281-4/+4
| | | | | | | | | | | | | | | | Update strings to meet the UX review. BRANCH=none BUG=b:183351700 TEST=none Cq-Depend: chromium:2777880 Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: Ic8d9653abffd80039347f81823930eaa7f35180e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848048 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot/ui: Refactor log_page apiChung-Sheng Wu2021-04-282-122/+94
| | | | | | | | | | | | | | | | | | | | | | Refactor code to use log_page_update to update log pages. Clean up duplicated code. Split the cancel button logic to log_page_show_back_or_cancel function. BUG=b:174127808, b:157625765 TEST=make clean && CC=x86_64-pc-linux-gnu-clang make runtests BRANCH=none Cq-Depend: chromium:2641904 Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: Iaa8565c91c310e218dade45eb0efd56c72950512 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2641981 Reviewed-by: Hsuan Ting Chen <roccochen@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848047 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com>
* vboot: do not change screens when dev boot disallowedJoel Kitching2021-04-282-17/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In CL:2716747, VB2_SCREEN_DEVELOPER_TO_NORM is pulled up to act as the root screen in the case of dev boot being disallowed. As such, the screen changes can be removed from VB2_SCREEN_DEVELOPER_MODE init() and reinit() functions. If the user does manage to get into the developer mode screen while developer mode is disabled, rely on the individual checks in these functions to prevent booting: - vb2_ui_developer_mode_boot_internal_action - vb2_ui_developer_mode_boot_external_action - vb2_ui_developer_mode_boot_altfw_action BUG=b:159579189, b:181087237 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: Ic72d30709baeac2fc7e681d973413e2e9c8b0483 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2730669 Reviewed-by: Joel Kitching <kitching@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848046 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot/ui: Split out enabling/disabling buttons from log_page_* functionsChung-Sheng Wu2021-04-281-28/+28
| | | | | | | | | | | | | | | | | | | Add a new log_page_update function to maintain the state of page up/down buttons. BUG=b:174127808 TEST=make clean && CC=x86_64-pc-linux-gnu-clang make runtests BRANCH=none Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: I6c396af3139229771557f017b816ea93aba27be2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2641979 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Meng-Huan Yu <menghuan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848045 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com>
* vboot: Replace VB2_REQUEST_UI_CONTINUE with VB2_SUCCESSChung-Sheng Wu2021-04-286-152/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In current codebase, VB2_REQUEST_UI_CONTINUE is for successful ui function call, and VB2_SUCCESS is for breaking the main ui loop. Replace most of the VB2_REQUEST_UI_CONTINUE with VB2_SUCCESS, and replace those breaking requesting VB2_SUCCESS with VB2_REQUEST_UI_EXIT. All the "VB2_REQUEST_UI_CONTINUE" and "VB2_REQUEST_UI_EXIT" are caught in the ui loop. VB2_REQUEST_UI_CONTINUE does nothing while VB2_REQUEST_UI_EXIT breaks the ui loop and return VB2_SUCCESS. Returning VB2_SUCCESS and VB2_REQUEST_UI_CONTINUE to the ui loop now should do the same thing, that is, continue process the ui. VB2_REQUEST_UI_CONTINUE can be used to quickly return from ui functions to the main UI loop, because it is not VB2_SUCCESS and makes VB2_TRY return. BRANCH=none BUG=b:157625765 TEST=make clean && CC=x86_64-pc-linux-gnu-clang make runtests Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: If1b54657d09198196f9c646b6b907b4fd8faadce Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2714502 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848044 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com>
* minidiag: Rename storage to storage health infoChung-Sheng Wu2021-04-284-36/+37
| | | | | | | | | | | | | | | | | | | | | Rename storage to storage health info to prevent confusing with storage self-test. BRANCH=none BUG=b:173364332 TEST=make clean && CC=x86_64-pc-linux-gnu-clang make runtests Cq-Depend: chromium:2709784 Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: I6c5e355e2062b8c371dbbeff8a5f1b9445bac9f0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2719252 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Meng-Huan Yu <menghuan@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848043 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com>
* vboot: always return after calling vb2_ui_screen_changeJoel Kitching2021-04-282-4/+20
| | | | | | | | | | | | | | | | | | | | | | Without returning, subsequent code may operate under the assumption that the screen has *not* changed, leading to unexpected behaviour. The user may also be able to select otherwise disallowed menu items. BUG=b:181087237, chromium:1181484 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I820e387417ad39e2f7bd47f65d08c387cf66d6e5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2717449 Tested-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848042 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot/ui: Change root screen if DEV_DISABLE_BOOT is setYu-Ping Wu2021-04-283-11/+22
| | | | | | | | | | | | | | | | | | | | | | | Change UI root screen to DEVELOPER_TO_NORM if DEV_DISABLE_BOOT is set in FWMP, and disable all dev-mode shortcuts except '\t'. This ensures DEVELOPER_TO_NORM and VB2_SCREEN_DEBUG_INFO are the only two screens accessible from the UI. Also hide the "Cancel" menu item in DEVELOPER_TO_NORM. BUG=b:159579189, chromium:1181484 TEST=make runtests TEST=emerge-asurada depthcharge BRANCH=none Change-Id: Ifedb53ae2eb968b1118340aef30cda00b7925f03 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2716747 Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848041 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot: add tests for VB2_TRY around screen changesJoel Kitching2021-04-282-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | After these functions are called, no assumptions may be made about which screen is currently displayed, and thus execution should return to ui_loop: - vb2_ui_menu_select - vb2_ui_screen_back - vb2_ui_screen_change When VB2_TRY() is wrapped around these functions, the result should be returning immediately. No code following the functions should be executed. Add unit test coverage for this. BUG=b:157625765 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I4fc2a1eb59012eeefce34d25f010a49cb1d957de Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2721377 Tested-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Hsuan Ting Chen <roccochen@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2848040 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot: standardize legacy boot and altfw terminologyJoel Kitching2021-04-2822-203/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Standardize on the term "altfw" (short form) and "alternate bootloader" (long form) in both code and documentation. Remove the VbAltFwIndex_t enum, and replace with a simple uint32_t. Rename VbExLegacy to vb2ex_run_altfw, and move to vboot2 namespace. Rename crossystem param dev_boot_legacy to dev_boot_altfw, but leave an alias. Rename crossystem param dev_default_boot value from legacy to altfw, but leave an alias. BUG=b:179458327 TEST=make clean && make runtests TEST=emerge vboot_reference and check output for: crossystem dev_boot_legacy=0 crossystem dev_boot_altfw=0 crossystem dev_default_boot=legacy crossystem dev_default_boot=altfw BRANCH=none Cq-Depend: chromium:2641196 Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I289df63d992a3d9ae3845c59779ecbd115b18ee2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2641346 Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2847879 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot: merge vboot_api_stub_init.c into vboot2 namespaceJoel Kitching2021-04-284-28/+19
| | | | | | | | | | | | | | | | | | | | Move vb2ex_mtime stub from vboot_api_stub_init into 2lib/2stub.c in vboot2 namespace. BUG=b:124141368, chromium:968464 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: Ica27630090f854e1abc56acae0294b68deb74a0f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2635676 Reviewed-by: Joel Kitching <kitching@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2847878 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot: collect auxfw/EC-related stubs in vboot2 namespaceJoel Kitching2021-04-282-91/+81
| | | | | | | | | | | | | | | | | | | | Collect all auxfw and EC-related stubs in the vboot2 namespace within 2lib/2stub.c. BUG=b:124141368, chromium:968464 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: If09a13df10aa78deee696f4422615b635238f3cf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2635675 Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2847877 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot: collect UI-related stubs in vboot2 namespaceJoel Kitching2021-04-283-37/+40
| | | | | | | | | | | | | | | | | | | | Collect all UI-related stubs in the vboot2 namespace within 2lib/2stub.c. BUG=b:124141368, chromium:968464 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I64cb44f5e1db25b96a1a4a266b78f02e82110c5f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2635674 Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2847876 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* vboot: add weak __attribute__ tag to stub functionsJoel Kitching2021-04-284-0/+30
| | | | | | | | | | | | | | | | | | | | | Function stubs in vboot2 namespace are all marked with __attribute__((weak)) tags, whereas those in vboot1 are not. Add the tag to stubs in vboot1 for consistency. BUG=b:124141368, chromium:968464 TEST=make clean && make runtests BRANCH=none Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: I8e54ef82882bd80720f810c17f41e902af244ead Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2635673 Tested-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Commit-Queue: Joel Kitching <kitching@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2847875 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Tested-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org>
* minidiag: Update strings for minidiag v1.0Chung-Sheng Wu2021-04-221-1/+1
| | | | | | | | | | | | | | | | | BRANCH=dedede,volteer,trogdor,zork BUG=b:182338095 TEST=none Cq-Depend: chromium:2810195 Signed-off-by: Chung-Sheng Wu <chungsheng@google.com> Change-Id: I865b28d8a8a6e1f3924ce94fb38b6c7799a797dd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2789115 Tested-by: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Commit-Queue: Chung-Sheng Wu <chungsheng@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2810015 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Nick Vaccaro <nvaccaro@google.com>
* Minidiag: Commit NVRAM immediately right after cleaning diag requestfirmware-volteer-13672.130.BMeng-Huan Yu2021-03-181-0/+6
| | | | | | | | | | | | | | | | | | | | | Clean up the diag request flag to avoid potential reboot loop if somehow a forced reboot occurs. BRANCH=puff,zork,volteer,trogdor,dedede BUG=b:177303714 TEST=CQ TEST=FEATURES=test P2_TEST_FILTER='*' emerge-zork vboot_reference TEST=boot to minidiag and then do hardware reset, then expect boot to OS instead of boot to minidiag again. Signed-off-by: Meng-Huan Yu <menghuan@chromium.org> Change-Id: I24815d512ca42b78dc42cafaebc666e6a53db793 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2624110 Reviewed-by: Joel Kitching <kitching@chromium.org> (cherry picked from commit 5046e96cfa81350e53ffc4ac0f87e1b5f9c6eee1) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2677616 Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Nick Vaccaro <nvaccaro@google.com>
* Minidiag: Enable minidiag by defaultMeng-Huan Yu2021-03-182-4/+4
| | | | | | | | | | | | | | | | | | | | This CL enabled the pre-boot diagnostic tools entry in recovery mode. BRANCH=none BUG=b:176947486 TEST=CQ TEST=FEATURES=test P2_TEST_FILTER='*' emerge-zork vboot_reference TEST=manually build, flash FW to device, and confirm minidiag works Signed-off-by: Meng-Huan Yu <menghuan@chromium.org> Change-Id: I8500cbaaa4e8d0f1aa668d56d38095ecdcf50aaf Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2617391 Reviewed-by: Hung-Te Lin <hungte@chromium.org> (cherry picked from commit 6f6efdc6fa38ed3bcacfa9e152f415d50ee8bad0) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2677615 Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Nick Vaccaro <nvaccaro@google.com> Commit-Queue: Nick Vaccaro <nvaccaro@google.com>
* cgptlib: Always zero-initialize GPT entries buffersfirmware-volteer-13672.81.Bfirmware-volteer-13672.47.Bfirmware-volteer-13672.39.BJulius Werner2020-12-161-2/+5
| | | | | | | | | | | | | | | ClusterFuzz still managed to find cases where we try to CRC a GPT entries buffer that wasn't initialized. Not that that's really an issue or anything... but this patch should shut it up. BRANCH=none BUG=chromium:1155876 TEST=none Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: I3d0b4f34693d87b66513f398dd13441aba543c3a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2580110 Reviewed-by: Joel Kitching <kitching@chromium.org>
* sign_gsc_firmware: refactor and extend to support D2Vadim Bendebury2020-12-111-90/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The major difference between Cr50 and Ti50 signing is that the RW sections are represented differently: elf files in Cr50 case and ihex files in Ti50 case. Other differences include the produced signed final image size and the offsets of the components in the final image. The signing script is being updated to figure out all these differences at run time. A new optional field is introduced in the signing manifest, the 'generation'. If this field is absent or set to 'h' (for H1), the script proceeds with the Cr50 signing process. If 'generation' is set to 'd' (for D2), the script proceeds with the Ti50 signing process. Instead of using fixed offsets into the final image, the base addresses of the components in ihex format are used, the only fixed value is the base address of the flash image in the chip address space (0x40000 for H1 vs 0x80000 for D2). To make this work for H1 the output format of the signed blob produced by gsc-codesigner is changed from binary to ihex. BRANCH=none BUG=b:173049030 TEST=using this script and the signing_istructions.sh module produced by the real Cr50 signer was able to produce functional images for both Cr50 and Ti50. Change-Id: I845be1101b09c9476fa27fbddb72607dc6cea901 Signed-off-by: Vadim Bendebury <vbendeb@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2570009 Tested-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: George Engelbrecht <engeg@google.com> Auto-Submit: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
* sign_gsc_firmware: add functions to determine ihex module base addressVadim Bendebury2020-12-111-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the advent of D2 memory layout scheme it became impossible to hardcode the base address of various components of the D2 firmware image. Luckily, the components are represented as binary blobs in Intel ihex format, which allows to retrieve the base address of the component from the ihex records. The address is composed of two elements: the segment base supplied in the record type 02 or 04, and the record offset into the segment, supplied in the data record of type 0. The segment address is expressed as a 16 bit value, the actual value shifted right either 4 bits (in case of record type 02) or 16 bits (in case of record type 04). The data record offset is also a 16 bit value. The base address of the blob is calculated as <segment address> + <first data record offset> and is available from the first two records in the ihex module. Detailed information of ihex file format can be found in https://en.wikipedia.org/wiki/Intel_HEX . BRANCH=none BUG=b:173049030 TEST=with the next patch in the stack applied was able to successfully build a multicomponent ti50 image. Change-Id: I135c2f9960f1f218532c82bafd7acbe362414fc9 Signed-off-by: Vadim Bendebury <vbendeb@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2570008 Tested-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: George Engelbrecht <engeg@google.com> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
* image_signing: use GSC nomenclature instead of Cr50Vadim Bendebury2020-12-112-57/+105
| | | | | | | | | | | | | | | | | | | | | This patch does not yet provide the ability to sign Ti50 images, but prepares the signing scripts for further modifications to support a variety of security chip signing flows. BRANCH=none BUG=b:173049030 TEST=verified successful signing of a Cr50 image in a test signer setup also created a functional Cr50 image invoking sign_official_build.sh by hand. Change-Id: Ic103c9fdf7d1c4ea160c7f6849d5ae5a8303c343 Signed-off-by: Vadim Bendebury <vbendeb@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2537078 Tested-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: George Engelbrecht <engeg@google.com> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org> Auto-Submit: Vadim Bendebury <vbendeb@chromium.org>
* futility: update: add new quirk 'no_check_platform'Hung-Te Lin2020-12-094-1/+32
| | | | | | | | | | | | | | | | | | | | | | Some devices may have flashed firmware with different platform name in their early stage (especially in the first build of leading devices), so we do want to provide an explicit way (not just --force) to skip checking platform name. The change CL:2059621 does not help because the loaded system firmware looks good. This is implemented as a quirk so we can enable it using a CBFS quirk file, making it easier to be deployed by auto update. BRANCH=None BUG=None TEST=make runtests Change-Id: I888d5848921d31c9b7cba1b96c42d38fda71927e Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2573999 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* vboot2: Use TPM for hash acceleration allowanceKangheui Won2020-12-094-33/+41
| | | | | | | | | | | | | | | | | | | | Previously we used a flag in preamble to prevent HW acceleration for SHA hashing. However we started to use kernel TPM flag for RSA part since we can use the flag in preamble only after we verified preamble. No need to keep both for same objective, so deprecate old flag and change code to use TPM flag. BUG=b:166038345 BRANCH=zork TEST=CC=x86_64-pc-linux-gnu-clang make runtests TEST=boot Ezkinil, check HW acceleration is used for SHA Signed-off-by: Kangheui Won <khwon@chromium.org> Change-Id: I81b174dbe285fa3f68a22667b6af14a52b06b112 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2566866 Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org>
* vboot2: remove rsa from vb2_hwcrypto_rsa_allowedKangheui Won2020-12-093-5/+6
| | | | | | | | | | | | | | | Initially vb2_hwcrypto_rsa_allowed were meant to only determine if we can use rsa hardware acceleration. However we're planning to also use this method for hashing, hence drop rsa from the name. BUG=b:166038345 BRANCH=zork TEST=CC=x86_64-pc-linux-gnu-clang make runtests Signed-off-by: Kangheui Won <khwon@chromium.org> Change-Id: I9efb05b3d035dcd584a47d006415ea87bf931ad6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2566865 Reviewed-by: Joel Kitching <kitching@chromium.org>
* signer: Verify many Android signer operations that content is unchanged.stabilize-13654.BYury Khmel2020-12-051-8/+29
| | | | | | | | | | | | | | This adds extra verifications to many Android signer operation in order to narrow down the problem when empty folders are removed from the disk. BUG=chromium:1154734 TEST=Locally image signing passed. Emulated problem and it was detected. BRANCH=none Signed-off-by: Yury Khmel <khmel@google.com> Change-Id: If8bb9fced290117766bfa9ff76a25fc86ed263dc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2572240 Reviewed-by: Mike Frysinger <vapier@chromium.org>
* vboot: deprecate and remove legacy UI codeJoel Kitching2020-12-0421-7099/+16
| | | | | | | | | | | | | | | BUG=b:146399181, b:167643628 TEST=make clean && make runtests TEST=Build and flash to device BRANCH=none Cq-Depend: chromium:2512739 Signed-off-by: Joel Kitching <kitching@google.com> Change-Id: Ia8d95451d55142fbe9acaa6e49de9b5abe134083 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2512740 Reviewed-by: Joel Kitching <kitching@chromium.org> Tested-by: Joel Kitching <kitching@chromium.org> Commit-Queue: Yu-Ping Wu <yupingso@chromium.org>
* Makefile: use -fPIC instead of -fPIETom Hughes2020-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the gcc docs: -fPIE These options are similar to -fpic and -fPIC, but generated position independent code can be only linked into executables Example failure when linking against shared library: FAILED: lib/libbrillo-core.so x86_64-cros-linux-gnu-clang++ -shared -Wl,-O2 -Wl,--as-needed -Wl,--gc-sections -Wl,--icf=all -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,now -Wl,--as-needed --sysroot=/build/hatch -o ./lib/libbrillo-core.so -Wl,-soname=libbrillo-core.so @lib/libbrillo-core.so.rsp ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol subprocess_stdin; recompile with -fPIC >>> defined in /build/hatch/usr/lib/../lib64/libvboot_host.a(subprocess.o) >>> referenced by subprocess.c:278 (host/lib/subprocess.c:278) >>> subprocess.o:(subprocess_run) in archive /build/hatch/usr/lib/../lib64/libvboot_host.a BRANCH=none BUG=b:174578361 TEST=FEATURES="test" emerge-hatch vboot_reference Change-Id: I5cda8dbe87d20d1b4b659459d861bc04f492e3e5 Signed-off-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2568259 Commit-Queue: Julius Werner <jwerner@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
* minidiag: Fix button initialization errors in memory testsHsuan Ting Chen2020-11-261-2/+20
| | | | | | | | | | | | | | | Call log_page_init(ui) to initialize button states in memory tests. Add TODO comments for splitting out log_page_update(). BUG=b:173772273 BRANCH=zork TEST=Build locally Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Icc5504bfcbfefc264a01289cc7988e97064bc8fd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2552308 Reviewed-by: Meng-Huan Yu <menghuan@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* Makefile: Test for warning flags before using themPatrick Georgi2020-11-241-5/+26
| | | | | | | | | | | | | | | | Test for warning flags that older gcc versions don't support and only use them if supported. BUG=none TEST=vboot builds with gcc 4.9, ensured with manual tests that the test_ccflag operator works correctly. Change-Id: I14c8cbe9a687981f195d481f744db12d8877a3e0 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2550799 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
* Split UI parts out of fwlib for host buildsPatrick Georgi2020-11-231-8/+12
| | | | | | | | | | | | | | | | | | | | | | | They're not needed on the host (except for tests) and they trigger a bug in GCC 4.9 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49132). This way futility remains buildable with such an old host compiler, even if firmware builds and serious work (with tests) needs a newer compiler. Error message averted (sample): firmware/2lib/2ui_screens.c:17:32: error: initializer element is not constant #define MENU_ITEMS(a) ((struct vb2_menu){ \ ^ firmware/2lib/2ui_screens.c:1231:10: note: in expansion of macro 'MENU_ITEMS' .menu = MENU_ITEMS(diagnostics_memory_items), ^ Change-Id: Ic5bd16e4d252df4297d57c5d41436f4322a1445c Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2553422 Tested-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
* Hide __has_attribute from non-clang compilersPatrick Georgi2020-11-231-2/+5
| | | | | | | | | | | | gcc 4.9 doesn't know __has_attribute so don't expose it for non-clang compilers Change-Id: I991af712adbd56d64938a35b75b7de468154e3a6 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2553421 Tested-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
* Revert "Reland: Clean up implicit fall through."stabilize-rust-13613.BJulius Werner2020-11-207-7/+14
| | | | | | | | | | | | | | | | | | | This reverts commit 6208b9aa9c4e8b7c9ff8063965c9f9aa519c1740. Upstream coreboot has raised concerns that relying on GCC 7+ features for host utilities is too restrictive, so revert this and go back to customizing fallthrough annotations by compiler. Cleaned out some of the C++-specific stuff because vboot isn't built with C++. BRANCH=None BUG=None TEST=Built with clang and GCC. Change-Id: I75d796d289b0a6c249fc8ac2dadb1453be468642 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2547821 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org>
* vboot/ui: Pass screen and locale_id to vb2ex_prepare_log_screen()Yu-Ping Wu2020-11-194-9/+20
| | | | | | | | | | | | | | | | | | To support multi-line title for log screens, we need to support different size of log box in each screen. Therefore, pass the screen and locale information to vb2ex_prepare_log_screen() so that the number of lines per page can be determined. BUG=b:165187866 TEST=emerge-asurada depthcharge BRANCH=none Cq-Depend: chromium:2522156 Change-Id: I652d6261ed559a948e7bd578da3ec81d54374039 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2522416 Reviewed-by: Hsuan Ting Chen <roccochen@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org>
* minidiag/ui: Prevent calling update action if there were no updatesstabilize-quickfix-13597.30.Bstabilize-ambassador-13597.79.Bstabilize-13597.97.Bstabilize-13597.95.Bstabilize-13597.94.Bstabilize-13597.90.Bstabilize-13597.85.Bstabilize-13597.84.Bstabilize-13597.71.Bstabilize-13597.70.Bstabilize-13597.69.Bstabilize-13597.68.Bstabilize-13597.67.Bstabilize-13597.66.Bstabilize-13597.105.Bstabilize-13597.103.Brelease-R88-13597.Bfactory-volteer-13600.BHsuan Ting Chen2020-11-123-5/+15
| | | | | | | | | | | | | | | | | Add a return code `VB2_ERROR_EX_DIAG_TEST_UPDATED` to determine if updating needed. BUG=b:168776970 BRANCH=none TEST=Build locally, boot recovery, select 'run diagnostics', enter memory test (quick) screen, and observe that the delay reduces while pressing keyboard Cq-Depend: chromium:2423699 Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I7606911bee7257e8eed4ec35d197efaa57b72e13 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2424370 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* minidiag/ui: Prevent calling update action if memory test is finishedHsuan Ting Chen2020-11-122-0/+9
| | | | | | | | | | | | | | | Skip calling diagnostics_memory_update_screen() action if memory test is finished to reduce delays in memory diagnostics screens. BUG=b:168776970, b:171852478 BRANCH=none TEST=Build locally, boot recovery, select 'run diagnostics', enter memory test (quick) screen, wait until test is finished, and observe that the delay reduces while pressing keyboard Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I4f8dbadc68989112bce418119ff7405ec150a7df Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2423089
* vboot/ui: Remove extra delay for long iteration timeHsuan Ting Chen2020-11-122-1/+91
| | | | | | | | | | | | | If an iteration takes longer than KEY_DELAY_MS, no extra delay. Otherwise, delay until the iteration time reaches KEY_DELAY_MS. BUG=b:168776970 BRANCH=none TEST=Build locally Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ia78dbe1cc87d08c02f99f4fc9269929c12c18b77 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2424373
* vboot/ui/tests: Remove unnecessary aborting delay checkHsuan Ting Chen2020-11-121-39/+27
| | | | | | | | | | | | | | | | | | | - Do not check if delay is aborted every time since we already have an individual test item. - Do not save the last return value of vb2ex_mtime() to allow us to use vb2ex_mtime() elsewhere. - Use fuzzy match for `delay finished` test items. BUG=b:156448738 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ic211955637c67dc35ffd4c12194a8ccb77e1bf9c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2508104 Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
* vboot/ui/tests: Add time-related constants in 2ui_private.hstabilize-13591.BHsuan Ting Chen2020-11-044-22/+28
| | | | | | | | | | | | | | | | | | | | Add several constants in 2ui_private.h for testing: - KEY_DELAY_MS - DEV_DELAY_SHORT_MS - DEV_DELAY_NORMAL_MS - DEV_DELAY_BEEP1_MS - DEV_DELAY_BEEP2_MS BUG=b:156448738 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: I7349d5214a90699fda67135329d7a6b93022bb27 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2513418 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-by: Joel Kitching <kitching@chromium.org>
* vboot/ui: Suffix "_ms" to time-related variablesHsuan Ting Chen2020-11-043-30/+30
| | | | | | | | | | | | | | | | | | | | For test/vb2_ui_tests.c: - Rename mock_get_timer_last to mock_get_timer_last_ms. - Rename mock_time to mock_time_ms. - Rename mock_time_start to mock_time_start_ms. For 2lib/2ui.c and 2lib/2ui_screen.c: - Rename start_time to start_time_ms in struct vb2_ui_context. - Rename elapsed to elapsed_ms in developer_mode_action(). BUG=b:156448738 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Icabe04003f0dc95f41c9ed8b8e2292f1f64e86bc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2513417
* common: log loopback detachesGeorge Engelbrecht2020-11-031-0/+1
| | | | | | | | | | | | | | We want to find the culprit loopback device which isn't detatching on crbug.com/1141907. We might as well log our cleanup actions anyway, and this will allow us to see the last loopback processed in production. BUG=chromium:1141907 TEST=just a log message BRANCH=None Signed-off-by: George Engelbrecht <engeg@google.com> Change-Id: I126efceae4f67993069675c23f6c4af61c7e5667 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514561 Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* common: save the existing return value on cleanupGeorge Engelbrecht2020-11-031-0/+3
| | | | | | | | | | | | | | Currently this trap initiated function will not save the orginal return value of the script. Save it and return it on exit. BUG=chromium:1141907 TEST=unittest and manually on a signer BRANCH=None Signed-off-by: George Engelbrecht <engeg@google.com> Change-Id: Icd807f4d153e4bcc1d309fbcea43c2b3344771ca Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514560 Reviewed-by: Sean McAllister <smcallis@google.com> Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* cleanup_minimal: remove duplicate trap for temps and mountsGeorge Engelbrecht2020-11-031-1/+0
| | | | | | | | | | | | | | BUG=chromium:1141907 TEST=unit tests and manual signing run Signed-off-by: George Engelbrecht <engeg@google.com> BRANCH=none Change-Id: I0316f464e138dea9e77b2554a3b31250e8b92c07 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514559 Reviewed-by: Sean McAllister <smcallis@google.com> Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: George Engelbrecht <engeg@google.com> Tested-by: George Engelbrecht <engeg@google.com>
* common.sh: adapt to get clean shellcheckGeorge Engelbrecht2020-11-032-28/+42
| | | | | | | | | | | | | | BUG=chromium:1141907 TEST=unit tests and manual signing run Signed-off-by: George Engelbrecht <engeg@google.com> BRANCH=none Change-Id: I39b133ca69e717576140b418fc59dd167f068d59 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2514558 Reviewed-by: Sean McAllister <smcallis@google.com> Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: George Engelbrecht <engeg@google.com> Tested-by: George Engelbrecht <engeg@google.com>
* common.sh: don't let eval terminate cleanupGeorge Engelbrecht2020-10-311-1/+1
| | | | | | | | | | | | | | | | | | | Eval will terminate the shell on non-zero error code. "POSIX says that an error in a special built-in utility (such as eval) should cause the non-interactive shell to terminate" This is the case and is causing cleanup to terminate android signing with a non-zero error when it is clear the intent (given the set +e) is that we should be best effort here. BUG=chromium:1141907 TEST=unittest and manually on a signer Change-Id: Ie6374b292c7982371d549b919b44328ea71a09dd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2513228 Reviewed-by: George Engelbrecht <engeg@google.com> Tested-by: George Engelbrecht <engeg@google.com>
* sign_android: don't use xattrs from unsquashfsGeorge Engelbrecht2020-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | We've moved to applying a file based set of selinux policies instead of taking the ones that were snagged from the image. Remove the policy attributes and let unsquash do whatever it would do by default. See https://chat.google.com/room/AAAA45hbdCQ/jkXYe7jMEDk. BUG=chromium:1141907 TEST=unittests Change-Id: I0a976fb216e0a07c00c4bb2fb68df6fa1ea00d79 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2511121 Reviewed-by: Yury Khmel <khmel@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Yury Khmel <khmel@google.com> Commit-Queue: George Engelbrecht <engeg@google.com> Commit-Queue: Yury Khmel <khmel@google.com> Tested-by: George Engelbrecht <engeg@google.com> Auto-Submit: George Engelbrecht <engeg@google.com>
* sign_official_build: dump more info in resign_android_image_if_existsstabilize-rust-13562.BBrian Norris2020-10-281-1/+10
| | | | | | | | | | | | | | | We're getting silent errors in here somewhere. BRANCH=none BUG=chromium:1141907 TEST=none Change-Id: I9af0a3ea1696920fe67c915660f82a68c1bddf34 Signed-off-by: Brian Norris <briannorris@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2504358 Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: LaMont Jones <lamontjones@chromium.org> Tested-by: LaMont Jones <lamontjones@chromium.org>
* crossystem: support clear_tpm_owner_request on TPM2.0 simulatorYi Chou2020-10-282-3/+38
| | | | | | | | | | | | | | | | | | | | | | | | | This CL would give VM boards the ability to hard reset TPM. When clearing TPM ownership on real devices, there are two things would happen: 1. TPM reset all of its NVRAM data. 2. mount-encrypted can't decrypt old encrypted partition. The TPM2.0 simulator put its NV space at "/var/lib/trunks/NVChip". And "/var/lib" is under encrypted partition. Remove the mount-encrypted key would cause mount-encrypted lost the encrypted partition on next boot, and it would simply achieve those two targets. BUG=b:170785530 BRANCH=none TEST=crossystem clear_tpm_owner_request=1 Cq-Depend: chromium:2501904 Signed-off-by: Yi Chou <yich@google.com> Change-Id: Ifeff0cf03bf76706849905816d22024f3d1b952f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2470577 Reviewed-by: Joel Kitching <kitching@chromium.org>
* futility: update: load quirks from firmware image CBFS filestabilize-rust-13555.BHung-Te Lin2020-10-164-7/+75
| | | | | | | | | | | | | | | | | | | | The firmware updater now looks at CBFS 'FW_MAIN_A' (RW A) and if a text file 'updater_quirks' is found, the contents will be fetched to setup default quirks. This helps sharing same customization across multiple firmware images (for different models) shared by same unibuild OS image. Without that, we have to maintain a large list of hard-coded model names in firmware updater source. BRANCH=none BUG=b:169284414 TEST=make runtests Signed-off-by: Hung-Te Lin <hungte@chromium.org> Change-Id: I938bffe9f16bc3adee0dc3efb6976efe581c6d8c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2426093 Reviewed-by: Karthikeyan Ramasubramanian <kramasub@chromium.org>
* lib: gpt_misc: Avoid leaving GPT entries data uninitializedJulius Werner2020-10-161-0/+2
| | | | | | | | | | | | | | | If we fail reading a GPT header, we memset() the respective buffer to 0 to avoid operating on uninitialized bytes. We should do the same for the GPT entries array. BRANCH=None BUG=chromium:1137521 TEST=make runtests Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: I1019eaf5e9ab05cd9953a15874f4931766952d88 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2469601 Reviewed-by: Joel Kitching <kitching@chromium.org>