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