Kconfig 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. menu "MMC Host controller Support"
  2. config MMC
  3. bool "MMC/SD/SDIO card support"
  4. default ARM || PPC || SANDBOX
  5. select HAVE_BLOCK_DEVICE
  6. help
  7. This selects MultiMediaCard, Secure Digital and Secure
  8. Digital I/O support.
  9. If you want MMC/SD/SDIO support, you should say Y here and
  10. also to your specific host controller driver.
  11. config MMC_WRITE
  12. bool "support for MMC/SD write operations"
  13. depends on MMC
  14. default y
  15. help
  16. Enable write access to MMC and SD Cards
  17. config MMC_BROKEN_CD
  18. bool "Poll for broken card detection case"
  19. help
  20. If card detection feature is broken, just poll to detect.
  21. config DM_MMC
  22. bool "Enable MMC controllers using Driver Model"
  23. depends on DM
  24. help
  25. This enables the MultiMediaCard (MMC) uclass which supports MMC and
  26. Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
  27. and non-removable (e.g. eMMC chip) devices are supported. These
  28. appear as block devices in U-Boot and can support filesystems such
  29. as EXT4 and FAT.
  30. config SPL_DM_MMC
  31. bool "Enable MMC controllers using Driver Model in SPL"
  32. depends on SPL_DM && DM_MMC
  33. default y
  34. help
  35. This enables the MultiMediaCard (MMC) uclass which supports MMC and
  36. Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
  37. and non-removable (e.g. eMMC chip) devices are supported. These
  38. appear as block devices in U-Boot and can support filesystems such
  39. as EXT4 and FAT.
  40. if MMC
  41. config ARM_PL180_MMCI
  42. bool "ARM AMBA Multimedia Card Interface and compatible support"
  43. depends on DM_MMC && OF_CONTROL
  44. help
  45. This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
  46. Interface (PL180, PL181 and compatible) support.
  47. If you have an ARM(R) platform with a Multimedia Card slot,
  48. say Y or M here.
  49. config MMC_QUIRKS
  50. bool "Enable quirks"
  51. default y
  52. help
  53. Some cards and hosts may sometimes behave unexpectedly (quirks).
  54. This option enable workarounds to handle those quirks. Some of them
  55. are enabled by default, other may require additionnal flags or are
  56. enabled by the host driver.
  57. config MMC_HW_PARTITIONING
  58. bool "Support for HW partitioning command(eMMC)"
  59. default y
  60. help
  61. This adds a command and an API to do hardware partitioning on eMMC
  62. devices.
  63. config SUPPORT_EMMC_RPMB
  64. bool "Support eMMC replay protected memory block (RPMB)"
  65. imply CMD_MMC_RPMB
  66. help
  67. Enable support for reading, writing and programming the
  68. key for the Replay Protection Memory Block partition in eMMC.
  69. config MMC_IO_VOLTAGE
  70. bool "Support IO voltage configuration"
  71. help
  72. IO voltage configuration allows selecting the voltage level of the IO
  73. lines (not the level of main supply). This is required for UHS
  74. support. For eMMC this not mandatory, but not enabling this option may
  75. prevent the driver of using the faster modes.
  76. config SPL_MMC_IO_VOLTAGE
  77. bool "Support IO voltage configuration in SPL"
  78. default n
  79. help
  80. IO voltage configuration allows selecting the voltage level of the IO
  81. lines (not the level of main supply). This is required for UHS
  82. support. For eMMC this not mandatory, but not enabling this option may
  83. prevent the driver of using the faster modes.
  84. config MMC_UHS_SUPPORT
  85. bool "enable UHS support"
  86. depends on MMC_IO_VOLTAGE
  87. help
  88. The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
  89. cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
  90. frequency can go up to 208MHz (SDR104)
  91. config SPL_MMC_UHS_SUPPORT
  92. bool "enable UHS support in SPL"
  93. depends on SPL_MMC_IO_VOLTAGE
  94. help
  95. The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
  96. cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
  97. frequency can go up to 208MHz (SDR104)
  98. config MMC_HS200_SUPPORT
  99. bool "enable HS200 support"
  100. help
  101. The HS200 mode is support by some eMMC. The bus frequency is up to
  102. 200MHz. This mode requires tuning the IO.
  103. config SPL_MMC_HS200_SUPPORT
  104. bool "enable HS200 support in SPL"
  105. help
  106. The HS200 mode is support by some eMMC. The bus frequency is up to
  107. 200MHz. This mode requires tuning the IO.
  108. config MMC_VERBOSE
  109. bool "Output more information about the MMC"
  110. default y
  111. help
  112. Enable the output of more information about the card such as the
  113. operating mode.
  114. config MMC_TRACE
  115. bool "MMC debugging"
  116. default n
  117. help
  118. This is an option for use by developer. Enable MMC core debugging.
  119. If you need to see the MMC core message, say Y.
  120. config SPL_MMC_TINY
  121. bool "Tiny MMC framework in SPL"
  122. help
  123. Enable MMC framework tinification support. This option is useful if
  124. if your SPL is extremely size constrained. Heed the warning, enable
  125. this option if and only if you know exactly what you are doing, if
  126. you are reading this help text, you most likely have no idea :-)
  127. The MMC framework is reduced to bare minimum to be useful. No malloc
  128. support is needed for the MMC framework operation with this option
  129. enabled. The framework supports exactly one MMC device and exactly
  130. one MMC driver. The MMC driver can be adjusted to avoid any malloc
  131. operations too, which can remove the need for malloc support in SPL
  132. and thus further reduce footprint.
  133. config MMC_DAVINCI
  134. bool "TI DAVINCI Multimedia Card Interface support"
  135. depends on ARCH_DAVINCI
  136. default y
  137. help
  138. This selects the TI DAVINCI Multimedia card Interface.
  139. If you have an DAVINCI board with a Multimedia Card slot,
  140. say Y here. If unsure, say N.
  141. config MMC_DW
  142. bool "Synopsys DesignWare Memory Card Interface"
  143. help
  144. This selects support for the Synopsys DesignWare Mobile Storage IP
  145. block, this provides host support for SD and MMC interfaces, in both
  146. PIO, internal DMA mode and external DMA mode.
  147. config MMC_DW_EXYNOS
  148. bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
  149. depends on ARCH_EXYNOS
  150. depends on MMC_DW
  151. default y
  152. help
  153. This selects support for Samsung Exynos SoC specific extensions to the
  154. Synopsys DesignWare Memory Card Interface driver. Select this option
  155. for platforms based on Exynos4 and Exynos5 SoC's.
  156. config MMC_DW_K3
  157. bool "K3 specific extensions for Synopsys DW Memory Card Interface"
  158. depends on MMC_DW
  159. help
  160. This selects support for Hisilicon K3 SoC specific extensions to the
  161. Synopsys DesignWare Memory Card Interface driver. Select this option
  162. for platforms based on Hisilicon K3 SoC's.
  163. config MMC_DW_ROCKCHIP
  164. bool "Rockchip SD/MMC controller support"
  165. depends on DM_MMC && OF_CONTROL
  166. depends on MMC_DW
  167. help
  168. This enables support for the Rockchip SD/MMM controller, which is
  169. based on Designware IP. The device is compatible with at least
  170. SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
  171. as removeable SD and micro-SD cards.
  172. config MMC_DW_SOCFPGA
  173. bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
  174. depends on ARCH_SOCFPGA
  175. depends on MMC_DW
  176. default y
  177. help
  178. This selects support for Altera SOCFPGA specific extensions to the
  179. Synopsys DesignWare Memory Card Interface driver. Select this option
  180. for platforms based on Altera SOCFPGA.
  181. config MMC_MESON_GX
  182. bool "Meson GX EMMC controller support"
  183. depends on DM_MMC && BLK && ARCH_MESON
  184. help
  185. Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
  186. config MMC_MXC
  187. bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
  188. help
  189. This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
  190. Multimedia Card Interface. If you have an i.MX or MPC512x platform
  191. with a Multimedia Card slot, say Y here.
  192. If unsure, say N.
  193. config MMC_MXS
  194. bool "Freescale MXS Multimedia Card Interface support"
  195. depends on MX23 || MX28 || MX6 || MX7
  196. select APBH_DMA
  197. select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
  198. select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
  199. help
  200. This selects the Freescale SSP MMC controller found on MXS based
  201. platforms like mx23/28.
  202. If unsure, say N.
  203. config MMC_PCI
  204. bool "Support for MMC controllers on PCI"
  205. help
  206. This selects PCI-based MMC controllers.
  207. If you have an MMC controller on a PCI bus, say Y here.
  208. If unsure, say N.
  209. config MMC_OMAP_HS
  210. bool "TI OMAP High Speed Multimedia Card Interface support"
  211. select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
  212. select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
  213. help
  214. This selects the TI OMAP High Speed Multimedia card Interface.
  215. If you have an omap2plus board with a Multimedia Card slot,
  216. say Y here.
  217. If unsure, say N.
  218. config MMC_OMAP_HS_ADMA
  219. bool "ADMA support for OMAP HS MMC"
  220. depends on MMC_OMAP_HS && !OMAP34XX
  221. default y if !AM33XX
  222. help
  223. This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA
  224. controller). If supported by the hardware, selecting this option will
  225. increase performances.
  226. config MMC_OMAP36XX_PINS
  227. bool "Enable MMC1 on OMAP36xx/37xx"
  228. depends on OMAP34XX && MMC_OMAP_HS
  229. help
  230. This enables extended-drain in the MMC/SD/SDIO1I/O and
  231. GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
  232. specific to the OMAP36xx/37xx using MMC1
  233. If you have a controller with this interface, say Y here.
  234. If unsure, say N.
  235. config SH_SDHI
  236. bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
  237. depends on ARCH_RMOBILE
  238. help
  239. Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
  240. config SH_MMCIF
  241. bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support"
  242. depends on ARCH_RMOBILE || SH
  243. help
  244. Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform
  245. config MMC_UNIPHIER
  246. bool "UniPhier SD/MMC Host Controller support"
  247. depends on ARCH_UNIPHIER
  248. depends on BLK && DM_MMC
  249. depends on OF_CONTROL
  250. help
  251. This selects support for the Matsushita SD/MMC Host Controller on
  252. SocioNext UniPhier SoCs.
  253. config RENESAS_SDHI
  254. bool "Renesas R-Car SD/MMC Host Controller support"
  255. depends on ARCH_RMOBILE
  256. depends on BLK && DM_MMC
  257. depends on OF_CONTROL
  258. help
  259. This selects support for the Matsushita SD/MMC Host Controller on
  260. Renesas R-Car SoCs.
  261. config MMC_BCM2835
  262. bool "BCM2835 family custom SD/MMC Host Controller support"
  263. depends on ARCH_BCM283X
  264. depends on BLK && DM_MMC
  265. depends on OF_CONTROL
  266. default y
  267. help
  268. This selects support for the custom SD host controller in the BCM2835
  269. family of devices.
  270. If you have a BCM2835 platform with SD or MMC devices, say Y here.
  271. If unsure, say N.
  272. config MMC_SANDBOX
  273. bool "Sandbox MMC support"
  274. depends on SANDBOX
  275. depends on BLK && DM_MMC && OF_CONTROL
  276. help
  277. This select a dummy sandbox MMC driver. At present this does nothing
  278. other than allow sandbox to be build with MMC support. This
  279. improves build coverage for sandbox and makes it easier to detect
  280. MMC build errors with sandbox.
  281. config MMC_SDHCI
  282. bool "Secure Digital Host Controller Interface support"
  283. help
  284. This selects the generic Secure Digital Host Controller Interface.
  285. It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
  286. and Toshiba(R). Most controllers found in laptops are of this type.
  287. If you have a controller with this interface, say Y here.
  288. If unsure, say N.
  289. config MMC_SDHCI_IO_ACCESSORS
  290. bool
  291. depends on MMC_SDHCI
  292. help
  293. This is silent Kconfig symbol that is selected by the drivers that
  294. need to overwrite SDHCI IO memory accessors.
  295. config MMC_SDHCI_SDMA
  296. bool "Support SDHCI SDMA"
  297. depends on MMC_SDHCI
  298. help
  299. This enables support for the SDMA (Single Operation DMA) defined
  300. in the SD Host Controller Standard Specification Version 1.00 .
  301. config MMC_SDHCI_ATMEL
  302. bool "Atmel SDHCI controller support"
  303. depends on ARCH_AT91
  304. depends on DM_MMC && BLK && ARCH_AT91
  305. depends on MMC_SDHCI
  306. help
  307. This enables support for the Atmel SDHCI controller, which supports
  308. the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
  309. Memory Card Specification V3.0, and the SDIO V3.0 specification.
  310. It is compliant with the SD Host Controller Standard V3.0
  311. specification.
  312. config MMC_SDHCI_BCM2835
  313. tristate "SDHCI support for the BCM2835 SD/MMC Controller"
  314. depends on ARCH_BCM283X
  315. depends on MMC_SDHCI
  316. select MMC_SDHCI_IO_ACCESSORS
  317. help
  318. This selects the BCM2835 SD/MMC controller.
  319. If you have a BCM2835 platform with SD or MMC devices,
  320. say Y here.
  321. If unsure, say N.
  322. config MMC_SDHCI_BCMSTB
  323. tristate "SDHCI support for the BCMSTB SD/MMC Controller"
  324. depends on MMC_SDHCI
  325. help
  326. This selects the Broadcom set-top box SD/MMC controller.
  327. If you have a BCMSTB platform with SD or MMC devices,
  328. say Y here.
  329. If unsure, say N.
  330. config MMC_SDHCI_CADENCE
  331. bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
  332. depends on BLK && DM_MMC
  333. depends on MMC_SDHCI
  334. depends on OF_CONTROL
  335. help
  336. This selects the Cadence SD/SDIO/eMMC driver.
  337. If you have a controller with this interface, say Y here.
  338. If unsure, say N.
  339. config MMC_SDHCI_KONA
  340. bool "SDHCI support on Broadcom KONA platform"
  341. depends on MMC_SDHCI
  342. help
  343. This selects the Broadcom Kona Secure Digital Host Controller
  344. Interface(SDHCI) support.
  345. This is used in Broadcom mobile SoCs.
  346. If you have a controller with this interface, say Y here.
  347. config MMC_SDHCI_MSM
  348. bool "Qualcomm SDHCI controller"
  349. depends on BLK && DM_MMC
  350. depends on MMC_SDHCI
  351. help
  352. Enables support for SDHCI 2.0 controller present on some Qualcomm
  353. Snapdragon devices. This device is compatible with eMMC v4.5 and
  354. SD 3.0 specifications. Both SD and eMMC devices are supported.
  355. Card-detect gpios are not supported.
  356. config MMC_SDHCI_MV
  357. bool "SDHCI support on Marvell platform"
  358. depends on ARCH_MVEBU
  359. depends on MMC_SDHCI
  360. help
  361. This selects the Secure Digital Host Controller Interface on
  362. Marvell platform.
  363. If you have a controller with this interface, say Y here.
  364. If unsure, say N.
  365. config MMC_SDHCI_PIC32
  366. bool "Microchip PIC32 on-chip SDHCI support"
  367. depends on DM_MMC && MACH_PIC32
  368. depends on MMC_SDHCI
  369. help
  370. Support for Microchip PIC32 SDHCI controller.
  371. config MMC_SDHCI_ROCKCHIP
  372. bool "Arasan SDHCI controller for Rockchip support"
  373. depends on ARCH_ROCKCHIP
  374. depends on DM_MMC && BLK
  375. depends on MMC_SDHCI
  376. help
  377. Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
  378. config MMC_SDHCI_S5P
  379. bool "SDHCI support on Samsung S5P SoC"
  380. depends on MMC_SDHCI
  381. help
  382. This selects the Secure Digital Host Controller Interface (SDHCI)
  383. on Samsung S5P SoCs.
  384. If you have a controller with this interface, say Y here.
  385. If unsure, say N.
  386. config MMC_SDHCI_SPEAR
  387. bool "SDHCI support on ST SPEAr platform"
  388. depends on MMC_SDHCI
  389. help
  390. This selects the Secure Digital Host Controller Interface (SDHCI)
  391. often referrered to as the HSMMC block in some of the ST SPEAR range
  392. of SoC
  393. If you have a controller with this interface, say Y here.
  394. If unsure, say N.
  395. config MMC_SDHCI_STI
  396. bool "SDHCI support for STMicroelectronics SoC"
  397. depends on MMC_SDHCI && OF_CONTROL
  398. help
  399. This selects the Secure Digital Host Controller Interface (SDHCI)
  400. on STMicroelectronics STiH410 SoC.
  401. config MMC_SDHCI_XENON
  402. bool "SDHCI support for the Xenon SDHCI controller"
  403. depends on MMC_SDHCI && DM_MMC && OF_CONTROL
  404. help
  405. Support for Xenon SDHCI host controller on Marvell Armada 3700
  406. 7k/8k ARM SoCs platforms
  407. If you have a controller with this interface, say Y here.
  408. If unsure, say N.
  409. config MMC_SDHCI_TANGIER
  410. bool "Tangier SDHCI controller support"
  411. depends on DM_MMC && BLK
  412. depends on MMC_SDHCI
  413. help
  414. This selects support for SDHCI controller on Tanginer
  415. SoC. Note that this controller does not sit on PCI bus and,
  416. hence, cannot be enumerated by standard PCI means.
  417. If you're using an Intel Tangier SoC (available on Intel
  418. Edison board), say Y here.
  419. If unsure, say N.
  420. config MMC_SDHCI_TEGRA
  421. bool "SDHCI platform support for the Tegra SD/MMC Controller"
  422. depends on TEGRA
  423. default y
  424. help
  425. This selects the Tegra SD/MMC controller. If you have a Tegra
  426. platform with SD or MMC devices, say Y here.
  427. If unsure, say N.
  428. config MMC_SDHCI_ZYNQ
  429. bool "Arasan SDHCI controller support"
  430. depends on ARCH_ZYNQ || ARCH_ZYNQMP
  431. depends on DM_MMC && OF_CONTROL && BLK
  432. depends on MMC_SDHCI
  433. help
  434. Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
  435. config ZYNQ_SDHCI_MAX_FREQ
  436. int "Set the maximum frequency of the controller"
  437. depends on MMC_SDHCI_ZYNQ
  438. help
  439. Set the maximum frequency of the controller.
  440. config ZYNQ_SDHCI_MIN_FREQ
  441. int "Set the minimum frequency of the controller"
  442. depends on MMC_SDHCI_ZYNQ
  443. default 0
  444. help
  445. Set the minimum frequency of the controller.
  446. config MMC_SUNXI
  447. bool "Allwinner sunxi SD/MMC Host Controller support"
  448. depends on ARCH_SUNXI && !UART0_PORT_F
  449. default y
  450. help
  451. This selects support for the SD/MMC Host Controller on
  452. Allwinner sunxi SoCs.
  453. config MMC_SUNXI_HAS_NEW_MODE
  454. bool
  455. depends on MMC_SUNXI
  456. config GENERIC_ATMEL_MCI
  457. bool "Atmel Multimedia Card Interface support"
  458. depends on DM_MMC && BLK && ARCH_AT91
  459. help
  460. This enables support for Atmel High Speed Multimedia Card Interface
  461. (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
  462. the SD Memory Card Specification V2.0, the SDIO V2.0 specification
  463. and CE-ATA V1.1.
  464. config STM32_SDMMC2
  465. bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
  466. depends on DM_MMC && BLK && OF_CONTROL
  467. help
  468. This selects support for the SD/MMC controller on STM32H7 SoCs.
  469. If you have a board based on such a SoC and with a SD/MMC slot,
  470. say Y or M here.
  471. config FTSDC010
  472. bool "Ftsdc010 SD/MMC controller Support"
  473. help
  474. This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
  475. config FTSDC010_SDIO
  476. bool "Support ftsdc010 sdio"
  477. default n
  478. depends on FTSDC010
  479. help
  480. This can enable ftsdc010 sdio function.
  481. endif
  482. config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
  483. bool "Disable external clock loopback"
  484. depends on MMC_SDHCI_TEGRA && TEGRA124
  485. help
  486. Disable the external clock loopback and use the internal one on SDMMC3
  487. as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
  488. being set to 0xfffd according to the TRM.
  489. TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
  490. approach once proper kernel integration made it mainline.
  491. config FSL_ESDHC
  492. bool "Freescale/NXP eSDHC controller support"
  493. help
  494. This selects support for the eSDHC (enhanced secure digital host
  495. controller) found on numerous Freescale/NXP SoCs.
  496. endmenu
  497. config SYS_FSL_ERRATUM_ESDHC111
  498. bool
  499. config SYS_FSL_ERRATUM_ESDHC13
  500. bool
  501. config SYS_FSL_ERRATUM_ESDHC135
  502. bool
  503. config SYS_FSL_ERRATUM_ESDHC_A001
  504. bool