1*4f2df630SAndroid Build Coastguard Worker /* Copyright 2020 The ChromiumOS Authors 2*4f2df630SAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 3*4f2df630SAndroid Build Coastguard Worker * found in the LICENSE file. 4*4f2df630SAndroid Build Coastguard Worker * 5*4f2df630SAndroid Build Coastguard Worker */ 6*4f2df630SAndroid Build Coastguard Worker #ifndef __CR50_INCLUDE_AP_RO_INTEGRITY_CHECK_H 7*4f2df630SAndroid Build Coastguard Worker #define __CR50_INCLUDE_AP_RO_INTEGRITY_CHECK_H 8*4f2df630SAndroid Build Coastguard Worker 9*4f2df630SAndroid Build Coastguard Worker #include "flash_log.h" 10*4f2df630SAndroid Build Coastguard Worker #include "ap_ro_status.h" 11*4f2df630SAndroid Build Coastguard Worker 12*4f2df630SAndroid Build Coastguard Worker /* 13*4f2df630SAndroid Build Coastguard Worker * validate_ap_ro: based on information saved in an H1 RO flash page verify 14*4f2df630SAndroid Build Coastguard Worker * contents of the AP flash. Hold the EC in reset if verification fails. 15*4f2df630SAndroid Build Coastguard Worker */ 16*4f2df630SAndroid Build Coastguard Worker void validate_ap_ro(void); 17*4f2df630SAndroid Build Coastguard Worker 18*4f2df630SAndroid Build Coastguard Worker /* 19*4f2df630SAndroid Build Coastguard Worker * ap_ro_add_flash_event: add a flash log event to keep track of AP RO 20*4f2df630SAndroid Build Coastguard Worker * verification attempt progress. 21*4f2df630SAndroid Build Coastguard Worker */ 22*4f2df630SAndroid Build Coastguard Worker void ap_ro_add_flash_event(enum ap_ro_verification_ev event); 23*4f2df630SAndroid Build Coastguard Worker 24*4f2df630SAndroid Build Coastguard Worker /* 25*4f2df630SAndroid Build Coastguard Worker * ap_ro_board_id_blocked: Returns True if AP RO verification is disabled for 26*4f2df630SAndroid Build Coastguard Worker * the board's RLZ. 27*4f2df630SAndroid Build Coastguard Worker */ 28*4f2df630SAndroid Build Coastguard Worker int ap_ro_board_id_blocked(void); 29*4f2df630SAndroid Build Coastguard Worker 30*4f2df630SAndroid Build Coastguard Worker /* 31*4f2df630SAndroid Build Coastguard Worker * ap_ro_device_reset: Clear AP RO verification state on a new boot. 32*4f2df630SAndroid Build Coastguard Worker */ 33*4f2df630SAndroid Build Coastguard Worker void ap_ro_device_reset(void); 34*4f2df630SAndroid Build Coastguard Worker 35*4f2df630SAndroid Build Coastguard Worker /* 36*4f2df630SAndroid Build Coastguard Worker * Clear the AP RO result and release the EC from reset. This should only be 37*4f2df630SAndroid Build Coastguard Worker * done through a key combo. 38*4f2df630SAndroid Build Coastguard Worker */ 39*4f2df630SAndroid Build Coastguard Worker void ap_ro_clear_ec_rst_override(void); 40*4f2df630SAndroid Build Coastguard Worker 41*4f2df630SAndroid Build Coastguard Worker #endif /* ! __CR50_INCLUDE_AP_RO_INTEGRITY_CHECK_H */ 42