u-boot-brain/common
Sebastian Siewior 3aab70afc5 usb/gadget: add the fastboot gadget
This patch contains an implementation of the fastboot protocol on the
device side and documentation. This is based on USB download gadget
infrastructure. The fastboot function implements the getvar, reboot,
download and reboot commands. What is missing is the flash handling i.e.
writting the image to media.

v3 (Rob Herring):
This is based on http://patchwork.ozlabs.org/patch/126798/ with the
following changes:
- Rebase to current mainline and updates for current gadget API
- Use SPDX identifiers for licenses
- Traced the history and added missing copyright to cmd_fastboot.c
- Use load_addr/load_size for transfer buffer
- Allow vendor strings to be optional
- Set vendor/product ID from config defines
- Allow Ctrl-C to exit fastboot mode
v4:
- Major re-write to use the USB download gadget. Consolidated function
code to a single file.
- Moved globals into single struct.
- Use puts and putc as appropriate.
- Added CONFIG_USB_FASTBOOT_BUF_ADDR and CONFIG_USB_FASTBOOT_BUF_SIZE to
set the fastboot transfer buffer.
v5:
- Add CONFIG option documentation to README
- Rebase using new downloader registration

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Rob Herring <robh@kernel.org>
2014-05-08 10:38:30 +02:00
..
spl common: spl: Add spl sata boot support 2014-02-19 10:47:43 -05:00
bedbug.c Consolidate bool type 2013-04-01 16:33:52 -04:00
board_f.c board_f: call timer_init on MIPS 2014-04-20 13:16:43 +02:00
board_r.c board_r: return 0 from show_model_r 2014-04-18 10:42:30 -04:00
bootstage.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
bouncebuf.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_aes.c aes: Add 'aes' command to access AES-128-CBC 2014-03-21 16:43:58 -04:00
cmd_ambapp.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_bdinfo.c powerpc: mpc8260: consolidate CONFIG_MPC8260 and CONFIG_8260 2014-03-07 10:59:06 -05:00
cmd_bedbug.c Consolidate bool type 2013-04-01 16:33:52 -04:00
cmd_bmp.c Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
cmd_boot.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_bootldr.c Blackfin: bootldr: use common defines 2011-04-08 00:44:27 -04:00
cmd_bootm.c image: add support for Android's boot image format 2014-05-08 10:38:29 +02:00
cmd_bootmenu.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_bootstage.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_cache.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_cbfs.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_clk.c common: Add new clk command 2014-02-04 16:32:20 +01:00
cmd_console.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_cplbinfo.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_cramfs.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_dataflash_mmc_mux.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_date.c Merge branch 'master' of git://git.denx.de/u-boot-i2c 2013-07-24 09:50:24 -04:00
cmd_dcr.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_demo.c dm: Add a demonstration/example driver 2014-03-04 12:15:29 -05:00
cmd_dfu.c USB: gadget: added a saner gadget downloader registration API 2014-05-05 08:21:47 +02:00
cmd_diag.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_disk.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_display.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_dtt.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_echo.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_eeprom.c common, env: Fix support for environment in i2c eeprom 2014-03-28 15:06:30 -04:00
cmd_elf.c Correct vxWorks elf boot to load at correct address 2013-12-13 09:17:32 -05:00
cmd_exit.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_ext2.c Fix number base handling of "load" command 2013-10-07 15:54:18 -04:00
cmd_ext4.c EXT4: Fix number base handling of "ext4write" command 2014-02-19 10:47:36 -05:00
cmd_fastboot.c usb/gadget: add the fastboot gadget 2014-05-08 10:38:30 +02:00
cmd_fat.c Fix number base handling of "load" command 2013-10-07 15:54:18 -04:00
cmd_fdc.c fs/fdos: Remove 2014-02-21 08:42:47 -05:00
cmd_fdt.c fdt: add "fdt checksign" command 2014-03-21 16:39:32 -04:00
cmd_fitupd.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_flash.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_fpga.c fpga: Add support for gzip images with bitstreams 2013-11-06 09:15:12 +01:00
cmd_fpgad.c powerpc/ppc4xx: Convert new gdsys files to SPDX license tags 2013-07-26 15:32:59 -04:00
cmd_fs.c Fix number base handling of "load" command 2013-10-07 15:54:18 -04:00
cmd_fuse.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_gettime.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_gpio.c blackfin: make name_to_gpio be a weak symbol 2014-04-18 10:42:29 -04:00
cmd_gpt.c cmd:gpt: randomly generate each partition uuid if undefined 2014-04-02 16:36:06 -04:00
cmd_hash.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_help.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_i2c.c i2c: fix i2c dev command for not using new framework 2013-08-27 05:49:52 +02:00
cmd_ide.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_immap.c powerpc: mpc8260: consolidate CONFIG_MPC8260 and CONFIG_8260 2014-03-07 10:59:06 -05:00
cmd_ini.c SPDX-License-Identifier: convert BSD-3-Clause files 2013-08-19 15:45:35 -04:00
cmd_io.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_irq.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_itest.c common, itest: pass u-boot env variables to itest.s 2014-02-21 11:33:19 -05:00
cmd_jffs2.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_ldrinfo.c Blackfin: ldrinfo: new command 2011-04-08 00:44:27 -04:00
cmd_led.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_license.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_load.c Enable xmodem support 2013-08-16 13:45:15 -04:00
cmd_log.c common: Add get_effective_memsize() to memsize.c 2014-02-21 11:06:13 -05:00
cmd_lzmadec.c Add lzmadec command 2014-03-22 14:47:22 -06:00
cmd_mac.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_md5sum.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_mdio.c net: add support for extended registers to mdio command 2013-11-22 16:50:52 -06:00
cmd_mem.c Add 64-bit data support for memory commands 2014-03-04 12:15:30 -05:00
cmd_mfsl.c common: fsl: Fix broken SPDX-License-Identifier change 2013-10-16 09:24:38 -04:00
cmd_mii.c net: trivial: Fix typos in mii field descriptions 2013-11-22 16:50:04 -06:00
cmd_misc.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_mmc_spi.c mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
cmd_mmc.c mmc: Add 'mmc rst-function' sub-command 2014-04-02 13:02:58 +03:00
cmd_mp.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_mtdparts.c cmd_mtdparts: use 64 bits for flash size, partition size & offset 2013-10-09 12:52:16 -05:00
cmd_nand.c cmd_nand: Do not show usage when scrub is aborted 2013-08-22 17:25:03 -05:00
cmd_net.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_nvedit.c cmd_nvedit: Make 'env import -c' require size parameter 2014-03-07 10:59:06 -05:00
cmd_onenand.c mtd: resync with Linux-3.7.1 2013-05-31 17:12:03 -05:00
cmd_otp.c blackfin: Add <asm/clock.h> to numerous drivers 2014-02-20 12:00:27 -05:00
cmd_part.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_pci.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_pcmcia.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_portio.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_pxe.c Merge branch 'master' of git://git.denx.de/u-boot-arm 2014-02-26 16:49:58 -05:00
cmd_read.c Add a command to read raw blocks from a partition 2012-12-11 13:17:33 -07:00
cmd_reginfo.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_reiser.c cmd_reiser: normalize 'file not found' errors 2013-11-08 15:25:13 -05:00
cmd_sandbox.c sandbox: block driver using host file/device as backing store 2014-01-08 17:24:03 -07:00
cmd_sata.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_scsi.c common: spl: Add spl sata boot support 2014-02-19 10:47:43 -05:00
cmd_setexpr.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_sf.c sandbox: spi: Adjust 'sf test' to work on sandbox 2014-01-11 12:21:30 +05:30
cmd_sha1sum.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_softswitch.c blackfin: bf609: add softswitch config command 2013-05-13 16:26:12 +08:00
cmd_sound.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_source.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_spi.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_spibootldr.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_spl.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_strings.c Convert cmd_usage() calls in common to use a return value 2012-03-06 21:09:46 +01:00
cmd_terminal.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_test.c cmd_test: implement -e test for file existence 2014-02-19 09:47:34 -05:00
cmd_thordown.c USB: gadget: added a saner gadget downloader registration API 2014-05-05 08:21:47 +02:00
cmd_time.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_tpm.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_trace.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_tsi148.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_ubi.c common, ubi: add ubi check volumename command 2014-02-21 11:33:19 -05:00
cmd_ubifs.c ubifs: fix checkpatch warning 2014-02-21 11:33:19 -05:00
cmd_universe.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_unzip.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_usb_mass_storage.c ums: allow the user to specify the device type 2014-05-08 10:38:29 +02:00
cmd_usb.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_version.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_ximg.c sandbox: Correct compiler warnings in cmd_bootm/cmd_ximg 2013-09-03 13:29:24 -06:00
cmd_yaffs2.c u-boot: Update yaffs2 file system 2012-08-09 23:39:18 +02:00
cmd_zfs.c cmd_zfs: normalize 'file not found' errors 2013-11-08 15:25:13 -05:00
cmd_zip.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
command.c Add 64-bit data support for memory commands 2014-03-04 12:15:30 -05:00
console.c sandbox: Allow the console to work earlier 2014-01-08 17:24:50 -07:00
cros_ec.c cros_ec: Move EC interface into common library 2014-03-17 20:05:46 -06:00
ddr_spd.c driver/ddr/fsl: Add DDR4 support to Freescale DDR driver 2014-04-22 17:58:48 -07:00
dlmalloc.c Consolidate bool type 2013-04-01 16:33:52 -04:00
dlmalloc.src Consolidate bool type 2013-04-01 16:33:52 -04:00
edid.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
env_attr.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
env_callback.c common, env: optimize boottime 2014-01-14 09:01:06 -05:00
env_common.c env: Implement support for encrypting environment 2014-03-21 16:44:02 -04:00
env_dataflash.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_eeprom.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_embedded.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
env_fat.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_flags.c common, env: optimize boottime 2014-01-14 09:01:06 -05:00
env_flash.c env_flash.c: Drop unused variables 2014-04-17 17:44:36 -04:00
env_mmc.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_nand.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_nowhere.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
env_nvram.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_onenand.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_remote.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
env_sf.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_ubi.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
exports.c Fix SPI build errors in exports.c 2011-12-07 08:41:22 +01:00
fdt_support.c fdt_support: Add helper function to read "ranges" property 2014-04-22 17:58:45 -07:00
flash.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
hash.c gen: Add progressive hash API 2014-03-21 16:39:36 -04:00
hush.c hush: fix some quoted variable expansion issues 2014-03-07 10:59:06 -05:00
hwconfig.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
image-android.c image: add support for Android's boot image format 2014-05-08 10:38:29 +02:00
image-fdt.c fdt: rename IMAAGE_OF_BOARD_SETUP to IMAGE_OF_BOARD_SETUP 2014-02-19 10:47:30 -05:00
image-fit.c fit: add sha256 support 2014-03-21 16:39:33 -04:00
image-sig.c tools, fit_check_sign: verify a signed fit image 2014-03-21 16:40:38 -04:00
image.c image: add support for Android's boot image format 2014-05-08 10:38:29 +02:00
iomux.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
kallsyms.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
kgdb_stubs.c kgdb: add default generic stubs 2010-01-18 00:23:00 +01:00
kgdb.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
lcd.c sandbox: Add LCD driver 2014-03-17 20:05:49 -06:00
lynxkdi.c checkpatch whitespace cleanups 2011-10-22 01:13:35 +02:00
main.c Start the deprecation process for generic board 2014-04-17 14:33:05 -04:00
Makefile usb/gadget: add the fastboot gadget 2014-05-08 10:38:30 +02:00
memsize.c common: Add get_effective_memsize() to memsize.c 2014-02-21 11:06:13 -05:00
menu.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
miiphyutil.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
modem.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
s_record.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
splash.c video: consolidate splash screen alignment code 2013-07-08 20:21:24 +02:00
stdio.c serial: arm_dcc: Remove stdio structure support 2013-08-13 08:38:29 +02:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
usb_hub.c usb: Use well-known descriptor sizes when parsing configuration 2013-08-26 21:56:34 +02:00
usb_kbd.c usb: Fix USB keyboard polling via control endpoint 2014-04-30 10:30:57 +02:00
usb_storage.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
usb.c usb: add enum usb_init_type parameter to usb_lowlevel_init 2013-10-20 23:45:26 +02:00
xyzModem.c Add eCos-2.0 SPDX-License-Identifier to source files 2013-07-24 09:45:01 -04:00