diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2017-09-07 14:44:55 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-09-09 02:26:16 -0700 |
commit | 5da63f4ea2c93e6b059d8c50ff01dbe53a13dec2 (patch) | |
tree | ae2417b2411abe87ef47d8b994ddc23ff288bccb /common/system.c | |
parent | 103108ec216e67a4937d9a51f7134d4923dd31f5 (diff) | |
download | chrome-ec-5da63f4ea2c93e6b059d8c50ff01dbe53a13dec2.tar.gz |
Treat SYSTEM_IMAGE_RW_B also as RW copy
SYSTEM_IMAGE_RW_B hasn't been globally treated as a RW copy.
This change makes EC treat it also as a RW copy.
BUG=none
BRANCH=none
TEST=make buildall
Change-Id: Iae5a9090cdf30f980014daca44cdf8f2a65ea1f2
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/656337
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/system.c')
-rw-r--r-- | common/system.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/common/system.c b/common/system.c index 716053a870..db6ab782f6 100644 --- a/common/system.c +++ b/common/system.c @@ -497,6 +497,16 @@ static void jump_to_image(uintptr_t init_addr) resetvec(); } +static int is_rw_image(enum system_image_copy_t copy) +{ + return copy == SYSTEM_IMAGE_RW || copy == SYSTEM_IMAGE_RW_B; +} + +int system_is_in_rw(void) +{ + return is_rw_image(system_get_image_copy()); +} + int system_run_image_copy(enum system_image_copy_t copy) { uintptr_t base; @@ -515,7 +525,7 @@ int system_run_image_copy(enum system_image_copy_t copy) return EC_ERROR_ACCESS_DENIED; /* Target image must be RW image */ - if (copy != SYSTEM_IMAGE_RW) + if (!is_rw_image(copy)) return EC_ERROR_ACCESS_DENIED; /* Jumping must still be enabled */ @@ -588,7 +598,7 @@ static const struct image_data *system_get_image_data( * Read the version information from the proper location * on storage. */ - addr += (copy == SYSTEM_IMAGE_RW) ? + addr += (is_rw_image(copy)) ? CONFIG_EC_WRITABLE_STORAGE_OFF + CONFIG_RW_STORAGE_OFF : CONFIG_EC_PROTECTED_STORAGE_OFF + CONFIG_RO_STORAGE_OFF; |