1*4882a593Smuzhiyuncomment "FASTBOOT" 2*4882a593Smuzhiyun 3*4882a593Smuzhiyunmenuconfig FASTBOOT 4*4882a593Smuzhiyun bool "Fastboot support" 5*4882a593Smuzhiyun depends on USB_GADGET 6*4882a593Smuzhiyun 7*4882a593Smuzhiyunif FASTBOOT 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunconfig USB_FUNCTION_FASTBOOT 10*4882a593Smuzhiyun bool "Enable USB fastboot gadget" 11*4882a593Smuzhiyun help 12*4882a593Smuzhiyun This enables the USB part of the fastboot gadget. 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunconfig UDP_FUNCTION_FASTBOOT 15*4882a593Smuzhiyun select NET 16*4882a593Smuzhiyun bool "Enable fastboot protocol over UDP" 17*4882a593Smuzhiyun help 18*4882a593Smuzhiyun This enables the fastboot protocol over UDP. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunconfig CMD_FASTBOOT 21*4882a593Smuzhiyun bool "Enable FASTBOOT command" 22*4882a593Smuzhiyun depends on USB_FUNCTION_FASTBOOT || UDP_FUNCTION_FASTBOOT 23*4882a593Smuzhiyun help 24*4882a593Smuzhiyun This enables the command "fastboot" which enables the Android 25*4882a593Smuzhiyun fastboot mode for the platform. Fastboot is a protocol for 26*4882a593Smuzhiyun downloading images, flashing and device control used on 27*4882a593Smuzhiyun Android devices. Fastboot requires either network stack 28*4882a593Smuzhiyun enabled or support for acting as a USB device. 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun See doc/README.android-fastboot for more information. 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunif USB_FUNCTION_FASTBOOT || UDP_FUNCTION_FASTBOOT 33*4882a593Smuzhiyun 34*4882a593Smuzhiyunconfig FASTBOOT_BUF_ADDR 35*4882a593Smuzhiyun hex "Define FASTBOOT buffer address" 36*4882a593Smuzhiyun default 0x82000000 if MX6SX || MX6SL || MX6UL || MX6SLL 37*4882a593Smuzhiyun default 0x81000000 if ARCH_OMAP2PLUS 38*4882a593Smuzhiyun default 0x42000000 if ARCH_SUNXI && !MACH_SUN9I 39*4882a593Smuzhiyun default 0x22000000 if ARCH_SUNXI && MACH_SUN9I 40*4882a593Smuzhiyun default 0x60800800 if ROCKCHIP_RK3036 || ROCKCHIP_RK3066 || \ 41*4882a593Smuzhiyun ROCKCHIP_RK3188 || ROCKCHIP_RK322X 42*4882a593Smuzhiyun default 0x800800 if ROCKCHIP_RK3288 || ROCKCHIP_RK3329 || \ 43*4882a593Smuzhiyun ROCKCHIP_RK3399 44*4882a593Smuzhiyun default 0x280000 if ROCKCHIP_RK3368 45*4882a593Smuzhiyun default 0x100000 if ARCH_ZYNQMP 46*4882a593Smuzhiyun help 47*4882a593Smuzhiyun The fastboot protocol requires a large memory buffer for 48*4882a593Smuzhiyun downloads. Define this to the starting RAM address to use for 49*4882a593Smuzhiyun downloaded images. 50*4882a593Smuzhiyun 51*4882a593Smuzhiyunconfig FASTBOOT_BUF_SIZE 52*4882a593Smuzhiyun hex "Define FASTBOOT buffer size" 53*4882a593Smuzhiyun default 0x8000000 if ARCH_ROCKCHIP 54*4882a593Smuzhiyun default 0x6000000 if ARCH_ZYNQMP 55*4882a593Smuzhiyun default 0x2000000 if ARCH_SUNXI 56*4882a593Smuzhiyun default 0x7000000 57*4882a593Smuzhiyun help 58*4882a593Smuzhiyun The fastboot protocol requires a large memory buffer for 59*4882a593Smuzhiyun downloads. This buffer should be as large as possible for a 60*4882a593Smuzhiyun platform. Define this to the size available RAM for fastboot. 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunconfig FASTBOOT_USB_DEV 63*4882a593Smuzhiyun int "USB controller number" 64*4882a593Smuzhiyun default 0 65*4882a593Smuzhiyun help 66*4882a593Smuzhiyun Some boards have USB OTG controller other than 0. Define this 67*4882a593Smuzhiyun option so it can be used in compiled environment (e.g. in 68*4882a593Smuzhiyun CONFIG_BOOTCOMMAND). 69*4882a593Smuzhiyun 70*4882a593Smuzhiyunconfig FASTBOOT_FLASH 71*4882a593Smuzhiyun bool "Enable FASTBOOT FLASH command" 72*4882a593Smuzhiyun help 73*4882a593Smuzhiyun The fastboot protocol includes a "flash" command for writing 74*4882a593Smuzhiyun the downloaded image to a non-volatile storage device. Define 75*4882a593Smuzhiyun this to enable the "fastboot flash" command. 76*4882a593Smuzhiyun 77*4882a593Smuzhiyunconfig FASTBOOT_FLASH_MMC_DEV 78*4882a593Smuzhiyun int "Define FASTBOOT MMC FLASH default device" 79*4882a593Smuzhiyun depends on FASTBOOT_FLASH && MMC 80*4882a593Smuzhiyun help 81*4882a593Smuzhiyun The fastboot "flash" command requires additional information 82*4882a593Smuzhiyun regarding the non-volatile storage device. Define this to 83*4882a593Smuzhiyun the eMMC device that fastboot should use to store the image. 84*4882a593Smuzhiyun 85*4882a593Smuzhiyunconfig FASTBOOT_OEM_UNLOCK 86*4882a593Smuzhiyun bool "Enable FASTBOOT OEM UNLOCK command" 87*4882a593Smuzhiyun depends on ANDROID_KEYMASTER_CA 88*4882a593Smuzhiyun help 89*4882a593Smuzhiyun This enables the command "fastboot oem unlock" the fastboot 90*4882a593Smuzhiyun oem unlock command requires tee security storage to store 91*4882a593Smuzhiyun unlock status. oem unlock status attach to bootargs on boot. 92*4882a593Smuzhiyun 93*4882a593Smuzhiyunconfig RK_AVB_LIBAVB_ENABLE_ATH_UNLOCK 94*4882a593Smuzhiyun bool "AVB Authenticated unlock function" 95*4882a593Smuzhiyun depends on ANDROID_AVB 96*4882a593Smuzhiyun help 97*4882a593Smuzhiyun Enabled authenticated unlock function can prevent lock state 98*4882a593Smuzhiyun from invalid unlock cmd. 99*4882a593Smuzhiyun 100*4882a593Smuzhiyunendif # USB_FUNCTION_FASTBOOT || UDP_FUNCTION_FASTBOOT 101*4882a593Smuzhiyun 102*4882a593Smuzhiyunendif # FASTBOOT 103