blob: f7fe6d1042e325524c0dabfa710c4eb4763c2e5d [file] [log] [blame]
Nobuhiro Iwamatsu72d42ba2014-12-17 08:03:00 +09001menu "MMC Host controller Support"
2
Maxime Ripard7a777f62015-10-15 22:04:05 +02003config MMC
Masahiro Yamadac2726992016-12-07 22:10:26 +09004 bool "MMC/SD/SDIO card support"
5 default ARM || PPC || SANDBOX
Tom Rinif7173fc2021-04-21 15:32:27 -04006 select DM_MMC if DM
Maxime Ripard7a777f62015-10-15 22:04:05 +02007 help
Masahiro Yamadac2726992016-12-07 22:10:26 +09008 This selects MultiMediaCard, Secure Digital and Secure
9 Digital I/O support.
10
11 If you want MMC/SD/SDIO support, you should say Y here and
12 also to your specific host controller driver.
Maxime Ripard7a777f62015-10-15 22:04:05 +020013
Jean-Jacques Hiblotd6400c32018-01-04 15:23:32 +010014config MMC_WRITE
15 bool "support for MMC/SD write operations"
16 depends on MMC
17 default y
18 help
19 Enable write access to MMC and SD Cards
20
Jaehoon Chungcaee38a2021-02-16 10:16:52 +090021config MMC_PWRSEQ
22 bool "HW reset support for eMMC"
23 depends on PWRSEQ
24 help
25 Ths select Hardware reset support aka pwrseq-emmc for eMMC
26 devices.
27
Jun Nie2f516e42018-01-02 12:25:57 +080028config MMC_BROKEN_CD
29 bool "Poll for broken card detection case"
30 help
31 If card detection feature is broken, just poll to detect.
32
Simon Glasse7ecf7c2015-06-23 15:38:48 -060033config DM_MMC
34 bool "Enable MMC controllers using Driver Model"
35 depends on DM
Tom Rinif7173fc2021-04-21 15:32:27 -040036 select BLK
Simon Glasse7ecf7c2015-06-23 15:38:48 -060037 help
Robert P. J. Day62a3b7d2016-07-15 13:44:45 -040038 This enables the MultiMediaCard (MMC) uclass which supports MMC and
Simon Glasse7ecf7c2015-06-23 15:38:48 -060039 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
40 and non-removable (e.g. eMMC chip) devices are supported. These
41 appear as block devices in U-Boot and can support filesystems such
42 as EXT4 and FAT.
43
Simon Glassc4d660d2017-07-04 13:31:19 -060044config SPL_DM_MMC
45 bool "Enable MMC controllers using Driver Model in SPL"
46 depends on SPL_DM && DM_MMC
Pali Rohár35ed1762022-05-24 10:58:42 +020047 default n if ARCH_MVEBU && !MVEBU_SPL_BOOT_DEVICE_MMC
Simon Glassc4d660d2017-07-04 13:31:19 -060048 default y
Oleksandr Suvorov9b8ebd32023-08-23 18:45:45 +030049 select SPL_BLK
Simon Glassc4d660d2017-07-04 13:31:19 -060050 help
51 This enables the MultiMediaCard (MMC) uclass which supports MMC and
52 Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
53 and non-removable (e.g. eMMC chip) devices are supported. These
54 appear as block devices in U-Boot and can support filesystems such
55 as EXT4 and FAT.
56
Masahiro Yamadae298c462016-12-07 22:10:27 +090057if MMC
58
Michael Walle4d6a7732020-09-23 12:42:51 +020059config MMC_SDHCI_ADMA_HELPERS
60 bool
61
Bhargav Shah05e35d42019-07-08 04:10:48 +000062config MMC_SPI
63 bool "Support for SPI-based MMC controller"
64 depends on DM_MMC && DM_SPI
65 help
66 This selects SPI-based MMC controllers.
67 If you have an MMC controller on a SPI bus, say Y here.
68
69 If unsure, say N.
70
71config MMC_SPI_CRC_ON
72 bool "Support CRC for SPI-based MMC controller"
73 depends on MMC_SPI
74 default y
75 help
76 This enables CRC for SPI-based MMC controllers.
77
78 If unsure, say N.
79
Patrice Chotard3c0dbed2017-10-23 10:57:31 +020080config ARM_PL180_MMCI
81 bool "ARM AMBA Multimedia Card Interface and compatible support"
Patrice Chotard3c0dbed2017-10-23 10:57:31 +020082 help
83 This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
84 Interface (PL180, PL181 and compatible) support.
85 If you have an ARM(R) platform with a Multimedia Card slot,
86 say Y or M here.
87
Kishon Vijay Abraham I83dc4222017-09-21 16:30:10 +020088config MMC_QUIRKS
89 bool "Enable quirks"
90 default y
91 help
92 Some cards and hosts may sometimes behave unexpectedly (quirks).
93 This option enable workarounds to handle those quirks. Some of them
Joel Johnson26632b72020-01-11 09:08:15 -070094 are enabled by default, other may require additional flags or are
Kishon Vijay Abraham I83dc4222017-09-21 16:30:10 +020095 enabled by the host driver.
96
Tom Rini75fc79e2022-10-28 20:27:05 -040097config SYS_MMC_MAX_BLK_COUNT
98 int "Block count limit"
99 default 65535
100 help
101 The block count limit on MMC based devices. We default to 65535 due
102 to a 16bit register limit on some hardware.
103
Jean-Jacques Hiblotcf177892017-11-30 17:44:02 +0100104config MMC_HW_PARTITIONING
105 bool "Support for HW partitioning command(eMMC)"
106 default y
107 help
108 This adds a command and an API to do hardware partitioning on eMMC
109 devices.
110
Alex Kiernan5a7b11e2018-05-08 04:43:31 +0000111config SUPPORT_EMMC_RPMB
112 bool "Support eMMC replay protected memory block (RPMB)"
113 imply CMD_MMC_RPMB
114 help
115 Enable support for reading, writing and programming the
116 key for the Replay Protection Memory Block partition in eMMC.
117
Alex Kiernan623de3f2019-05-01 07:58:27 +0000118config SUPPORT_EMMC_BOOT
119 bool "Support some additional features of the eMMC boot partitions"
120 help
121 Enable support for eMMC boot partitions. This also enables
122 extensions within the mmc command.
123
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100124config MMC_IO_VOLTAGE
125 bool "Support IO voltage configuration"
126 help
127 IO voltage configuration allows selecting the voltage level of the IO
128 lines (not the level of main supply). This is required for UHS
129 support. For eMMC this not mandatory, but not enabling this option may
130 prevent the driver of using the faster modes.
131
132config SPL_MMC_IO_VOLTAGE
133 bool "Support IO voltage configuration in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400134 depends on SPL_MMC
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100135 help
136 IO voltage configuration allows selecting the voltage level of the IO
137 lines (not the level of main supply). This is required for UHS
138 support. For eMMC this not mandatory, but not enabling this option may
139 prevent the driver of using the faster modes.
140
141config MMC_UHS_SUPPORT
142 bool "enable UHS support"
143 depends on MMC_IO_VOLTAGE
144 help
145 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
146 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
147 frequency can go up to 208MHz (SDR104)
148
149config SPL_MMC_UHS_SUPPORT
150 bool "enable UHS support in SPL"
151 depends on SPL_MMC_IO_VOLTAGE
152 help
153 The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
154 cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
155 frequency can go up to 208MHz (SDR104)
156
Peng Fan44acd492019-07-10 14:43:07 +0800157config MMC_HS400_ES_SUPPORT
158 bool "enable HS400 Enhanced Strobe support"
159 help
160 The HS400 Enhanced Strobe mode is support by some eMMC. The bus
161 frequency is up to 200MHz. This mode does not tune the IO.
162
163config SPL_MMC_HS400_ES_SUPPORT
164 bool "enable HS400 Enhanced Strobe support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400165 depends on SPL_MMC
Peng Fan44acd492019-07-10 14:43:07 +0800166 help
167 The HS400 Enhanced Strobe mode is support by some eMMC. The bus
168 frequency is up to 200MHz. This mode does not tune the IO.
169
Peng Fan3dd26262018-08-10 14:07:54 +0800170config MMC_HS400_SUPPORT
171 bool "enable HS400 support"
172 select MMC_HS200_SUPPORT
173 help
174 The HS400 mode is support by some eMMC. The bus frequency is up to
175 200MHz. This mode requires tuning the IO.
176
177config SPL_MMC_HS400_SUPPORT
178 bool "enable HS400 support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400179 depends on SPL_MMC
Faiz Abbas68b3e8b2019-08-01 16:33:36 +0530180 select SPL_MMC_HS200_SUPPORT
Peng Fan3dd26262018-08-10 14:07:54 +0800181 help
182 The HS400 mode is support by some eMMC. The bus frequency is up to
183 200MHz. This mode requires tuning the IO.
184
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100185config MMC_HS200_SUPPORT
186 bool "enable HS200 support"
187 help
188 The HS200 mode is support by some eMMC. The bus frequency is up to
189 200MHz. This mode requires tuning the IO.
190
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100191config SPL_MMC_HS200_SUPPORT
192 bool "enable HS200 support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400193 depends on SPL_MMC
Jean-Jacques Hiblotf99c2ef2017-11-30 17:44:01 +0100194 help
195 The HS200 mode is support by some eMMC. The bus frequency is up to
196 200MHz. This mode requires tuning the IO.
197
Jean-Jacques Hiblot35f9e192017-09-21 16:29:53 +0200198config MMC_VERBOSE
199 bool "Output more information about the MMC"
200 default y
201 help
202 Enable the output of more information about the card such as the
203 operating mode.
204
Jaehoon Chung72b5a032018-01-26 19:25:31 +0900205config MMC_TRACE
206 bool "MMC debugging"
Jaehoon Chung72b5a032018-01-26 19:25:31 +0900207 help
208 This is an option for use by developer. Enable MMC core debugging.
209
210 If you need to see the MMC core message, say Y.
211
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900212config MMC_DAVINCI
213 bool "TI DAVINCI Multimedia Card Interface support"
214 depends on ARCH_DAVINCI
215 default y
216 help
217 This selects the TI DAVINCI Multimedia card Interface.
218 If you have an DAVINCI board with a Multimedia Card slot,
219 say Y here. If unsure, say N.
220
Masahiro Yamada55ed3b42017-01-10 13:32:04 +0900221config MMC_DW
222 bool "Synopsys DesignWare Memory Card Interface"
Philipp Tomsich2acc24f2018-11-30 22:13:25 +0100223 select BOUNCE_BUFFER
Masahiro Yamada55ed3b42017-01-10 13:32:04 +0900224 help
225 This selects support for the Synopsys DesignWare Mobile Storage IP
226 block, this provides host support for SD and MMC interfaces, in both
227 PIO, internal DMA mode and external DMA mode.
228
Arthur Lid55e4e72020-02-20 18:19:35 -0800229config MMC_DW_CORTINA
230 bool "Cortina specific extensions for Synopsys DW Memory Card Interface"
231 depends on DM_MMC
232 depends on MMC_DW
233 depends on BLK
Arthur Lid55e4e72020-02-20 18:19:35 -0800234 help
235 This selects support for Cortina SoC specific extensions to the
236 Synopsys DesignWare Memory Card Interface driver. Select this option
237 for platforms based on Cortina CAxxxx Soc's.
238
Masahiro Yamadaae4c81e2017-01-10 13:32:05 +0900239config MMC_DW_EXYNOS
240 bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
241 depends on ARCH_EXYNOS
242 depends on MMC_DW
243 default y
244 help
245 This selects support for Samsung Exynos SoC specific extensions to the
246 Synopsys DesignWare Memory Card Interface driver. Select this option
247 for platforms based on Exynos4 and Exynos5 SoC's.
248
249config MMC_DW_K3
250 bool "K3 specific extensions for Synopsys DW Memory Card Interface"
251 depends on MMC_DW
252 help
253 This selects support for Hisilicon K3 SoC specific extensions to the
254 Synopsys DesignWare Memory Card Interface driver. Select this option
255 for platforms based on Hisilicon K3 SoC's.
256
Masahiro Yamadafed44082017-01-10 13:32:03 +0900257config MMC_DW_ROCKCHIP
Simon Glassa8cb4fb2015-08-30 16:55:37 -0600258 bool "Rockchip SD/MMC controller support"
259 depends on DM_MMC && OF_CONTROL
Masahiro Yamada55ed3b42017-01-10 13:32:04 +0900260 depends on MMC_DW
Simon Glassa8cb4fb2015-08-30 16:55:37 -0600261 help
262 This enables support for the Rockchip SD/MMM controller, which is
263 based on Designware IP. The device is compatible with at least
264 SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
265 as removeable SD and micro-SD cards.
266
Masahiro Yamadaae4c81e2017-01-10 13:32:05 +0900267config MMC_DW_SOCFPGA
268 bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
269 depends on ARCH_SOCFPGA
270 depends on MMC_DW
271 default y
272 help
273 This selects support for Altera SOCFPGA specific extensions to the
274 Synopsys DesignWare Memory Card Interface driver. Select this option
275 for platforms based on Altera SOCFPGA.
276
Eugeniy Paltsev15736e22019-02-25 18:35:28 +0300277config MMC_DW_SNPS
278 bool "Extensions for DW Memory Card Interface used in Synopsys ARC devboards"
279 depends on MMC_DW
280 depends on DM_MMC
281 depends on OF_CONTROL
282 depends on CLK
283 help
284 This selects support for Synopsys DesignWare Memory Card Interface driver
285 extensions used in various Synopsys ARC devboards.
286
Stefan Bosch84083182020-07-10 19:07:29 +0200287config NEXELL_DWMMC
288 bool "Nexell SD/MMC controller support"
289 depends on ARCH_NEXELL
290 depends on MMC_DW
291 depends on DM_MMC
292 depends on PINCTRL_NEXELL
293 default y
294
Carlo Caione93738622017-04-12 20:30:42 +0200295config MMC_MESON_GX
296 bool "Meson GX EMMC controller support"
Simon Glasse7881d82017-07-29 11:35:31 -0600297 depends on DM_MMC && BLK && ARCH_MESON
Carlo Caione93738622017-04-12 20:30:42 +0200298 help
299 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
300
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900301config MMC_MXC
302 bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
303 help
304 This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
305 Multimedia Card Interface. If you have an i.MX or MPC512x platform
306 with a Multimedia Card slot, say Y here.
307
308 If unsure, say N.
309
Amit Singh Tomar57a91c32021-11-28 17:02:24 +0530310config MMC_OWL
311 bool "Actions OWL Multimedia Card Interface support"
312 depends on ARCH_OWL && DM_MMC && BLK
313 help
314 This selects the OWL SD/MMC host controller found on board
315 based on Actions S700/S900 SoC.
316
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900317config MMC_MXS
318 bool "Freescale MXS Multimedia Card Interface support"
Adam Ford99bec1a2018-02-06 08:34:45 -0600319 depends on MX23 || MX28 || MX6 || MX7
Philipp Tomsich2acc24f2018-11-30 22:13:25 +0100320 select BOUNCE_BUFFER
Adam Ford99bec1a2018-02-06 08:34:45 -0600321 select APBH_DMA
322 select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
323 select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900324 help
325 This selects the Freescale SSP MMC controller found on MXS based
326 platforms like mx23/28.
327
328 If unsure, say N.
329
Felipe Balbib706b1c2017-02-20 14:24:13 +0300330config MMC_PCI
331 bool "Support for MMC controllers on PCI"
Bin Meng511dcc32021-02-15 20:01:44 +0800332 depends on MMC_SDHCI
Felipe Balbib706b1c2017-02-20 14:24:13 +0300333 help
334 This selects PCI-based MMC controllers.
335 If you have an MMC controller on a PCI bus, say Y here.
336
Suneel Garapati70859892019-10-19 18:03:01 -0700337config MMC_OCTEONTX
Stefan Roesef9bb0ba2021-03-12 09:48:25 +0100338 bool "Marvell Octeon Multimedia Card Interface support"
339 depends on (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
Suneel Garapati70859892019-10-19 18:03:01 -0700340 depends on DM_MMC
341 help
Stefan Roesef9bb0ba2021-03-12 09:48:25 +0100342 This selects the Octeon Multimedia card Interface.
343 If you have an OcteonTX/TX2 or MIPS Octeon board with a
344 Multimedia Card slot, say Y here.
Suneel Garapati70859892019-10-19 18:03:01 -0700345
Felipe Balbib706b1c2017-02-20 14:24:13 +0300346 If unsure, say N.
347
Harm Berntsenc689ae02021-03-30 10:19:41 +0200348config MVEBU_MMC
349 bool "Kirkwood MMC controller support"
350 depends on DM_MMC && BLK && ARCH_KIRKWOOD
351 help
352 Support for MMC host controller on Kirkwood SoCs.
353 If you are on a Kirkwood architecture, say Y here.
354
355 If unsure, say N.
356
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900357config MMC_OMAP_HS
358 bool "TI OMAP High Speed Multimedia Card Interface support"
Simon Glasse7881d82017-07-29 11:35:31 -0600359 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
Jean-Jacques Hiblot8ff77632017-09-21 17:03:10 +0200360 select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900361 help
362 This selects the TI OMAP High Speed Multimedia card Interface.
363 If you have an omap2plus board with a Multimedia Card slot,
364 say Y here.
365
366 If unsure, say N.
367
Jean-Jacques Hiblot27a4b3b2018-02-23 10:40:18 +0100368config MMC_OMAP_HS_ADMA
369 bool "ADMA support for OMAP HS MMC"
370 depends on MMC_OMAP_HS && !OMAP34XX
371 default y if !AM33XX
372 help
373 This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA
374 controller). If supported by the hardware, selecting this option will
375 increase performances.
376
Adam Ford6aca17c2017-02-06 11:31:43 -0600377config MMC_OMAP36XX_PINS
378 bool "Enable MMC1 on OMAP36xx/37xx"
379 depends on OMAP34XX && MMC_OMAP_HS
380 help
381 This enables extended-drain in the MMC/SD/SDIO1I/O and
382 GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
383 specific to the OMAP36xx/37xx using MMC1
384
385 If you have a controller with this interface, say Y here.
386
387 If unsure, say N.
388
Tom Rini2440b5b2022-12-02 16:42:16 -0500389config HSMMC2_8BIT
390 bool "Enable 8-bit interface for eMMC (interface #2)"
391 depends on MMC_OMAP_HS && (OMAP44XX || OMAP54XX || DRA7XX || AM33XX || \
392 AM43XX || ARCH_KEYSTONE)
393
Marek Vasutf3dca4a2018-04-21 17:40:20 +0200394config SH_MMCIF
395 bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support"
Marek Vasutf9aabd42024-02-27 17:05:55 +0100396 depends on ARCH_RENESAS || SH
Marek Vasutf3dca4a2018-04-21 17:40:20 +0200397 help
398 Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform
399
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900400config MMC_UNIPHIER
Marek Vasut7dfddc02017-09-23 13:30:30 +0200401 bool "UniPhier SD/MMC Host Controller support"
402 depends on ARCH_UNIPHIER
Simon Glasse7881d82017-07-29 11:35:31 -0600403 depends on BLK && DM_MMC
Masahiro Yamada9c720c82016-12-30 23:20:14 +0900404 depends on OF_CONTROL
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900405 help
Marek Vasutb24633d2017-07-21 23:24:36 +0200406 This selects support for the Matsushita SD/MMC Host Controller on
Marek Vasut7dfddc02017-09-23 13:30:30 +0200407 SocioNext UniPhier SoCs.
408
409config RENESAS_SDHI
410 bool "Renesas R-Car SD/MMC Host Controller support"
Marek Vasutf9aabd42024-02-27 17:05:55 +0100411 depends on ARCH_RENESAS
Marek Vasut7dfddc02017-09-23 13:30:30 +0200412 depends on BLK && DM_MMC
413 depends on OF_CONTROL
Marek Vasutd2661d82020-04-04 12:45:04 +0200414 select BOUNCE_BUFFER
Marek Vasut7dfddc02017-09-23 13:30:30 +0200415 help
416 This selects support for the Matsushita SD/MMC Host Controller on
417 Renesas R-Car SoCs.
Masahiro Yamadaa111bfb2016-02-18 19:52:48 +0900418
Alexander Grafc8a73a22018-01-23 18:05:22 +0100419config MMC_BCM2835
420 bool "BCM2835 family custom SD/MMC Host Controller support"
421 depends on ARCH_BCM283X
422 depends on BLK && DM_MMC
423 depends on OF_CONTROL
424 default y
425 help
426 This selects support for the custom SD host controller in the BCM2835
427 family of devices.
428
429 If you have a BCM2835 platform with SD or MMC devices, say Y here.
430
431 If unsure, say N.
432
Paul Burtond7727132018-12-16 19:25:20 -0300433config JZ47XX_MMC
434 bool "Ingenic JZ47xx SD/MMC Host Controller support"
435 depends on ARCH_JZ47XX
436 help
437 This selects support for the SD Card Controller on Ingenic JZ47xx SoCs.
438
Masahiro Yamadaa5995a52017-01-30 19:46:50 +0900439config MMC_SANDBOX
Simon Glassf376a3c2016-05-01 13:52:42 -0600440 bool "Sandbox MMC support"
Masahiro Yamadaa5995a52017-01-30 19:46:50 +0900441 depends on SANDBOX
Simon Glasse7881d82017-07-29 11:35:31 -0600442 depends on BLK && DM_MMC && OF_CONTROL
Simon Glassf376a3c2016-05-01 13:52:42 -0600443 help
444 This select a dummy sandbox MMC driver. At present this does nothing
445 other than allow sandbox to be build with MMC support. This
446 improves build coverage for sandbox and makes it easier to detect
447 MMC build errors with sandbox.
448
Masahiro Yamadae1ce61f2016-12-07 22:10:28 +0900449config MMC_SDHCI
450 bool "Secure Digital Host Controller Interface support"
451 help
452 This selects the generic Secure Digital Host Controller Interface.
453 It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
454 and Toshiba(R). Most controllers found in laptops are of this type.
455
456 If you have a controller with this interface, say Y here.
457
458 If unsure, say N.
459
Masahiro Yamada3d3a74c2016-12-07 22:10:30 +0900460config MMC_SDHCI_IO_ACCESSORS
461 bool
462 depends on MMC_SDHCI
463 help
464 This is silent Kconfig symbol that is selected by the drivers that
465 need to overwrite SDHCI IO memory accessors.
466
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900467config MMC_SDHCI_SDMA
468 bool "Support SDHCI SDMA"
469 depends on MMC_SDHCI
470 help
471 This enables support for the SDMA (Single Operation DMA) defined
472 in the SD Host Controller Standard Specification Version 1.00 .
473
Peter Geis3cd664d2023-04-18 16:46:44 +0000474config SPL_MMC_SDHCI_SDMA
475 bool "Support SDHCI SDMA in SPL"
476 depends on SPL_MMC && MMC_SDHCI
477 default y if MMC_SDHCI_SDMA
478 help
479 This enables support for the SDMA (Single Operation DMA) defined
480 in the SD Host Controller Standard Specification Version 1.00 in SPL.
481
Faiz Abbas37cb6262019-04-16 23:06:58 +0530482config MMC_SDHCI_ADMA
483 bool "Support SDHCI ADMA2"
484 depends on MMC_SDHCI
Michael Walle4d6a7732020-09-23 12:42:51 +0200485 select MMC_SDHCI_ADMA_HELPERS
Faiz Abbas37cb6262019-04-16 23:06:58 +0530486 help
487 This enables support for the ADMA (Advanced DMA) defined
488 in the SD Host Controller Standard Specification Version 3.00
489
490config SPL_MMC_SDHCI_ADMA
491 bool "Support SDHCI ADMA2 in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400492 depends on SPL_MMC && MMC_SDHCI
Michael Walle4d6a7732020-09-23 12:42:51 +0200493 select MMC_SDHCI_ADMA_HELPERS
Faiz Abbas37cb6262019-04-16 23:06:58 +0530494 help
495 This enables support for the ADMA (Advanced DMA) defined
496 in the SD Host Controller Standard Specification Version 3.00 in SPL.
497
Chris Packhamb19512f2022-05-29 11:13:17 +1200498config FIXED_SDHCI_ALIGNED_BUFFER
499 hex "SDRAM address for fixed buffer"
500 depends on SPL && MVEBU_SPL_BOOT_DEVICE_MMC
501 default 0x00180000
502 help
503 On the Marvell Armada 38x when the SPL runs it located in internal
504 SRAM which is the L2 cache locked to memory. When the MMC buffers
505 are located on the stack (or bss), the SDIO controller (SDHCI) can't
506 write into this L2 cache memory.
507
508 This specifies the address of a fixed buffer located in SDRAM that
509 will be used for all SDHCI transfers in the SPL.
510
Eddie James7764ee22019-08-27 09:48:03 -0500511config MMC_SDHCI_ASPEED
512 bool "Aspeed SDHCI controller"
513 depends on ARCH_ASPEED
514 depends on DM_MMC
515 depends on MMC_SDHCI
Joel Stanley66900bc2022-06-23 18:35:34 +0930516 select MISC
Eddie James7764ee22019-08-27 09:48:03 -0500517 help
518 Enables support for the Aspeed SDHCI 2.0 controller present on Aspeed
519 SoCs. This device is compatible with SD 3.0 and/or MMC 4.3
520 specifications. On the AST2600, the device is also compatible with
521 MMC 5.1 and eMMC 3.0.
522
Masahiro Yamadadd3b64e2017-01-30 19:46:55 +0900523config MMC_SDHCI_ATMEL
524 bool "Atmel SDHCI controller support"
525 depends on ARCH_AT91
Simon Glasse7881d82017-07-29 11:35:31 -0600526 depends on DM_MMC && BLK && ARCH_AT91
Masahiro Yamadadd3b64e2017-01-30 19:46:55 +0900527 depends on MMC_SDHCI
528 help
529 This enables support for the Atmel SDHCI controller, which supports
530 the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
531 Memory Card Specification V3.0, and the SDIO V3.0 specification.
532 It is compliant with the SD Host Controller Standard V3.0
533 specification.
534
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900535config MMC_SDHCI_BCM2835
536 tristate "SDHCI support for the BCM2835 SD/MMC Controller"
537 depends on ARCH_BCM283X
538 depends on MMC_SDHCI
Masahiro Yamada3d3a74c2016-12-07 22:10:30 +0900539 select MMC_SDHCI_IO_ACCESSORS
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900540 help
541 This selects the BCM2835 SD/MMC controller.
542
543 If you have a BCM2835 platform with SD or MMC devices,
544 say Y here.
545
546 If unsure, say N.
547
Thomas Fitzsimmons894c3ad2018-06-08 17:59:45 -0400548config MMC_SDHCI_BCMSTB
549 tristate "SDHCI support for the BCMSTB SD/MMC Controller"
550 depends on MMC_SDHCI
551 help
552 This selects the Broadcom set-top box SD/MMC controller.
553
554 If you have a BCMSTB platform with SD or MMC devices,
555 say Y here.
556
557 If unsure, say N.
558
Masahiro Yamadae5e7a7c2016-12-30 22:41:46 +0900559config MMC_SDHCI_CADENCE
560 bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
Simon Glasse7881d82017-07-29 11:35:31 -0600561 depends on BLK && DM_MMC
Masahiro Yamadae5e7a7c2016-12-30 22:41:46 +0900562 depends on MMC_SDHCI
563 depends on OF_CONTROL
564 help
565 This selects the Cadence SD/SDIO/eMMC driver.
566
567 If you have a controller with this interface, say Y here.
568
569 If unsure, say N.
570
Kongyang Liueb36f282024-03-10 01:51:55 +0800571config MMC_SDHCI_CV1800B
572 bool "SDHCI support for the CV1800B SD/SDIO/eMMC controller"
573 depends on BLK && DM_MMC
574 depends on MMC_SDHCI
575 depends on OF_CONTROL
576 help
577 This selects the CV1800B SD/SDIO/eMMC driver.
578
579 If you have a controller with this interface,
580 say Y here.
581
582 If unsure, say N.
583
Faiz Abbas3a1a0df2019-06-11 00:43:31 +0530584config MMC_SDHCI_AM654
585 bool "SDHCI Controller on TI's Am654 devices"
Lokesh Vutlaaaa449f2018-08-27 15:57:54 +0530586 depends on ARCH_K3
587 depends on MMC_SDHCI
588 depends on DM_MMC && OF_CONTROL && BLK
Faiz Abbasce142ff2019-06-11 00:43:38 +0530589 depends on REGMAP
Faiz Abbas27a87c82021-02-04 15:10:54 +0530590 select MMC_SDHCI_IO_ACCESSORS
Lokesh Vutlaaaa449f2018-08-27 15:57:54 +0530591 help
Faiz Abbas3a1a0df2019-06-11 00:43:31 +0530592 Support for Secure Digital Host Controller Interface (SDHCI)
593 controllers present on TI's AM654 SOCs.
Lokesh Vutlaaaa449f2018-08-27 15:57:54 +0530594
Arun Parameswaran36645f42019-09-12 11:06:08 -0700595config MMC_SDHCI_IPROC
596 bool "SDHCI support for the iProc SD/MMC Controller"
597 depends on MMC_SDHCI
598 help
599 This selects the iProc SD/MMC controller.
600
601 If you have a Broadcom IPROC platform with SD or MMC devices,
602 say Y or M here.
603
604 If unsure, say N.
605
Jassi Brardadd43c2021-06-04 18:44:16 +0900606config MMC_SDHCI_F_SDH30
Kunihiko Hayashi12fc8ef2022-09-09 16:23:33 +0900607 bool "SDHCI support for Fujitsu Semiconductor/Socionext F_SDH30"
Jassi Brardadd43c2021-06-04 18:44:16 +0900608 depends on BLK && DM_MMC
609 depends on MMC_SDHCI
610 help
611 This selects the Secure Digital Host Controller Interface (SDHCI)
Kunihiko Hayashi12fc8ef2022-09-09 16:23:33 +0900612 Needed by some Fujitsu/Socionext SoC for MMC / SD / SDIO support.
Jassi Brardadd43c2021-06-04 18:44:16 +0900613 If you have a controller with this interface, say Y or M here.
614 If unsure, say N.
615
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900616config MMC_SDHCI_KONA
617 bool "SDHCI support on Broadcom KONA platform"
618 depends on MMC_SDHCI
619 help
620 This selects the Broadcom Kona Secure Digital Host Controller
621 Interface(SDHCI) support.
622 This is used in Broadcom mobile SoCs.
623
624 If you have a controller with this interface, say Y here.
625
Masahiro Yamada360c67d2017-01-30 19:46:53 +0900626config MMC_SDHCI_MSM
627 bool "Qualcomm SDHCI controller"
Simon Glasse7881d82017-07-29 11:35:31 -0600628 depends on BLK && DM_MMC
Masahiro Yamada360c67d2017-01-30 19:46:53 +0900629 depends on MMC_SDHCI
630 help
631 Enables support for SDHCI 2.0 controller present on some Qualcomm
632 Snapdragon devices. This device is compatible with eMMC v4.5 and
633 SD 3.0 specifications. Both SD and eMMC devices are supported.
634 Card-detect gpios are not supported.
635
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900636config MMC_SDHCI_MV
637 bool "SDHCI support on Marvell platform"
638 depends on ARCH_MVEBU
639 depends on MMC_SDHCI
Stefan Roese8af21b02023-02-10 13:23:52 +0100640 depends on DM_MMC
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900641 help
642 This selects the Secure Digital Host Controller Interface on
643 Marvell platform.
644
645 If you have a controller with this interface, say Y here.
646
647 If unsure, say N.
648
Jim Liu3363a732022-05-24 16:55:33 +0800649config MMC_SDHCI_NPCM
650 bool "SDHCI support on Nuvoton NPCM device"
651 depends on MMC_SDHCI
652 depends on DM_MMC
653 help
654 This selects the Secure Digital Host Controller Interface (SDHCI)
655 on Nuvoton NPCM device.
656
657 If you have a controller with this interface, say Y here.
658
659 If unsure, say N.
660
Masahiro Yamada1b858772017-01-30 19:46:54 +0900661config MMC_SDHCI_PIC32
662 bool "Microchip PIC32 on-chip SDHCI support"
663 depends on DM_MMC && MACH_PIC32
664 depends on MMC_SDHCI
665 help
666 Support for Microchip PIC32 SDHCI controller.
667
Masahiro Yamadafacc8052017-01-30 19:46:52 +0900668config MMC_SDHCI_ROCKCHIP
669 bool "Arasan SDHCI controller for Rockchip support"
670 depends on ARCH_ROCKCHIP
Simon Glasse7881d82017-07-29 11:35:31 -0600671 depends on DM_MMC && BLK
Masahiro Yamadafacc8052017-01-30 19:46:52 +0900672 depends on MMC_SDHCI
673 help
674 Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
675
Masahiro Yamada45a68fe2016-12-07 22:10:29 +0900676config MMC_SDHCI_S5P
677 bool "SDHCI support on Samsung S5P SoC"
678 depends on MMC_SDHCI
679 help
680 This selects the Secure Digital Host Controller Interface (SDHCI)
681 on Samsung S5P SoCs.
682
683 If you have a controller with this interface, say Y here.
684
685 If unsure, say N.
686
Patrice Chotardeee20f82017-02-21 13:37:09 +0100687config MMC_SDHCI_STI
688 bool "SDHCI support for STMicroelectronics SoC"
Patrice Chotard51cb23d2017-02-21 13:37:11 +0100689 depends on MMC_SDHCI && OF_CONTROL
Patrice Chotardeee20f82017-02-21 13:37:09 +0100690 help
691 This selects the Secure Digital Host Controller Interface (SDHCI)
692 on STMicroelectronics STiH410 SoC.
693
Stefan Roeseb6acb5f2016-12-09 15:03:28 +0100694config MMC_SDHCI_XENON
695 bool "SDHCI support for the Xenon SDHCI controller"
696 depends on MMC_SDHCI && DM_MMC && OF_CONTROL
697 help
698 Support for Xenon SDHCI host controller on Marvell Armada 3700
699 7k/8k ARM SoCs platforms
700
701 If you have a controller with this interface, say Y here.
702
703 If unsure, say N.
704
Felipe Balbi83b32482017-02-20 14:24:14 +0300705config MMC_SDHCI_TANGIER
706 bool "Tangier SDHCI controller support"
707 depends on DM_MMC && BLK
708 depends on MMC_SDHCI
709 help
710 This selects support for SDHCI controller on Tanginer
711 SoC. Note that this controller does not sit on PCI bus and,
712 hence, cannot be enumerated by standard PCI means.
713
714 If you're using an Intel Tangier SoC (available on Intel
715 Edison board), say Y here.
716
717 If unsure, say N.
718
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900719config MMC_SDHCI_TEGRA
720 bool "SDHCI platform support for the Tegra SD/MMC Controller"
Trevor Woerner18138ab2020-05-06 08:02:41 -0400721 depends on ARCH_TEGRA
Philipp Tomsich2acc24f2018-11-30 22:13:25 +0100722 select BOUNCE_BUFFER
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900723 default y
724 help
725 This selects the Tegra SD/MMC controller. If you have a Tegra
726 platform with SD or MMC devices, say Y here.
727
728 If unsure, say N.
729
Trent Piephob78d97e2019-04-01 23:05:49 +0000730config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
731 bool "Disable external clock loopback"
732 depends on MMC_SDHCI_TEGRA && TEGRA124
733 help
734 Disable the external clock loopback and use the internal one on SDMMC3
735 as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
736 being set to 0xfffd according to the TRM.
737
738 TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
739 approach once proper kernel integration made it mainline.
740
Masahiro Yamada08aa0332017-01-30 19:46:51 +0900741config MMC_SDHCI_ZYNQ
742 bool "Arasan SDHCI controller support"
Simon Glasse7881d82017-07-29 11:35:31 -0600743 depends on DM_MMC && OF_CONTROL && BLK
Masahiro Yamada08aa0332017-01-30 19:46:51 +0900744 depends on MMC_SDHCI
745 help
746 Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
747
Vipul Kumar5dc5a532018-02-28 15:53:28 +0530748config ZYNQ_SDHCI_MAX_FREQ
749 int "Set the maximum frequency of the controller"
750 depends on MMC_SDHCI_ZYNQ
751 help
752 Set the maximum frequency of the controller.
753
Vipul Kumar3ccc2072018-02-28 15:53:29 +0530754config ZYNQ_SDHCI_MIN_FREQ
755 int "Set the minimum frequency of the controller"
756 depends on MMC_SDHCI_ZYNQ
757 default 0
758 help
759 Set the minimum frequency of the controller.
760
Siva Durga Prasad Paladugud882f082019-05-27 14:33:14 +0530761config ZYNQ_HISPD_BROKEN
762 bool "High speed broken for Zynq SDHCI controller"
763 depends on MMC_SDHCI_ZYNQ
764 help
765 Set if high speed mode is broken.
766
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900767config MMC_SUNXI
768 bool "Allwinner sunxi SD/MMC Host Controller support"
Samuel Holland818e1632022-04-10 00:13:34 -0500769 depends on ARCH_SUNXI
Masahiro Yamada1d2c0502017-01-10 13:32:07 +0900770 default y
771 help
772 This selects support for the SD/MMC Host Controller on
773 Allwinner sunxi SoCs.
774
Maxime Ripardde9b1772017-08-23 12:03:41 +0200775config MMC_SUNXI_HAS_NEW_MODE
776 bool
777 depends on MMC_SUNXI
778
Vasily Khoruzhick2a8882e2018-11-09 20:41:44 -0800779config MMC_SUNXI_HAS_MODE_SWITCH
780 bool
781 depends on MMC_SUNXI
782
Tianrui Weid6b156e2021-07-01 12:54:20 +0800783config MMC_PITON
784 bool "MMC support for OpenPiton SoC"
785 depends on DM_MMC && BLK
786 help
787 This selects support for the SD host controller on OpenPiton SoC.
788 Note that this SD controller directly exposes the contents of the
789 SD card as memory mapped, so there is no manual configuration
790 required
791
Wenyou Yangc86c0152017-04-13 10:29:22 +0800792config GENERIC_ATMEL_MCI
793 bool "Atmel Multimedia Card Interface support"
Simon Glasse7881d82017-07-29 11:35:31 -0600794 depends on DM_MMC && BLK && ARCH_AT91
Wenyou Yangc86c0152017-04-13 10:29:22 +0800795 help
796 This enables support for Atmel High Speed Multimedia Card Interface
797 (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
798 the SD Memory Card Specification V2.0, the SDIO V2.0 specification
799 and CE-ATA V1.1.
800
Patrice Chotardb312c592017-09-04 17:56:22 +0200801config STM32_SDMMC2
802 bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
Patrice Chotard53c656a2017-10-03 15:54:58 +0200803 depends on DM_MMC && BLK && OF_CONTROL
Patrice Chotardb312c592017-09-04 17:56:22 +0200804 help
805 This selects support for the SD/MMC controller on STM32H7 SoCs.
806 If you have a board based on such a SoC and with a SD/MMC slot,
807 say Y or M here.
808
Rick Chen9f678ab2017-11-14 14:47:09 +0800809config FTSDC010
810 bool "Ftsdc010 SD/MMC controller Support"
811 help
812 This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
813
Rick Chen095c9f32018-03-20 15:10:49 +0800814config FTSDC010_SDIO
815 bool "Support ftsdc010 sdio"
Rick Chen095c9f32018-03-20 15:10:49 +0800816 depends on FTSDC010
817 help
818 This can enable ftsdc010 sdio function.
819
Weijie Gaod24b6932018-11-15 10:08:04 +0800820config MMC_MTK
821 bool "MediaTek SD/MMC Card Interface support"
Weijie Gao3c92a952019-09-25 17:45:37 +0800822 depends on ARCH_MEDIATEK || ARCH_MTMIPS
Weijie Gaod24b6932018-11-15 10:08:04 +0800823 depends on BLK && DM_MMC
824 depends on OF_CONTROL
825 help
826 This selects the MediaTek(R) Secure digital and Multimedia card Interface.
827 If you have a machine with a integrated SD/MMC card reader, say Y or M here.
828 This is needed if support for any SD/SDIO/MMC devices is required.
829 If unsure, say N.
830
Masahiro Yamadae298c462016-12-07 22:10:27 +0900831endif
832
Tom Rini3a581af2022-12-02 16:42:21 -0500833config FSL_SDHC_V2_3
834 bool
835
Mario Six07dea2e2018-03-28 14:38:19 +0200836config FSL_ESDHC
837 bool "Freescale/NXP eSDHC controller support"
Tom Rini3a581af2022-12-02 16:42:21 -0500838 select FSL_SDHC_V2_3 if ARCH_P1010 || ARCH_BSC9131 || ARCH_BSC9132 \
839 || ARCH_C29X
Mario Six07dea2e2018-03-28 14:38:19 +0200840 help
Yangbo Lufa33d202019-06-21 11:42:27 +0800841 This selects support for the eSDHC (Enhanced Secure Digital Host
842 Controller) found on numerous Freescale/NXP SoCs.
843
Michael Walle361a4222020-10-12 10:07:14 +0200844config FSL_ESDHC_SUPPORT_ADMA2
845 bool "enable ADMA2 support"
846 depends on FSL_ESDHC
847 select MMC_SDHCI_ADMA_HELPERS
848 help
849 This enables support for the ADMA2 transfer mode. If supported by the
850 eSDHC it will allow 64bit DMA addresses.
851
Yangbo Luc927d652020-05-19 11:06:44 +0800852config FSL_ESDHC_33V_IO_RELIABILITY_WORKAROUND
853 bool "enable eSDHC workaround for 3.3v IO reliability issue"
854 depends on FSL_ESDHC && DM_MMC
Yangbo Luc927d652020-05-19 11:06:44 +0800855 help
856 When eSDHC operates at 3.3v, damage can accumulate in an internal
857 level shifter at a higher than expected rate. The faster the interface
858 runs, the more damage accumulates. This issue now is found on LX2160A
859 eSDHC1 for only SD card. The hardware workaround is recommended to use
860 an on-board level shifter that is 1.8v on SoC side and 3.3v on SD card
861 side. For boards without hardware workaround, this option could be
862 enabled, ensuring 1.8v IO voltage and disabling eSDHC if no card.
863 This option assumes no hotplug, and u-boot has to make all the way to
864 to linux to use 1.8v UHS-I speed mode if has card.
865
Yangbo Luae7020b2021-06-03 10:51:17 +0800866config FSL_ESDHC_VS33_NOT_SUPPORT
867 bool "3.3V power supply not supported"
868 depends on FSL_ESDHC
869 help
870 For eSDHC, power supply is through peripheral circuit. 3.3V support is
871 common. Select this if 3.3V power supply not supported.
872
Pali Rohár8f3f8ba2022-05-11 20:27:13 +0200873config SYS_FSL_ESDHC_DEFAULT_BUS_WIDTH
874 int
875 depends on FSL_ESDHC
876 default 1
877
Tom Rini7e7d04a2022-06-16 14:04:38 -0400878config ESDHC_DETECT_QUIRK
879 bool "QIXIS-based eSDHC quirk detection"
880 depends on FSL_ESDHC && FSL_QIXIS
881
Yangbo Lufa33d202019-06-21 11:42:27 +0800882config FSL_ESDHC_IMX
883 bool "Freescale/NXP i.MX eSDHC controller support"
884 help
885 This selects support for the i.MX eSDHC (Enhanced Secure Digital Host
886 Controller) found on numerous Freescale/NXP SoCs.
Mario Six07dea2e2018-03-28 14:38:19 +0200887
Tom Rini7ae1e6a2022-07-31 21:08:25 -0400888config SYS_FSL_ESDHC_HAS_DDR_MODE
889 bool "i.MX eSDHC controller supports DDR mode"
890 depends on FSL_ESDHC_IMX
891
Adam Ford3f70bef2019-08-14 07:23:43 -0500892config FSL_USDHC
893 bool "Freescale/NXP i.MX uSDHC controller support"
Peng Fanc8671d22022-07-26 16:40:44 +0800894 depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMX8ULP || IMX9 || IMXRT
Adam Ford3f70bef2019-08-14 07:23:43 -0500895 select FSL_ESDHC_IMX
896 help
897 This enables the Ultra Secured Digital Host Controller enhancements
898
Tom Rini5388aa22022-12-02 16:42:22 -0500899config FSL_ESDHC_PIN_MUX
900 bool "Perform esdhc device-tree fixup"
901 depends on (FSL_ESDHC || FSL_ESDHC_IMX) && OF_LIBFDT
902
Nobuhiro Iwamatsu72d42ba2014-12-17 08:03:00 +0900903endmenu
York Sunc01e4a12016-12-28 08:43:42 -0800904
905config SYS_FSL_ERRATUM_ESDHC111
906 bool
907
908config SYS_FSL_ERRATUM_ESDHC13
909 bool
910
911config SYS_FSL_ERRATUM_ESDHC135
912 bool
913
914config SYS_FSL_ERRATUM_ESDHC_A001
915 bool
Michael Wallebd7b8502021-03-17 15:01:36 +0100916
917config SYS_FSL_ERRATUM_A011334
918 bool
Michael Walled3b745f2021-03-17 15:01:37 +0100919
920config SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
921 bool