diff options
Diffstat (limited to 'chip/g/system_chip.h')
-rw-r--r-- | chip/g/system_chip.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/chip/g/system_chip.h b/chip/g/system_chip.h new file mode 100644 index 0000000000..b5b9f4cbea --- /dev/null +++ b/chip/g/system_chip.h @@ -0,0 +1,93 @@ +/* Copyright 2017 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* chip/g-specific system function prototypes */ + +#ifndef __CROS_EC_SYSTEM_CHIP_H +#define __CROS_EC_SYSTEM_CHIP_H + +/** + * On systems with protection from a failing RW update: read the retry counter + * and act on it. + * + * @return EC_SUCCESS if no flash write errors were encounterd. + */ +int system_process_retry_counter(void); + +/** + * On systems with protection from a failing RW update: reset retry + * counter, this is used after a new image upload is finished, to make + * sure that the new image has a chance to run. + */ +void system_clear_retry_counter(void); + +/** + * A function provided by some platforms to decrement a retry counter. + * + * This should be used whenever a system reset is manually triggered. + */ +void system_decrement_retry_counter(void); + +/** + * A function provided by some platforms to hint that something is going + * wrong. + * + * @return a boolean, set to True if rolling reboot condition is suspected. + */ +int system_rolling_reboot_suspected(void); + +/** + * Compare the rw headers to check if there was a rollback. + * + * @return a boolean, set to True if a rollback is detected. + */ +int system_rollback_detected(void); + +/** + * Returns non-zero value when firmware is expected to be abe to detect user + * request to cut off battery supply. + */ +int system_battery_cutoff_support_required(void); + +/** + * Functions to update INFO1 rollback mask based on one or both RW image + * headers. + */ +void system_update_rollback_mask_with_active_img(void); +void system_update_rollback_mask_with_both_imgs(void); + +/** + * Scan INFO1 rollback map and infomap fields of both RW and RW_B image + * headers, and return a string showing how many zeros are there at the base + * of in each of these objects. + * + * The passed in parameters are the memory area to put the string in and the + * size of this memory area. + */ +void system_get_rollback_bits(char *value, size_t value_size); + +/** + * Set the rollback counter to a value which would ensure a rollback on the + * next boot. + */ +void system_ensure_rollback(void); + +/** + * Enables holding external pins across soft chip resets. Application firmware + * is responsible for disengaging pinhold upon reset. + */ +void system_pinhold_on_reset_enable(void); + +/** + * Disables holding external pins across soft chip resets. + */ +void system_pinhold_on_reset_disable(void); + +/** + * Disengages pinhold if engaged. + */ +void system_pinhold_disengage(void); + +#endif /* __CROS_EC_SYSTEM_CHIP_H */ |