diff options
author | Mary Ruthven <mruthven@google.com> | 2018-05-15 21:14:25 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-05-30 01:02:45 -0700 |
commit | 1e58d25a59cfcc407de56ff85e0a84a77a427d96 (patch) | |
tree | 99b3af75b369b606a4bdebcc0bde63ba52c54fd1 /common/ccd_config.c | |
parent | ce57911110baa5c3ae8a196572d274097fd19992 (diff) | |
download | chrome-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.c | 3 |
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; } |