xref: /OK3568_Linux_fs/u-boot/include/spl_ab.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier:     GPL-2.0+ */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * (C) Copyright 2019 Rockchip Electronics Co., Ltd
4*4882a593Smuzhiyun  */
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #ifndef _SPL_AB_H_
7*4882a593Smuzhiyun #define _SPL_AB_H_
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #include <spl.h>
10*4882a593Smuzhiyun #include <android_avb/libavb_ab.h>
11*4882a593Smuzhiyun #include <android_avb/avb_ab_flow.h>
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #define AB_METADATA_OFFSET 4
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun /*
16*4882a593Smuzhiyun  * spl_get_current_slot
17*4882a593Smuzhiyun  *
18*4882a593Smuzhiyun  * @dev_desc: block description
19*4882a593Smuzhiyun  * @partition: partition name
20*4882a593Smuzhiyun  * @slot: A/B slot
21*4882a593Smuzhiyun  *
22*4882a593Smuzhiyun  * return: 0 success, others fail.
23*4882a593Smuzhiyun  */
24*4882a593Smuzhiyun int spl_get_current_slot(struct blk_desc *dev_desc, char *partition,
25*4882a593Smuzhiyun 			 char *slot);
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun /*
28*4882a593Smuzhiyun  * spl_ab_append_part_slot
29*4882a593Smuzhiyun  *
30*4882a593Smuzhiyun  * @dev_desc: block description
31*4882a593Smuzhiyun  * @part_name: partition name
32*4882a593Smuzhiyun  * @new_name: append the slot suffix
33*4882a593Smuzhiyun  *
34*4882a593Smuzhiyun  * return: 0 success, others fail.
35*4882a593Smuzhiyun  */
36*4882a593Smuzhiyun int spl_ab_append_part_slot(struct blk_desc *dev_desc,
37*4882a593Smuzhiyun 			    const char *part_name,
38*4882a593Smuzhiyun 			    char *new_name);
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun /*
41*4882a593Smuzhiyun  * spl_ab_decrease_tries
42*4882a593Smuzhiyun  *
43*4882a593Smuzhiyun  * @dev_desc: block description
44*4882a593Smuzhiyun  *
45*4882a593Smuzhiyun  * return: 0 success, others fail.
46*4882a593Smuzhiyun  */
47*4882a593Smuzhiyun int spl_ab_decrease_tries(struct blk_desc *dev_desc);
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun /*
50*4882a593Smuzhiyun  * spl_ab_decrease_reset
51*4882a593Smuzhiyun  *
52*4882a593Smuzhiyun  * @dev_desc: block description
53*4882a593Smuzhiyun  *
54*4882a593Smuzhiyun  * return: 0 success, others fail.
55*4882a593Smuzhiyun  */
56*4882a593Smuzhiyun int spl_ab_decrease_reset(struct blk_desc *dev_desc);
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun  #endif
59