xref: /aosp_15_r20/external/gsc-utils/include/ap_ro_integrity_check.h (revision 4f2df630800bdcf1d4f0decf95d8a1cb87344f5f)
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