xref: /rk3399_rockchip-uboot/include/fastboot.h (revision 40a6a2cba22e4e3ef173d759c22dab655d643889)
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 
1990d27e7fSJason Zhu /* Fastboot getvar variables */
2090d27e7fSJason Zhu typedef enum {
2190d27e7fSJason Zhu 	FB_VERSION,
2290d27e7fSJason Zhu 	FB_BOOTLOADER_VERSION,
2390d27e7fSJason Zhu 	FB_BASEBAND_VERSION,
2490d27e7fSJason Zhu 	FB_PRODUCT,
2590d27e7fSJason Zhu 	FB_SERIAL_NO,
2690d27e7fSJason Zhu 	FB_SECURE,
2790d27e7fSJason Zhu 	FB_DWNLD_SIZE,
2890d27e7fSJason Zhu 	FB_BLK_SIZE,
2990d27e7fSJason Zhu 	FB_ERASE_SIZE,
3090d27e7fSJason Zhu 	FB_PART_TYPE,
3190d27e7fSJason Zhu 	FB_PART_SIZE,
3290d27e7fSJason Zhu 	FB_UNLOCKED,
3390d27e7fSJason Zhu 	FB_VARIANT,
3490d27e7fSJason Zhu 	FB_OFF_MODE_CHARGE,
3590d27e7fSJason Zhu 	FB_BATT_VOLTAGE,
3690d27e7fSJason Zhu 	FB_BATT_SOC_OK,
379b323397SJoseph Chen 	FB_IS_USERSPACE,
3890d27e7fSJason Zhu #ifdef CONFIG_RK_AVB_LIBAVB_USER
3990d27e7fSJason Zhu 	FB_HAS_COUNT,
4090d27e7fSJason Zhu 	FB_HAS_SLOT,
4190d27e7fSJason Zhu 	FB_CURR_SLOT,
4290d27e7fSJason Zhu 	FB_SLOT_SUFFIXES,
4390d27e7fSJason Zhu 	FB_SLOT_SUCCESSFUL,
4490d27e7fSJason Zhu 	FB_SLOT_UNBOOTABLE,
4590d27e7fSJason Zhu 	FB_SLOT_RETRY_COUNT,
4690d27e7fSJason Zhu 	FB_AT_VBST,
47*40a6a2cbSDayao Ji 	FB_SNAPSHOT_STATUS,
4890d27e7fSJason Zhu #endif
4990d27e7fSJason Zhu #ifdef CONFIG_OPTEE_CLIENT
5090d27e7fSJason Zhu 	FB_AT_DH,
5190d27e7fSJason Zhu 	FB_AT_UUID,
5290d27e7fSJason Zhu #endif
5390d27e7fSJason Zhu } fb_getvar_t;
5490d27e7fSJason Zhu 
558b464fa9SJocelyn Bohr void fastboot_fail(const char *reason, char *response);
568b464fa9SJocelyn Bohr void fastboot_okay(const char *reason, char *response);
573c8f98f5SMaxime Ripard 
58aba554ccSJocelyn Bohr /**
59aba554ccSJocelyn Bohr  * Send an INFO packet during long commands based on timer. If
60aba554ccSJocelyn Bohr  * CONFIG_UDP_FUNCTION_FASTBOOT is defined, an INFO packet is sent
61aba554ccSJocelyn Bohr  * if the time is 30 seconds after start. Else, noop.
62aba554ccSJocelyn Bohr  *
63aba554ccSJocelyn Bohr  * TODO: Handle the situation where both UDP and USB fastboot are
64aba554ccSJocelyn Bohr  *       enabled.
65aba554ccSJocelyn Bohr  *
66aba554ccSJocelyn Bohr  * @param start:  Time since last INFO packet was sent.
67aba554ccSJocelyn Bohr  * @param msg:    String describing the reason for waiting
68aba554ccSJocelyn Bohr  */
69aba554ccSJocelyn Bohr void timed_send_info(ulong *start, const char *msg);
70aba554ccSJocelyn Bohr 
713c8f98f5SMaxime Ripard #endif /* _FASTBOOT_H_ */
72