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