mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 18:25:10 +00:00
vboot_reference/make_dev_firmware: check write protection status before making changes
Complete the missing part of "checking (and disabling) write protection status.
This also helps to prevent erasing RW regions on system with WP enabled and
then causing boot failure.
BUG=chrome-os-partner:1276
TEST=(1) On CR-48 with WP enabled, run make_dev_firmware.sh without turning off WP.
Result: Error message "Write protection is still enabled. Please verify
that hardware write protection is disabled." (as expected)
(2) Disable WP and run again.
Result: firmware has been changed successfully.
Change-Id: Iaf2243cb2cd3c7f83ce4f36543ea3da1e3ca55a1
Review URL: http://codereview.chromium.org/5987010
This commit is contained in:
@@ -44,6 +44,21 @@ EXEC_LOG="$(make_temp_file)"
|
||||
# Functions
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# Disables write protection status registers
|
||||
disable_write_protection() {
|
||||
# No need to change WP status in file mode
|
||||
if [ -n "$FLAGS_to" ]; then
|
||||
return $FLAGS_TRUE
|
||||
fi
|
||||
|
||||
# --wp-disable command may return success even if WP is still enabled,
|
||||
# so we should use --wp-status to verify the results.
|
||||
echo "Disabling system software write protection status..."
|
||||
(flashrom --wp-disable && flashrom --wp-status) 2>&1 |
|
||||
tee "$EXEC_LOG" |
|
||||
grep -q '^WP: .* is disabled\.$'
|
||||
}
|
||||
|
||||
# Reads $IMAGE from $FLAGS_from
|
||||
read_image() {
|
||||
if [ -z "$FLAGS_from" ]; then
|
||||
@@ -123,7 +138,14 @@ main() {
|
||||
ensure_files_exist "$FLAGS_from"
|
||||
fi
|
||||
|
||||
# TODO(hungte) check if GPIO.3 (WP) is enabled
|
||||
debug_msg "Checking software write protection status"
|
||||
disable_write_protection ||
|
||||
if is_debug_mode; then
|
||||
err_die "Failed to disable WP. Diagnose Message: $(cat "$EXEC_LOG")"
|
||||
else
|
||||
err_die "Write protection is still enabled. " \
|
||||
"Please verify that hardware write protection is disabled."
|
||||
fi
|
||||
|
||||
debug_msg "Pulling image to $IMAGE"
|
||||
(read_image && [ -s "$IMAGE" ]) ||
|
||||
|
||||
Reference in New Issue
Block a user