summaryrefslogtreecommitdiff
path: root/common/ccd_config.c
diff options
context:
space:
mode:
authorMary Ruthven <mruthven@google.com>2018-05-15 21:14:25 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-05-30 01:02:45 -0700
commit1e58d25a59cfcc407de56ff85e0a84a77a427d96 (patch)
tree99b3af75b369b606a4bdebcc0bde63ba52c54fd1 /common/ccd_config.c
parentce57911110baa5c3ae8a196572d274097fd19992 (diff)
downloadchrome-ec-1e58d25a59cfcc407de56ff85e0a84a77a427d96.tar.gz
cr50: add support for enabling factory mode on boot
We have determined the checks to run for board_is_first_factory_boot. This change updates cr50 to check for those conditions and enable ccd when the system determines that it is first boot in the factory. This will check that the board id is erased and the inactive image is a GUC image. The factory updates Cr50 from the GUC image, because those GUC images don't have support for everything they need to do in the factory. To determine that cr50 just recovered from that factory update, it will check that the GUC image is still in the inactive region and no board id is set. There are 2 images installed in GUC 0.0.13 and 0.0.22, so cr50 will check these versions. Future GUC images will have a field in the header declaring that they are a GUC image. I still need to create the GUC field in the header and check that in inactive_image_is_guc_image. Factory mode can't be enabled on deep sleep resume. It is only enabled after power-on reset or hard reset. This change also moves factory stuff into a factory_mode file instead of keeping it in board.c This adds 200 bytes. BUG=b:77543904 BRANCH=cr50 TEST=Verify factory mode is only enabled when cr50 recovered from reboot not deep sleep resume, 0.0.13 or 0.0.22 are in the inactive region, and the board id is erased. Change-Id: Ibece878049658493e8ad159121ada63d7a6f6b79 Signed-off-by: Mary Ruthven <mruthven@google.com> Reviewed-on: https://chromium-review.googlesource.com/1059864 Commit-Ready: Mary Ruthven <mruthven@chromium.org> Tested-by: Mary Ruthven <mruthven@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Diffstat (limited to 'common/ccd_config.c')
-rw-r--r--common/ccd_config.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/common/ccd_config.c b/common/ccd_config.c
index 28f393d87d..5866da0b8f 100644
--- a/common/ccd_config.c
+++ b/common/ccd_config.c
@@ -340,13 +340,12 @@ static void ccd_load_config(void)
if (board_is_first_factory_boot()) {
/* Give factory RMA access */
CPRINTS("CCD using factory config");
- ccd_reset_config(CCD_RESET_TEST_LAB | CCD_RESET_RMA);
+ ccd_reset_config(CCD_RESET_RMA);
} else {
/* Somehow we lost our config; normal defaults */
CPRINTS("CCD using default config");
ccd_reset_config(CCD_RESET_TEST_LAB);
}
-
ccd_config_loaded = 1;
return;
}