xref: /openbmc/u-boot/drivers/fastboot/Kconfig (revision 312a10f16bf3e8b68066fa359d4dd6a887b5fd55)
1*312a10f1SAlex Kiernanmenu "Fastboot support"
2*312a10f1SAlex Kiernan
3*312a10f1SAlex Kiernanconfig FASTBOOT
4*312a10f1SAlex Kiernan	bool
5*312a10f1SAlex Kiernan	imply ANDROID_BOOT_IMAGE
6*312a10f1SAlex Kiernan	imply CMD_FASTBOOT
7*312a10f1SAlex Kiernan
8*312a10f1SAlex Kiernanconfig USB_FUNCTION_FASTBOOT
9*312a10f1SAlex Kiernan	bool "Enable USB fastboot gadget"
10*312a10f1SAlex Kiernan	depends on USB_GADGET
11*312a10f1SAlex Kiernan	default y if ARCH_SUNXI && USB_MUSB_GADGET
12*312a10f1SAlex Kiernan	select FASTBOOT
13*312a10f1SAlex Kiernan	select USB_GADGET_DOWNLOAD
14*312a10f1SAlex Kiernan	help
15*312a10f1SAlex Kiernan	  This enables the USB part of the fastboot gadget.
16*312a10f1SAlex Kiernan
17*312a10f1SAlex Kiernanif FASTBOOT
18*312a10f1SAlex Kiernan
19*312a10f1SAlex Kiernanconfig FASTBOOT_BUF_ADDR
20*312a10f1SAlex Kiernan	hex "Define FASTBOOT buffer address"
21*312a10f1SAlex Kiernan	default 0x82000000 if MX6SX || MX6SL || MX6UL || MX6SLL
22*312a10f1SAlex Kiernan	default 0x81000000 if ARCH_OMAP2PLUS
23*312a10f1SAlex Kiernan	default 0x42000000 if ARCH_SUNXI && !MACH_SUN9I
24*312a10f1SAlex Kiernan	default 0x22000000 if ARCH_SUNXI && MACH_SUN9I
25*312a10f1SAlex Kiernan	default 0x60800800 if ROCKCHIP_RK3036 || ROCKCHIP_RK3188 || \
26*312a10f1SAlex Kiernan				ROCKCHIP_RK322X
27*312a10f1SAlex Kiernan	default 0x800800 if ROCKCHIP_RK3288 || ROCKCHIP_RK3329 || \
28*312a10f1SAlex Kiernan				ROCKCHIP_RK3399
29*312a10f1SAlex Kiernan	default 0x280000 if ROCKCHIP_RK3368
30*312a10f1SAlex Kiernan	default 0x100000 if ARCH_ZYNQMP
31*312a10f1SAlex Kiernan	help
32*312a10f1SAlex Kiernan	  The fastboot protocol requires a large memory buffer for
33*312a10f1SAlex Kiernan	  downloads. Define this to the starting RAM address to use for
34*312a10f1SAlex Kiernan	  downloaded images.
35*312a10f1SAlex Kiernan
36*312a10f1SAlex Kiernanconfig FASTBOOT_BUF_SIZE
37*312a10f1SAlex Kiernan	hex "Define FASTBOOT buffer size"
38*312a10f1SAlex Kiernan	default 0x8000000 if ARCH_ROCKCHIP
39*312a10f1SAlex Kiernan	default 0x6000000 if ARCH_ZYNQMP
40*312a10f1SAlex Kiernan	default 0x2000000 if ARCH_SUNXI
41*312a10f1SAlex Kiernan	default 0x7000000
42*312a10f1SAlex Kiernan	help
43*312a10f1SAlex Kiernan	  The fastboot protocol requires a large memory buffer for
44*312a10f1SAlex Kiernan	  downloads. This buffer should be as large as possible for a
45*312a10f1SAlex Kiernan	  platform. Define this to the size available RAM for fastboot.
46*312a10f1SAlex Kiernan
47*312a10f1SAlex Kiernanconfig FASTBOOT_USB_DEV
48*312a10f1SAlex Kiernan	int "USB controller number"
49*312a10f1SAlex Kiernan	depends on USB_FUNCTION_FASTBOOT
50*312a10f1SAlex Kiernan	default 0
51*312a10f1SAlex Kiernan	help
52*312a10f1SAlex Kiernan	  Some boards have USB OTG controller other than 0. Define this
53*312a10f1SAlex Kiernan	  option so it can be used in compiled environment (e.g. in
54*312a10f1SAlex Kiernan	  CONFIG_BOOTCOMMAND).
55*312a10f1SAlex Kiernan
56*312a10f1SAlex Kiernanconfig FASTBOOT_FLASH
57*312a10f1SAlex Kiernan	bool "Enable FASTBOOT FLASH command"
58*312a10f1SAlex Kiernan	default y if ARCH_SUNXI
59*312a10f1SAlex Kiernan	help
60*312a10f1SAlex Kiernan	  The fastboot protocol includes a "flash" command for writing
61*312a10f1SAlex Kiernan	  the downloaded image to a non-volatile storage device. Define
62*312a10f1SAlex Kiernan	  this to enable the "fastboot flash" command.
63*312a10f1SAlex Kiernan
64*312a10f1SAlex Kiernanchoice
65*312a10f1SAlex Kiernan	prompt "Flash provider for FASTBOOT"
66*312a10f1SAlex Kiernan	depends on FASTBOOT_FLASH
67*312a10f1SAlex Kiernan
68*312a10f1SAlex Kiernanconfig FASTBOOT_FLASH_MMC
69*312a10f1SAlex Kiernan	bool "FASTBOOT on MMC"
70*312a10f1SAlex Kiernan	depends on MMC
71*312a10f1SAlex Kiernan
72*312a10f1SAlex Kiernanconfig FASTBOOT_FLASH_NAND
73*312a10f1SAlex Kiernan	bool "FASTBOOT on NAND"
74*312a10f1SAlex Kiernan	depends on NAND
75*312a10f1SAlex Kiernan
76*312a10f1SAlex Kiernanendchoice
77*312a10f1SAlex Kiernan
78*312a10f1SAlex Kiernanconfig FASTBOOT_FLASH_MMC_DEV
79*312a10f1SAlex Kiernan	int "Define FASTBOOT MMC FLASH default device"
80*312a10f1SAlex Kiernan	depends on FASTBOOT_FLASH_MMC
81*312a10f1SAlex Kiernan	default 0 if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1
82*312a10f1SAlex Kiernan	default 1 if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1
83*312a10f1SAlex Kiernan	help
84*312a10f1SAlex Kiernan	  The fastboot "flash" command requires additional information
85*312a10f1SAlex Kiernan	  regarding the non-volatile storage device. Define this to
86*312a10f1SAlex Kiernan	  the eMMC device that fastboot should use to store the image.
87*312a10f1SAlex Kiernan
88*312a10f1SAlex Kiernanconfig FASTBOOT_FLASH_NAND_DEV
89*312a10f1SAlex Kiernan	int "Define FASTBOOT NAND FLASH default device"
90*312a10f1SAlex Kiernan	depends on FASTBOOT_FLASH_NAND
91*312a10f1SAlex Kiernan	depends on CMD_MTDPARTS
92*312a10f1SAlex Kiernan	default 0 if ARCH_SUNXI && NAND_SUNXI
93*312a10f1SAlex Kiernan	help
94*312a10f1SAlex Kiernan	  The fastboot "flash" command requires additional information
95*312a10f1SAlex Kiernan	  regarding the non-volatile storage device. Define this to
96*312a10f1SAlex Kiernan	  the NAND device that fastboot should use to store the image.
97*312a10f1SAlex Kiernan
98*312a10f1SAlex Kiernanconfig FASTBOOT_GPT_NAME
99*312a10f1SAlex Kiernan	string "Target name for updating GPT"
100*312a10f1SAlex Kiernan	depends on FASTBOOT_FLASH
101*312a10f1SAlex Kiernan	default "gpt"
102*312a10f1SAlex Kiernan	help
103*312a10f1SAlex Kiernan	  The fastboot "flash" command supports writing the downloaded
104*312a10f1SAlex Kiernan	  image to the Protective MBR and the Primary GUID Partition
105*312a10f1SAlex Kiernan	  Table. (Additionally, this downloaded image is post-processed
106*312a10f1SAlex Kiernan	  to generate and write the Backup GUID Partition Table.)
107*312a10f1SAlex Kiernan	  This occurs when the specified "partition name" on the
108*312a10f1SAlex Kiernan	  "fastboot flash" command line matches the value defined here.
109*312a10f1SAlex Kiernan	  The default target name for updating GPT is "gpt".
110*312a10f1SAlex Kiernan
111*312a10f1SAlex Kiernanconfig FASTBOOT_MBR_NAME
112*312a10f1SAlex Kiernan	string "Target name for updating MBR"
113*312a10f1SAlex Kiernan	depends on FASTBOOT_FLASH
114*312a10f1SAlex Kiernan	default "mbr"
115*312a10f1SAlex Kiernan	help
116*312a10f1SAlex Kiernan	  The fastboot "flash" command allows to write the downloaded image
117*312a10f1SAlex Kiernan	  to the Master Boot Record. This occurs when the "partition name"
118*312a10f1SAlex Kiernan	  specified on the "fastboot flash" command line matches the value
119*312a10f1SAlex Kiernan	  defined here. The default target name for updating MBR is "mbr".
120*312a10f1SAlex Kiernan
121*312a10f1SAlex Kiernanendif # FASTBOOT
122*312a10f1SAlex Kiernan
123*312a10f1SAlex Kiernanendmenu
124