mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-02 06:23:18 +02:00
flashrom_tester: Fix partial_lock_test on libflashrom
partial_lock_test (Lock_top_quad, Lock_bottom_quad, Lock_bottom_half, and Lock_top_half) tries to: 1. Disable HWWP 2. Lock partial 3. Enable HWWP 4. Try to write the locked partial and expect a failure ... The 4th step only works on flashrom binary since the binary will set FLASHROM_FLAG_VERIFY_AFTER_WRITE=1 by default and it will error out while verifying. But libflashrom does not set any flag beforehand, so it has FLASHROM_FLAG_VERIFY_AFTER_WRITE=0 and thus it will think the write command works normally and raise no error. This causes the issue that flashrom_tester with libflashrom has been failed until today. To solve this issue, there are two solutions: 1. Take care of the default flags in libflashrom 2. Always pass --noverify to flashrom binary and verify it afterwards. To make both methods more consistent, I fix it with approach 1. BUG=b:304439294 BRANCH=none TEST=flashrom_tester internal --libflashrom Lock_top_quad Change-Id: I7a8ac0c0984fef3cd9e73ed8d8097ddf429e54b2 Signed-off-by: roccochen@chromium.com <roccochen@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/79304 Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:

committed by
Anastasia Klimchuk

parent
c52f949b62
commit
04deed8c8f
@ -38,6 +38,7 @@ use super::types;
|
||||
use super::utils::{self, LayoutSizes};
|
||||
use flashrom::FlashromError;
|
||||
use flashrom::{FlashChip, Flashrom};
|
||||
use libflashrom::FlashromFlags;
|
||||
use serde_json::json;
|
||||
use std::fs::File;
|
||||
use std::io::Write;
|
||||
@ -83,6 +84,9 @@ impl<'a> TestEnv<'a> {
|
||||
random_data: "/tmp/random_content.bin".into(),
|
||||
layout_file: create_layout_file(rom_sz, Path::new("/tmp/"), print_layout),
|
||||
};
|
||||
let flags = FlashromFlags::default();
|
||||
info!("Set flags: {}", flags);
|
||||
out.cmd.set_flags(&flags);
|
||||
|
||||
info!("Stashing golden image for verification/recovery on completion");
|
||||
out.cmd.read_into_file(&out.original_flash_contents)?;
|
||||
|
Reference in New Issue
Block a user