xref: /rk3399_rockchip-uboot/include/fastboot.h (revision 90d27e7fed2179754609c54e4a41618a7a980a9f)
13c8f98f5SMaxime Ripard /*
23c8f98f5SMaxime Ripard  * (C) Copyright 2008 - 2009
33c8f98f5SMaxime Ripard  * Windriver, <www.windriver.com>
43c8f98f5SMaxime Ripard  * Tom Rix <Tom.Rix@windriver.com>
53c8f98f5SMaxime Ripard  *
63c8f98f5SMaxime Ripard  * Copyright 2011 Sebastian Andrzej Siewior <bigeasy@linutronix.de>
73c8f98f5SMaxime Ripard  *
83c8f98f5SMaxime Ripard  * Copyright 2014 Linaro, Ltd.
93c8f98f5SMaxime Ripard  * Rob Herring <robh@kernel.org>
103c8f98f5SMaxime Ripard  *
113c8f98f5SMaxime Ripard  * SPDX-License-Identifier:	GPL-2.0+
123c8f98f5SMaxime Ripard  */
133c8f98f5SMaxime Ripard #ifndef _FASTBOOT_H_
143c8f98f5SMaxime Ripard #define _FASTBOOT_H_
153c8f98f5SMaxime Ripard 
163c8f98f5SMaxime Ripard /* The 64 defined bytes plus \0 */
173c8f98f5SMaxime Ripard #define FASTBOOT_RESPONSE_LEN (64 + 1)
183c8f98f5SMaxime Ripard 
19*90d27e7fSJason Zhu /* Fastboot getvar variables */
20*90d27e7fSJason Zhu typedef enum {
21*90d27e7fSJason Zhu 	FB_VERSION,
22*90d27e7fSJason Zhu 	FB_BOOTLOADER_VERSION,
23*90d27e7fSJason Zhu 	FB_BASEBAND_VERSION,
24*90d27e7fSJason Zhu 	FB_PRODUCT,
25*90d27e7fSJason Zhu 	FB_SERIAL_NO,
26*90d27e7fSJason Zhu 	FB_SECURE,
27*90d27e7fSJason Zhu 	FB_DWNLD_SIZE,
28*90d27e7fSJason Zhu 	FB_BLK_SIZE,
29*90d27e7fSJason Zhu 	FB_ERASE_SIZE,
30*90d27e7fSJason Zhu 	FB_PART_TYPE,
31*90d27e7fSJason Zhu 	FB_PART_SIZE,
32*90d27e7fSJason Zhu 	FB_UNLOCKED,
33*90d27e7fSJason Zhu 	FB_VARIANT,
34*90d27e7fSJason Zhu 	FB_OFF_MODE_CHARGE,
35*90d27e7fSJason Zhu 	FB_BATT_VOLTAGE,
36*90d27e7fSJason Zhu 	FB_BATT_SOC_OK,
37*90d27e7fSJason Zhu #ifdef CONFIG_RK_AVB_LIBAVB_USER
38*90d27e7fSJason Zhu 	FB_HAS_COUNT,
39*90d27e7fSJason Zhu 	FB_HAS_SLOT,
40*90d27e7fSJason Zhu 	FB_CURR_SLOT,
41*90d27e7fSJason Zhu 	FB_SLOT_SUFFIXES,
42*90d27e7fSJason Zhu 	FB_SLOT_SUCCESSFUL,
43*90d27e7fSJason Zhu 	FB_SLOT_UNBOOTABLE,
44*90d27e7fSJason Zhu 	FB_SLOT_RETRY_COUNT,
45*90d27e7fSJason Zhu 	FB_AT_VBST,
46*90d27e7fSJason Zhu #endif
47*90d27e7fSJason Zhu #ifdef CONFIG_OPTEE_CLIENT
48*90d27e7fSJason Zhu 	FB_AT_DH,
49*90d27e7fSJason Zhu 	FB_AT_UUID,
50*90d27e7fSJason Zhu #endif
51*90d27e7fSJason Zhu } fb_getvar_t;
52*90d27e7fSJason Zhu 
538b464fa9SJocelyn Bohr void fastboot_fail(const char *reason, char *response);
548b464fa9SJocelyn Bohr void fastboot_okay(const char *reason, char *response);
553c8f98f5SMaxime Ripard 
56aba554ccSJocelyn Bohr /**
57aba554ccSJocelyn Bohr  * Send an INFO packet during long commands based on timer. If
58aba554ccSJocelyn Bohr  * CONFIG_UDP_FUNCTION_FASTBOOT is defined, an INFO packet is sent
59aba554ccSJocelyn Bohr  * if the time is 30 seconds after start. Else, noop.
60aba554ccSJocelyn Bohr  *
61aba554ccSJocelyn Bohr  * TODO: Handle the situation where both UDP and USB fastboot are
62aba554ccSJocelyn Bohr  *       enabled.
63aba554ccSJocelyn Bohr  *
64aba554ccSJocelyn Bohr  * @param start:  Time since last INFO packet was sent.
65aba554ccSJocelyn Bohr  * @param msg:    String describing the reason for waiting
66aba554ccSJocelyn Bohr  */
67aba554ccSJocelyn Bohr void timed_send_info(ulong *start, const char *msg);
68aba554ccSJocelyn Bohr 
693c8f98f5SMaxime Ripard #endif /* _FASTBOOT_H_ */
70