[U-Boot] [PATCH v4 01/14] fastboot: Move fastboot to drivers/fastboot

Joe Hershberger joe.hershberger at ni.com
Tue May 15 23:07:46 UTC 2018


On Tue, May 15, 2018 at 9:48 AM, Alex Kiernan <alex.kiernan at gmail.com> wrote:
> Separate CMD_FASTBOOT from FASTBOOT and move code and configuration to
> drivers/fastboot.
>
> Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
> Reviewed-by: Simon Glass <sjg at chromium.org>

Nit below, but otherwise,

Acked-by: Joe Hershberger <joe.hershberger at ni.com>

> ---
>
> Changes in v4: None
> Changes in v3:
> - move imply ANDROID_BOOT_IMAGE, CMD_FASTBOOT to FASTBOOT from
>   USB_FUNCTION_FASTBOOT
> - add depend on USB_FUNCTION_FASTBOOT to FASTBOOT_USB_DEV
> - leave images-sparse.c in common to acommodate 2f83f21
>
> Changes in v2: None
>
>  arch/arm/Kconfig                       |  2 --
>  board/ti/common/Kconfig                |  1 -
>  cmd/Kconfig                            | 14 ++++++++++++--
>  common/Makefile                        | 15 +--------------
>  drivers/Kconfig                        |  2 ++
>  drivers/Makefile                       |  1 +
>  {cmd => drivers}/fastboot/Kconfig      | 35 ++++++++++++----------------------
>  drivers/fastboot/Makefile              |  8 ++++++++
>  {common => drivers/fastboot}/fb_mmc.c  |  0
>  {common => drivers/fastboot}/fb_nand.c |  0
>  10 files changed, 36 insertions(+), 42 deletions(-)
>  rename {cmd => drivers}/fastboot/Kconfig (88%)
>  create mode 100644 drivers/fastboot/Makefile
>  rename {common => drivers/fastboot}/fb_mmc.c (100%)
>  rename {common => drivers/fastboot}/fb_nand.c (100%)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index c9d6e0a..c4acd10 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1246,9 +1246,7 @@ config ARCH_ROCKCHIP
>         select DM_REGULATOR
>         select ENABLE_ARM_SOC_BOOT0_HOOK
>         select SPI
> -       imply CMD_FASTBOOT
>         imply DISTRO_DEFAULTS
> -       imply FASTBOOT
>         imply FAT_WRITE
>         imply USB_FUNCTION_FASTBOOT
>         imply SPL_SYSRESET
> diff --git a/board/ti/common/Kconfig b/board/ti/common/Kconfig
> index c21eb8c..b1956b8 100644
> --- a/board/ti/common/Kconfig
> +++ b/board/ti/common/Kconfig
> @@ -25,7 +25,6 @@ config TI_COMMON_CMD_OPTIONS
>         imply CMD_EXT2
>         imply CMD_EXT4
>         imply CMD_EXT4_WRITE
> -       imply CMD_FASTBOOT if FASTBOOT
>         imply CMD_FAT
>         imply FAT_WRITE if CMD_FAT
>         imply CMD_FS_GENERIC
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index 38406fc..df2194c 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -137,8 +137,6 @@ config AUTOBOOT_STOP_STR_SHA256
>
>  endmenu
>
> -source "cmd/fastboot/Kconfig"
> -
>  config BUILD_BIN2C
>         bool
>
> @@ -650,6 +648,18 @@ config CMD_DM
>           can be useful to see the state of driver model for debugging or
>           interest.
>
> +config CMD_FASTBOOT
> +       bool "fastboot - Android fastboot support"
> +       depends on USB_FUNCTION_FASTBOOT || UDP_FUNCTION_FASTBOOT

You got a little ahead of yourself here... UDP_FUNCTION_FASTBOOT
doesn't exist, so don't depend on it yet.

> +       help
> +         This enables the command "fastboot" which enables the Android
> +         fastboot mode for the platform. Fastboot is a protocol for
> +         downloading images, flashing and device control used on
> +         Android devices. Fastboot requires either network stack
> +         enabled or support for acting as a USB device.

Also here... as of now, it just requires a USB device.

> +
> +         See doc/README.android-fastboot for more information.
> +
>  config CMD_FDC
>         bool "fdcboot - Boot from floppy device"
>         help
> diff --git a/common/Makefile b/common/Makefile
> index d0681c7..9ec40b9 100644
> --- a/common/Makefile
> +++ b/common/Makefile
> @@ -29,7 +29,7 @@ obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o
>
>  obj-$(CONFIG_CMD_BEDBUG) += bedbug.o
>  obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
> -
> +obj-$(CONFIG_FASTBOOT_FLASH) += image-sparse.o
>  obj-$(CONFIG_MII) += miiphyutil.o
>  obj-$(CONFIG_CMD_MII) += miiphyutil.o
>  obj-$(CONFIG_PHYLIB) += miiphyutil.o
> @@ -109,19 +109,6 @@ obj-$(CONFIG_IO_TRACE) += iotrace.o
>  obj-y += memsize.o
>  obj-y += stdio.o
>
> -ifndef CONFIG_SPL_BUILD
> -# This option is not just y/n - it can have a numeric value
> -ifdef CONFIG_FASTBOOT_FLASH
> -obj-y += image-sparse.o
> -ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
> -obj-y += fb_mmc.o
> -endif
> -ifdef CONFIG_FASTBOOT_FLASH_NAND_DEV
> -obj-y += fb_nand.o
> -endif
> -endif
> -endif
> -
>  ifdef CONFIG_CMD_EEPROM_LAYOUT
>  obj-y += eeprom/eeprom_field.o eeprom/eeprom_layout.o
>  endif
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index c2e813f..8424898 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -28,6 +28,8 @@ source "drivers/dfu/Kconfig"
>
>  source "drivers/dma/Kconfig"
>
> +source "drivers/fastboot/Kconfig"
> +
>  source "drivers/firmware/Kconfig"
>
>  source "drivers/fpga/Kconfig"
> diff --git a/drivers/Makefile b/drivers/Makefile
> index b3f1b60..d29a6e4 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -71,6 +71,7 @@ obj-y += block/
>  obj-$(CONFIG_BOOTCOUNT_LIMIT) += bootcount/
>  obj-$(CONFIG_CPU) += cpu/
>  obj-y += crypto/
> +obj-$(CONFIG_FASTBOOT) += fastboot/
>  obj-y += firmware/
>  obj-$(CONFIG_FPGA) += fpga/
>  obj-y += misc/
> diff --git a/cmd/fastboot/Kconfig b/drivers/fastboot/Kconfig
> similarity index 88%
> rename from cmd/fastboot/Kconfig
> rename to drivers/fastboot/Kconfig
> index 0d2c2f1..93a8ac6 100644
> --- a/cmd/fastboot/Kconfig
> +++ b/drivers/fastboot/Kconfig
> @@ -1,32 +1,20 @@
> -comment "FASTBOOT"
> +menu "Fastboot support"
>
> -menuconfig FASTBOOT
> -       bool "Fastboot support"
> -       depends on USB_GADGET
> -       default y if ARCH_SUNXI && USB_MUSB_GADGET
> -
> -if FASTBOOT
> +config FASTBOOT
> +       bool
> +       imply ANDROID_BOOT_IMAGE
> +       imply CMD_FASTBOOT
>
>  config USB_FUNCTION_FASTBOOT
>         bool "Enable USB fastboot gadget"
> -       default y
> +       depends on USB_GADGET
> +       default y if ARCH_SUNXI && USB_MUSB_GADGET
> +       select FASTBOOT
>         select USB_GADGET_DOWNLOAD
> -       imply ANDROID_BOOT_IMAGE
> -       imply CMD_FASTBOOT
>         help
>           This enables the USB part of the fastboot gadget.
>
> -config CMD_FASTBOOT
> -       bool "Enable FASTBOOT command"
> -       help
> -         This enables the command "fastboot" which enables the Android
> -         fastboot mode for the platform's USB device. Fastboot is a USB
> -         protocol for downloading images, flashing and device control
> -         used on Android devices.
> -
> -         See doc/README.android-fastboot for more information.
> -
> -if USB_FUNCTION_FASTBOOT
> +if FASTBOOT
>
>  config FASTBOOT_BUF_ADDR
>         hex "Define FASTBOOT buffer address"
> @@ -58,6 +46,7 @@ config FASTBOOT_BUF_SIZE
>
>  config FASTBOOT_USB_DEV
>         int "USB controller number"
> +       depends on USB_FUNCTION_FASTBOOT
>         default 0
>         help
>           Some boards have USB OTG controller other than 0. Define this
> @@ -129,6 +118,6 @@ config FASTBOOT_MBR_NAME
>           specified on the "fastboot flash" command line matches the value
>           defined here. The default target name for updating MBR is "mbr".
>
> -endif # USB_FUNCTION_FASTBOOT
> -
>  endif # FASTBOOT
> +
> +endmenu
> diff --git a/drivers/fastboot/Makefile b/drivers/fastboot/Makefile
> new file mode 100644
> index 0000000..651fbf0
> --- /dev/null
> +++ b/drivers/fastboot/Makefile
> @@ -0,0 +1,8 @@
> +# SPDX-License-Identifier:      GPL-2.0+
> +
> +ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
> +obj-y += fb_mmc.o
> +endif
> +ifdef CONFIG_FASTBOOT_FLASH_NAND_DEV
> +obj-y += fb_nand.o
> +endif
> diff --git a/common/fb_mmc.c b/drivers/fastboot/fb_mmc.c
> similarity index 100%
> rename from common/fb_mmc.c
> rename to drivers/fastboot/fb_mmc.c
> diff --git a/common/fb_nand.c b/drivers/fastboot/fb_nand.c
> similarity index 100%
> rename from common/fb_nand.c
> rename to drivers/fastboot/fb_nand.c
> --
> 2.7.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot


More information about the U-Boot mailing list