summaryrefslogtreecommitdiff
path: root/common/flash_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/flash_common.c')
-rw-r--r--common/flash_common.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/common/flash_common.c b/common/flash_common.c
index 11cb8150f3..9407f3336a 100644
--- a/common/flash_common.c
+++ b/common/flash_common.c
@@ -155,6 +155,9 @@ static int command_flash_erase(int argc, char **argv)
int size = CONFIG_FLASH_ERASE_SIZE;
int rv;
+ if (flash_get_protect() & EC_FLASH_PROTECT_ALL_NOW)
+ return EC_ERROR_ACCESS_DENIED;
+
rv = parse_offset_size(argc, argv, 1, &offset, &size);
if (rv)
return rv;
@@ -175,6 +178,9 @@ static int command_flash_write(int argc, char **argv)
char *data;
int i;
+ if (flash_get_protect() & EC_FLASH_PROTECT_ALL_NOW)
+ return EC_ERROR_ACCESS_DENIED;
+
rv = parse_offset_size(argc, argv, 1, &offset, &size);
if (rv)
return rv;
@@ -268,6 +274,9 @@ static int flash_command_write(struct host_cmd_handler_args *args)
{
const struct ec_params_flash_write *p = args->params;
+ if (flash_get_protect() & EC_FLASH_PROTECT_ALL_NOW)
+ return EC_RES_ACCESS_DENIED;
+
if (p->size > sizeof(p->data))
return EC_RES_INVALID_PARAM;
@@ -287,6 +296,9 @@ static int flash_command_erase(struct host_cmd_handler_args *args)
{
const struct ec_params_flash_erase *p = args->params;
+ if (flash_get_protect() & EC_FLASH_PROTECT_ALL_NOW)
+ return EC_RES_ACCESS_DENIED;
+
if (system_unsafe_to_overwrite(p->offset, p->size))
return EC_RES_ACCESS_DENIED;