xref: /rk3399_rockchip-uboot/include/spl_ab.h (revision 093f4d990fa763e87be2a3c6742fd2420b23a84a)
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 
90cc16201SJason Zhu #include <android_avb/libavb_ab.h>
100cc16201SJason Zhu #include <android_avb/avb_ab_flow.h>
110cc16201SJason Zhu 
120cc16201SJason Zhu #define AB_METADATA_OFFSET 4
130cc16201SJason Zhu 
140cc16201SJason Zhu /*
150cc16201SJason Zhu  * spl_get_current_slot
160cc16201SJason Zhu  *
170cc16201SJason Zhu  * @dev_desc: block description
180cc16201SJason Zhu  * @partition: partition name
190cc16201SJason Zhu  * @slot: A/B slot
200cc16201SJason Zhu  *
210cc16201SJason Zhu  * return: 0 success, others fail.
220cc16201SJason Zhu  */
230cc16201SJason Zhu int spl_get_current_slot(struct blk_desc *dev_desc, char *partition,
240cc16201SJason Zhu 			 char *slot);
250cc16201SJason Zhu 
260cc16201SJason Zhu /*
271e33e3cbSJason Zhu  * spl_ab_append_part_slot
280cc16201SJason Zhu  *
290cc16201SJason Zhu  * @dev_desc: block description
301e33e3cbSJason Zhu  * @part_name: partition name
311e33e3cbSJason Zhu  * @new_name: append the slot suffix
321e33e3cbSJason Zhu  *
331e33e3cbSJason Zhu  * return: 0 success, others fail.
340cc16201SJason Zhu  */
351e33e3cbSJason Zhu int spl_ab_append_part_slot(struct blk_desc *dev_desc,
361e33e3cbSJason Zhu 			    const char *part_name,
371e33e3cbSJason Zhu 			    char *new_name);
380cc16201SJason Zhu 
39*093f4d99SJason Zhu /*
40*093f4d99SJason Zhu  * spl_ab_decrease_tries
41*093f4d99SJason Zhu  *
42*093f4d99SJason Zhu  * @dev_desc: block description
43*093f4d99SJason Zhu  *
44*093f4d99SJason Zhu  * return: 0 success, others fail.
45*093f4d99SJason Zhu  */
46*093f4d99SJason Zhu int spl_ab_decrease_tries(struct blk_desc *dev_desc);
47*093f4d99SJason Zhu 
480cc16201SJason Zhu  #endif
49