diff options
Diffstat (limited to 'common/ccd_config.c')
-rw-r--r-- | common/ccd_config.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/common/ccd_config.c b/common/ccd_config.c index fa7c1cb133..c6946522c5 100644 --- a/common/ccd_config.c +++ b/common/ccd_config.c @@ -193,6 +193,23 @@ static void raw_set_cap(enum ccd_capability cap, } /** + * Check CCD configuration is reset to default value. + * + * @return 1 if it is in default mode. + * 0 otherwise. + */ +static int raw_check_all_caps_default(void) +{ + uint32_t i; + + for (i = 0; i < CCD_CAP_COUNT; i++) + if (raw_get_cap(i, 0) != CCD_CAP_STATE_DEFAULT) + return 0; + + return 1; +} + +/** * Check if a password is set. * @return 1 if password is set, 0 if it's not */ @@ -693,6 +710,9 @@ static int command_ccd_info(void) board_fwmp_allows_unlock() ? "" : " fwmp_lock", board_vboot_dev_mode_enabled() ? " dev_mode" : ""); + ccprintf("Capabilities are %s.\n", raw_check_all_caps_default() ? + "default" : "modified"); + ccputs("Use 'ccd help' to print subcommands\n"); return EC_SUCCESS; } @@ -1327,7 +1347,10 @@ static enum vendor_cmd_rc ccd_get_info(struct vendor_cmd_params *p) response.ccd_flags = htobe32(raw_get_flags()); response.ccd_state = ccd_get_state(); - response.ccd_has_password = raw_has_password(); + response.ccd_indicator_bitmap = raw_has_password() ? + CCD_INDICATOR_BIT_HAS_PASSWORD : 0; + response.ccd_indicator_bitmap |= raw_check_all_caps_default() ? + CCD_INDICATOR_BIT_ALL_CAPS_DEFAULT : 0; response.ccd_force_disabled = force_disabled; for (i = 0; i < ARRAY_SIZE(response.ccd_caps_current); i++) { response.ccd_caps_current[i] = |