summaryrefslogtreecommitdiff
path: root/common/system.c
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2017-09-07 14:44:55 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-09-09 02:26:16 -0700
commit5da63f4ea2c93e6b059d8c50ff01dbe53a13dec2 (patch)
treeae2417b2411abe87ef47d8b994ddc23ff288bccb /common/system.c
parent103108ec216e67a4937d9a51f7134d4923dd31f5 (diff)
downloadchrome-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.c14
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;