xref: /rk3399_rockchip-uboot/include/spl_ab.h (revision f34b44cf75a2474a1e3f3a2260223dd8e9c154ed)
10cc16201SJason Zhu /* SPDX-License-Identifier:     GPL-2.0+ */
20cc16201SJason Zhu /*
30cc16201SJason Zhu  * (C) Copyright 2019 Rockchip Electronics Co., Ltd
40cc16201SJason Zhu  */
50cc16201SJason Zhu 
60cc16201SJason Zhu #ifndef _SPL_AB_H_
70cc16201SJason Zhu #define _SPL_AB_H_
80cc16201SJason Zhu 
9*f34b44cfSXuhui Lin #include <spl.h>
100cc16201SJason Zhu #include <android_avb/libavb_ab.h>
110cc16201SJason Zhu #include <android_avb/avb_ab_flow.h>
120cc16201SJason Zhu 
130cc16201SJason Zhu #define AB_METADATA_OFFSET 4
140cc16201SJason Zhu 
150cc16201SJason Zhu /*
160cc16201SJason Zhu  * spl_get_current_slot
170cc16201SJason Zhu  *
180cc16201SJason Zhu  * @dev_desc: block description
190cc16201SJason Zhu  * @partition: partition name
200cc16201SJason Zhu  * @slot: A/B slot
210cc16201SJason Zhu  *
220cc16201SJason Zhu  * return: 0 success, others fail.
230cc16201SJason Zhu  */
240cc16201SJason Zhu int spl_get_current_slot(struct blk_desc *dev_desc, char *partition,
250cc16201SJason Zhu 			 char *slot);
260cc16201SJason Zhu 
270cc16201SJason Zhu /*
281e33e3cbSJason Zhu  * spl_ab_append_part_slot
290cc16201SJason Zhu  *
300cc16201SJason Zhu  * @dev_desc: block description
311e33e3cbSJason Zhu  * @part_name: partition name
321e33e3cbSJason Zhu  * @new_name: append the slot suffix
331e33e3cbSJason Zhu  *
341e33e3cbSJason Zhu  * return: 0 success, others fail.
350cc16201SJason Zhu  */
361e33e3cbSJason Zhu int spl_ab_append_part_slot(struct blk_desc *dev_desc,
371e33e3cbSJason Zhu 			    const char *part_name,
381e33e3cbSJason Zhu 			    char *new_name);
390cc16201SJason Zhu 
40093f4d99SJason Zhu /*
41093f4d99SJason Zhu  * spl_ab_decrease_tries
42093f4d99SJason Zhu  *
43093f4d99SJason Zhu  * @dev_desc: block description
44093f4d99SJason Zhu  *
45093f4d99SJason Zhu  * return: 0 success, others fail.
46093f4d99SJason Zhu  */
47093f4d99SJason Zhu int spl_ab_decrease_tries(struct blk_desc *dev_desc);
48093f4d99SJason Zhu 
49*f34b44cfSXuhui Lin /*
50*f34b44cfSXuhui Lin  * spl_ab_decrease_reset
51*f34b44cfSXuhui Lin  *
52*f34b44cfSXuhui Lin  * @dev_desc: block description
53*f34b44cfSXuhui Lin  *
54*f34b44cfSXuhui Lin  * return: 0 success, others fail.
55*f34b44cfSXuhui Lin  */
56*f34b44cfSXuhui Lin int spl_ab_decrease_reset(struct blk_desc *dev_desc);
57*f34b44cfSXuhui Lin 
580cc16201SJason Zhu  #endif
59