Message ID | 1480857794-27145-6-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | New |
Headers | show |
On Sun, Dec 04, 2016 at 10:23:13PM +0900, Masahiro Yamada wrote: > While I moved the options, I also renamed them so that they are all > prefixed with MMC_SDHCI_. [snip] > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig > index 8e9fa2d..4785d71 100644 > --- a/drivers/mmc/Kconfig > +++ b/drivers/mmc/Kconfig > @@ -132,6 +132,68 @@ config MMC_SDHCI > > If unsure, say N. > > +config MMC_SDHCI_SDMA > + bool "Support SDHCI SDMA" > + depends on MMC_SDHCI > + help > + This enables support for the SDMA (Single Operation DMA) defined > + in the SD Host Controller Standard Specification Version 1.00 . I think this should be a default y. -- Tom _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Hi Tom 2016-12-06 4:10 GMT+09:00 Tom Rini <trini@konsulko.com>: > On Sun, Dec 04, 2016 at 10:23:13PM +0900, Masahiro Yamada wrote: > >> While I moved the options, I also renamed them so that they are all >> prefixed with MMC_SDHCI_. > [snip] >> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig >> index 8e9fa2d..4785d71 100644 >> --- a/drivers/mmc/Kconfig >> +++ b/drivers/mmc/Kconfig >> @@ -132,6 +132,68 @@ config MMC_SDHCI >> >> If unsure, say N. >> >> +config MMC_SDHCI_SDMA >> + bool "Support SDHCI SDMA" >> + depends on MMC_SDHCI >> + help >> + This enables support for the SDMA (Single Operation DMA) defined >> + in the SD Host Controller Standard Specification Version 1.00 . > > I think this should be a default y. No. After my conversion, masahiro@pug:~/workspace/u-boot/configs$ git grep CONFIG_MMC_SDHCI=y | wc 54 54 2306 masahiro@pug:~/workspace/u-boot/configs$ git grep CONFIG_MMC_SDHCI_SDMA=y | wc 21 21 995 So, SDMA is disabled for more than half of boards with SDHCI driver. I know one more reason that we should not enable option by default. SDMA is so old that it only supports 32 bit physical address. U-Boot uses the tail of memory area as work RAM. If SDMA is enabled on 64bit boards, MMC does not work because the controller cannot read EXT-CSD data. Given increasing ARMv8 boards, we want to use ADMA(2), but it is not supported in U-Boot. Anyway, I believe SDMA does not deserve default. -- Best Regards Masahiro Yamada _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
On 12/07/2016 06:04 PM, Masahiro Yamada wrote: > Hi Tom > > 2016-12-06 4:10 GMT+09:00 Tom Rini <trini@konsulko.com>: >> On Sun, Dec 04, 2016 at 10:23:13PM +0900, Masahiro Yamada wrote: >> >>> While I moved the options, I also renamed them so that they are all >>> prefixed with MMC_SDHCI_. >> [snip] >>> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig >>> index 8e9fa2d..4785d71 100644 >>> --- a/drivers/mmc/Kconfig >>> +++ b/drivers/mmc/Kconfig >>> @@ -132,6 +132,68 @@ config MMC_SDHCI >>> >>> If unsure, say N. >>> >>> +config MMC_SDHCI_SDMA >>> + bool "Support SDHCI SDMA" >>> + depends on MMC_SDHCI >>> + help >>> + This enables support for the SDMA (Single Operation DMA) defined >>> + in the SD Host Controller Standard Specification Version 1.00 . >> >> I think this should be a default y. > > No. > > After my conversion, > > masahiro@pug:~/workspace/u-boot/configs$ git grep CONFIG_MMC_SDHCI=y | wc > 54 54 2306 > masahiro@pug:~/workspace/u-boot/configs$ git grep CONFIG_MMC_SDHCI_SDMA=y | wc > 21 21 995 > > > So, SDMA is disabled for more than half of boards with SDHCI driver. Right, MMC_SDHCI_SDMA doesn't need to enable by default. > > > I know one more reason that we should not enable option by default. > > SDMA is so old that it only supports 32 bit physical address. > > U-Boot uses the tail of memory area as work RAM. > > If SDMA is enabled on 64bit boards, MMC does not work > because the controller cannot read EXT-CSD data. > > Given increasing ARMv8 boards, > we want to use ADMA(2), but it is not supported in U-Boot. As i know, u-boot host controller didn't fully support for ARM64. It needs to take a ToDo. Best Regards, Jaehoon Chung > > Anyway, I believe SDMA does not deserve default. > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
On Wed, Dec 07, 2016 at 06:04:21PM +0900, Masahiro Yamada wrote: > Hi Tom > > 2016-12-06 4:10 GMT+09:00 Tom Rini <trini@konsulko.com>: > > On Sun, Dec 04, 2016 at 10:23:13PM +0900, Masahiro Yamada wrote: > > > >> While I moved the options, I also renamed them so that they are all > >> prefixed with MMC_SDHCI_. > > [snip] > >> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig > >> index 8e9fa2d..4785d71 100644 > >> --- a/drivers/mmc/Kconfig > >> +++ b/drivers/mmc/Kconfig > >> @@ -132,6 +132,68 @@ config MMC_SDHCI > >> > >> If unsure, say N. > >> > >> +config MMC_SDHCI_SDMA > >> + bool "Support SDHCI SDMA" > >> + depends on MMC_SDHCI > >> + help > >> + This enables support for the SDMA (Single Operation DMA) defined > >> + in the SD Host Controller Standard Specification Version 1.00 . > > > > I think this should be a default y. > > No. > > After my conversion, > > masahiro@pug:~/workspace/u-boot/configs$ git grep CONFIG_MMC_SDHCI=y | wc > 54 54 2306 > masahiro@pug:~/workspace/u-boot/configs$ git grep CONFIG_MMC_SDHCI_SDMA=y | wc > 21 21 995 > > > So, SDMA is disabled for more than half of boards with SDHCI driver. > > > I know one more reason that we should not enable option by default. > > SDMA is so old that it only supports 32 bit physical address. > > U-Boot uses the tail of memory area as work RAM. > > If SDMA is enabled on 64bit boards, MMC does not work > because the controller cannot read EXT-CSD data. > > Given increasing ARMv8 boards, > we want to use ADMA(2), but it is not supported in U-Boot. > > Anyway, I believe SDMA does not deserve default. OK, thanks, agreed! -- Tom _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
diff --git a/arch/arm/mach-mvebu/cpu.c b/arch/arm/mach-mvebu/cpu.c index 5eb2a39..1445731 100644 --- a/arch/arm/mach-mvebu/cpu.c +++ b/arch/arm/mach-mvebu/cpu.c @@ -475,7 +475,7 @@ int arch_misc_init(void) } #endif /* CONFIG_ARCH_MISC_INIT */ -#ifdef CONFIG_MV_SDHCI +#ifdef CONFIG_MMC_SDHCI_MV int board_mmc_init(bd_t *bis) { mv_sdh_init(MVEBU_SDIO_BASE, 0, 0, diff --git a/board/broadcom/bcm23550_w1d/bcm23550_w1d.c b/board/broadcom/bcm23550_w1d/bcm23550_w1d.c index 0cb059f..533e99e 100644 --- a/board/broadcom/bcm23550_w1d/bcm23550_w1d.c +++ b/board/broadcom/bcm23550_w1d/bcm23550_w1d.c @@ -68,7 +68,7 @@ void dram_init_banksize(void) gd->bd->bi_dram[0].size = gd->ram_size; } -#ifdef CONFIG_KONA_SDHCI +#ifdef CONFIG_MMC_SDHCI_KONA /* * mmc_init - Initializes mmc */ diff --git a/board/broadcom/bcm28155_ap/bcm28155_ap.c b/board/broadcom/bcm28155_ap/bcm28155_ap.c index b3a4a41..b868812 100644 --- a/board/broadcom/bcm28155_ap/bcm28155_ap.c +++ b/board/broadcom/bcm28155_ap/bcm28155_ap.c @@ -75,7 +75,7 @@ void dram_init_banksize(void) gd->bd->bi_dram[0].size = gd->ram_size; } -#ifdef CONFIG_KONA_SDHCI +#ifdef CONFIG_MMC_SDHCI_KONA /* * mmc_init - Initializes mmc */ diff --git a/configs/arndale_defconfig b/configs/arndale_defconfig index f25bca7..95b24f6 100644 --- a/configs/arndale_defconfig +++ b/configs/arndale_defconfig @@ -25,6 +25,7 @@ CONFIG_CMD_EXT4_WRITE=y CONFIG_DM_I2C=y CONFIG_DM_I2C_COMPAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_SOUND=y CONFIG_I2S=y CONFIG_I2S_SAMSUNG=y diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig index 6be1795..63d17b1 100644 --- a/configs/bayleybay_defconfig +++ b/configs/bayleybay_defconfig @@ -42,6 +42,7 @@ CONFIG_REGMAP=y CONFIG_SYSCON=y CONFIG_CPU=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/bcm11130_defconfig b/configs/bcm11130_defconfig index 6d98fae..f2d9e5a 100644 --- a/configs/bcm11130_defconfig +++ b/configs/bcm11130_defconfig @@ -20,6 +20,8 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_CACHE=y CONFIG_CMD_FAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_KONA=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y diff --git a/configs/bcm11130_nand_defconfig b/configs/bcm11130_nand_defconfig index b1d29f8..0ee6953 100644 --- a/configs/bcm11130_nand_defconfig +++ b/configs/bcm11130_nand_defconfig @@ -20,6 +20,8 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_CACHE=y CONFIG_CMD_FAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_KONA=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y diff --git a/configs/bcm23550_w1d_defconfig b/configs/bcm23550_w1d_defconfig index 63dcd1a..eb1d53e 100644 --- a/configs/bcm23550_w1d_defconfig +++ b/configs/bcm23550_w1d_defconfig @@ -26,6 +26,8 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_CACHE=y CONFIG_CMD_FAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_KONA=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y diff --git a/configs/bcm28155_ap_defconfig b/configs/bcm28155_ap_defconfig index 8a28066..1cc5312 100644 --- a/configs/bcm28155_ap_defconfig +++ b/configs/bcm28155_ap_defconfig @@ -27,6 +27,8 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_CACHE=y CONFIG_CMD_FAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_KONA=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y diff --git a/configs/bcm28155_w1d_defconfig b/configs/bcm28155_w1d_defconfig index 155833b..37b2d02 100644 --- a/configs/bcm28155_w1d_defconfig +++ b/configs/bcm28155_w1d_defconfig @@ -21,6 +21,8 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_CACHE=y CONFIG_CMD_FAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_KONA=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_GADGET=y diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig index 2bca21e..91c608c 100644 --- a/configs/clearfog_defconfig +++ b/configs/clearfog_defconfig @@ -37,6 +37,8 @@ CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_SPL_OF_TRANSLATE=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_MV=y CONFIG_SPI_FLASH=y CONFIG_PCI=y CONFIG_DEBUG_UART=y diff --git a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig index a468e13..812f516 100644 --- a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig +++ b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig @@ -46,6 +46,7 @@ CONFIG_DM_I2C=y CONFIG_SYS_I2C_INTEL=y CONFIG_WINBOND_W83627=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/conga-qeval20-qa3-e3845_defconfig b/configs/conga-qeval20-qa3-e3845_defconfig index 515d60a..cff6cc2 100644 --- a/configs/conga-qeval20-qa3-e3845_defconfig +++ b/configs/conga-qeval20-qa3-e3845_defconfig @@ -45,6 +45,7 @@ CONFIG_DM_I2C=y CONFIG_SYS_I2C_INTEL=y CONFIG_WINBOND_W83627=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig index 0ff8a2d..784c1b3 100644 --- a/configs/crownbay_defconfig +++ b/configs/crownbay_defconfig @@ -34,6 +34,7 @@ CONFIG_REGMAP=y CONFIG_SYSCON=y CONFIG_CPU=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig index 4135b54..f71efff 100644 --- a/configs/db-88f6820-gp_defconfig +++ b/configs/db-88f6820-gp_defconfig @@ -34,6 +34,8 @@ CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_SPL_OF_TRANSLATE=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_MV=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_MACRONIX=y CONFIG_SPI_FLASH_STMICRO=y diff --git a/configs/dfi-bt700-q7x-151_defconfig b/configs/dfi-bt700-q7x-151_defconfig index 84f0559..b7eb006 100644 --- a/configs/dfi-bt700-q7x-151_defconfig +++ b/configs/dfi-bt700-q7x-151_defconfig @@ -43,6 +43,7 @@ CONFIG_CPU=y CONFIG_DM_I2C=y CONFIG_NUVOTON_NCT6102D=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/galileo_defconfig b/configs/galileo_defconfig index ca08a9b..7da870f 100644 --- a/configs/galileo_defconfig +++ b/configs/galileo_defconfig @@ -38,6 +38,7 @@ CONFIG_REGMAP=y CONFIG_SYSCON=y CONFIG_CPU=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig index 4b4c5f2..f7ac94d 100644 --- a/configs/minnowmax_defconfig +++ b/configs/minnowmax_defconfig @@ -42,6 +42,7 @@ CONFIG_REGMAP=y CONFIG_SYSCON=y CONFIG_CPU=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig index 9b19005..7b460f1 100644 --- a/configs/odroid-xu3_defconfig +++ b/configs/odroid-xu3_defconfig @@ -29,6 +29,7 @@ CONFIG_DFU_MMC=y CONFIG_DM_I2C=y CONFIG_DM_I2C_COMPAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_DM_PMIC=y CONFIG_PMIC_S2MPS11=y CONFIG_DM_REGULATOR=y diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig index ba0998f..b0363f7 100644 --- a/configs/odroid_defconfig +++ b/configs/odroid_defconfig @@ -39,6 +39,8 @@ CONFIG_DFU_MMC=y CONFIG_DM_I2C=y CONFIG_DM_I2C_COMPAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_DM_PMIC=y CONFIG_DM_PMIC_MAX77686=y CONFIG_DM_REGULATOR=y diff --git a/configs/origen_defconfig b/configs/origen_defconfig index 89df218..f192ce9 100644 --- a/configs/origen_defconfig +++ b/configs/origen_defconfig @@ -31,6 +31,8 @@ CONFIG_CMD_FS_GENERIC=y CONFIG_OF_CONTROL=y CONFIG_DFU_MMC=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_USB=y CONFIG_DM_USB=y CONFIG_USB_GADGET=y diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig index 5844b91..12ecf05 100644 --- a/configs/peach-pi_defconfig +++ b/configs/peach-pi_defconfig @@ -35,6 +35,7 @@ CONFIG_CROS_EC_KEYB=y CONFIG_CROS_EC=y CONFIG_CROS_EC_SPI=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_WINBOND=y diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig index 99ef909..65f6150 100644 --- a/configs/peach-pit_defconfig +++ b/configs/peach-pit_defconfig @@ -35,6 +35,7 @@ CONFIG_CROS_EC_KEYB=y CONFIG_CROS_EC=y CONFIG_CROS_EC_SPI=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_WINBOND=y diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig index ee29f0b..34413f1 100644 --- a/configs/rpi_2_defconfig +++ b/configs/rpi_2_defconfig @@ -16,6 +16,7 @@ CONFIG_CMD_USB=y CONFIG_CMD_GPIO=y CONFIG_OF_EMBED=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_BCM2835=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_USB_KEYBOARD=y diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig index ae5231a..aac385c 100644 --- a/configs/rpi_3_32b_defconfig +++ b/configs/rpi_3_32b_defconfig @@ -17,6 +17,7 @@ CONFIG_CMD_USB=y CONFIG_CMD_GPIO=y CONFIG_OF_EMBED=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_BCM2835=y # CONFIG_REQUIRE_SERIAL_CONSOLE is not set CONFIG_USB=y CONFIG_USB_STORAGE=y diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig index 9da1e7b..276f9aa 100644 --- a/configs/rpi_3_defconfig +++ b/configs/rpi_3_defconfig @@ -17,6 +17,7 @@ CONFIG_CMD_USB=y CONFIG_CMD_GPIO=y CONFIG_OF_EMBED=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_BCM2835=y # CONFIG_REQUIRE_SERIAL_CONSOLE is not set CONFIG_USB=y CONFIG_USB_STORAGE=y diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig index 48e7d55..8ae4ffd 100644 --- a/configs/rpi_defconfig +++ b/configs/rpi_defconfig @@ -16,6 +16,7 @@ CONFIG_CMD_USB=y CONFIG_CMD_GPIO=y CONFIG_OF_EMBED=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_BCM2835=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_USB_KEYBOARD=y diff --git a/configs/s5p_goni_defconfig b/configs/s5p_goni_defconfig index 786fd43..d9bbaf1 100644 --- a/configs/s5p_goni_defconfig +++ b/configs/s5p_goni_defconfig @@ -24,6 +24,7 @@ CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_FAT=y CONFIG_DFU_MMC=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_USB=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_DWC2_OTG=y diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig index b19a7de..a2ebd6e 100644 --- a/configs/s5pc210_universal_defconfig +++ b/configs/s5pc210_universal_defconfig @@ -31,6 +31,8 @@ CONFIG_CMD_FS_GENERIC=y CONFIG_OF_CONTROL=y CONFIG_DFU_MMC=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_USB=y CONFIG_DM_USB=y CONFIG_USB_GADGET=y diff --git a/configs/smdk5250_defconfig b/configs/smdk5250_defconfig index 6b0c51f..5dddf6a 100644 --- a/configs/smdk5250_defconfig +++ b/configs/smdk5250_defconfig @@ -29,6 +29,7 @@ CONFIG_CMD_EXT4_WRITE=y CONFIG_DM_I2C=y CONFIG_DM_I2C_COMPAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_WINBOND=y diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig index 4adef2a..1099d05 100644 --- a/configs/smdk5420_defconfig +++ b/configs/smdk5420_defconfig @@ -26,6 +26,7 @@ CONFIG_CMD_EXT4_WRITE=y CONFIG_DM_I2C=y CONFIG_DM_I2C_COMPAT=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_WINBOND=y diff --git a/configs/smdkv310_defconfig b/configs/smdkv310_defconfig index 58244aa..b8e1a0d 100644 --- a/configs/smdkv310_defconfig +++ b/configs/smdkv310_defconfig @@ -24,5 +24,7 @@ CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_USB=y CONFIG_DM_USB=y diff --git a/configs/snow_defconfig b/configs/snow_defconfig index 4c41d83..2afe56f 100644 --- a/configs/snow_defconfig +++ b/configs/snow_defconfig @@ -36,6 +36,7 @@ CONFIG_CROS_EC_KEYB=y CONFIG_CROS_EC=y CONFIG_CROS_EC_I2C=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_WINBOND=y diff --git a/configs/spring_defconfig b/configs/spring_defconfig index 8807ac8..01dff33 100644 --- a/configs/spring_defconfig +++ b/configs/spring_defconfig @@ -36,6 +36,7 @@ CONFIG_CROS_EC_KEYB=y CONFIG_CROS_EC=y CONFIG_CROS_EC_I2C=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_WINBOND=y diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig index c28357e..f3c2c86 100644 --- a/configs/theadorable-x86-dfi-bt700_defconfig +++ b/configs/theadorable-x86-dfi-bt700_defconfig @@ -43,6 +43,7 @@ CONFIG_CPU=y CONFIG_DM_I2C=y CONFIG_NUVOTON_NCT6102D=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig index 903cdd3..2d11336 100644 --- a/configs/trats2_defconfig +++ b/configs/trats2_defconfig @@ -34,6 +34,8 @@ CONFIG_CMD_FS_GENERIC=y CONFIG_OF_CONTROL=y CONFIG_DFU_MMC=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_USB=y CONFIG_DM_USB=y CONFIG_USB_GADGET=y diff --git a/configs/trats_defconfig b/configs/trats_defconfig index 1f3338b..cf3ab04 100644 --- a/configs/trats_defconfig +++ b/configs/trats_defconfig @@ -33,6 +33,8 @@ CONFIG_CMD_FS_GENERIC=y CONFIG_OF_CONTROL=y CONFIG_DFU_MMC=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_SDMA=y +CONFIG_MMC_SDHCI_S5P=y CONFIG_USB=y CONFIG_DM_USB=y CONFIG_USB_GADGET=y diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index 8e9fa2d..4785d71 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -132,6 +132,68 @@ config MMC_SDHCI If unsure, say N. +config MMC_SDHCI_SDMA + bool "Support SDHCI SDMA" + depends on MMC_SDHCI + help + This enables support for the SDMA (Single Operation DMA) defined + in the SD Host Controller Standard Specification Version 1.00 . + +config MMC_SDHCI_BCM2835 + tristate "SDHCI support for the BCM2835 SD/MMC Controller" + depends on MMC_SDHCI + help + This selects the BCM2835 SD/MMC controller. + + If you have a BCM2835 platform with SD or MMC devices, + say Y here. + + If unsure, say N. + +config MMC_SDHCI_KONA + bool "SDHCI support on Broadcom KONA platform" + depends on MMC_SDHCI + help + This selects the Broadcom Kona Secure Digital Host Controller + Interface(SDHCI) support. + This is used in Broadcom mobile SoCs. + + If you have a controller with this interface, say Y here. + +config MMC_SDHCI_MV + bool "SDHCI support on Marvell platform" + depends on MMC_SDHCI + help + This selects the Secure Digital Host Controller Interface on + Marvell platform. + + If you have a controller with this interface, say Y here. + + If unsure, say N. + +config MMC_SDHCI_S5P + bool "SDHCI support on Samsung S5P SoC" + depends on MMC_SDHCI + help + This selects the Secure Digital Host Controller Interface (SDHCI) + on Samsung S5P SoCs. + + If you have a controller with this interface, say Y here. + + If unsure, say N. + +config MMC_SDHCI_SPEAR + bool "SDHCI support on ST SPEAr platform" + depends on MMC_SDHCI + help + This selects the Secure Digital Host Controller Interface (SDHCI) + often referrered to as the HSMMC block in some of the ST SPEAR range + of SoC + + If you have a controller with this interface, say Y here. + + If unsure, say N. + endif endmenu diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index 236f305..2b136ea 100644 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile @@ -15,7 +15,6 @@ endif obj-$(CONFIG_ARM_PL180_MMCI) += arm_pl180_mmci.o obj-$(CONFIG_ATMEL_SDHCI) += atmel_sdhci.o -obj-$(CONFIG_BCM2835_SDHCI) += bcm2835_sdhci.o obj-$(CONFIG_BFIN_SDH) += bfin_sdh.o obj-$(CONFIG_DAVINCI_MMC) += davinci_mmc.o obj-$(CONFIG_DWMMC) += dw_mmc.o @@ -29,10 +28,8 @@ ifdef CONFIG_SUPPORT_EMMC_BOOT obj-$(CONFIG_GENERIC_MMC) += mmc_boot.o endif obj-$(CONFIG_GENERIC_ATMEL_MCI) += gen_atmel_mci.o -obj-$(CONFIG_KONA_SDHCI) += kona_sdhci.o obj-$(CONFIG_MMC_SPI) += mmc_spi.o obj-$(CONFIG_MMC_SUNXI) += sunxi_mmc.o -obj-$(CONFIG_MV_SDHCI) += mv_sdhci.o obj-$(CONFIG_MVEBU_MMC) += mvebu_mmc.o obj-$(CONFIG_MXC_MMC) += mxcmmc.o obj-$(CONFIG_MXS_MMC) += mxsmmc.o @@ -42,17 +39,14 @@ obj-$(CONFIG_PXA_MMC_GENERIC) += pxa_mmc_gen.o obj-$(CONFIG_ROCKCHIP_DWMMC) += rockchip_dw_mmc.o obj-$(CONFIG_SUPPORT_EMMC_RPMB) += rpmb.o obj-$(CONFIG_S3C_SDI) += s3c_sdi.o -obj-$(CONFIG_S5P_SDHCI) += s5p_sdhci.o ifdef CONFIG_BLK ifdef CONFIG_GENERIC_MMC obj-$(CONFIG_SANDBOX) += sandbox_mmc.o endif endif -obj-$(CONFIG_MMC_SDHCI) += sdhci.o obj-$(CONFIG_SH_MMCIF) += sh_mmcif.o obj-$(CONFIG_SH_SDHI) += sh_sdhi.o obj-$(CONFIG_SOCFPGA_DWMMC) += socfpga_dw_mmc.o -obj-$(CONFIG_SPEAR_SDHCI) += spear_sdhci.o obj-$(CONFIG_TEGRA_MMC) += tegra_mmc.o obj-$(CONFIG_MMC_UNIPHIER) += uniphier-sd.o obj-$(CONFIG_ZYNQ_SDHCI) += zynq_sdhci.o @@ -66,3 +60,11 @@ obj-$(CONFIG_GENERIC_MMC) += mmc_write.o endif obj-$(CONFIG_PIC32_SDHCI) += pic32_sdhci.o obj-$(CONFIG_MSM_SDHCI) += msm_sdhci.o + +# SDHCI +obj-$(CONFIG_MMC_SDHCI) += sdhci.o +obj-$(CONFIG_MMC_SDHCI_BCM2835) += bcm2835_sdhci.o +obj-$(CONFIG_MMC_SDHCI_KONA) += kona_sdhci.o +obj-$(CONFIG_MMC_SDHCI_MV) += mv_sdhci.o +obj-$(CONFIG_MMC_SDHCI_S5P) += s5p_sdhci.o +obj-$(CONFIG_MMC_SDHCI_SPEAR) += spear_sdhci.o diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 766e9ee..cbf5f56 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -72,7 +72,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data, unsigned int start_addr) { unsigned int stat, rdy, mask, timeout, block = 0; -#ifdef CONFIG_MMC_SDMA +#ifdef CONFIG_MMC_SDHCI_SDMA unsigned char ctrl; ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); ctrl &= ~SDHCI_CTRL_DMA_MASK; @@ -98,7 +98,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data, if (++block >= data->blocks) break; } -#ifdef CONFIG_MMC_SDMA +#ifdef CONFIG_MMC_SDHCI_SDMA if (stat & SDHCI_INT_DMA_END) { sdhci_writel(host, SDHCI_INT_DMA_END, SDHCI_INT_STATUS); start_addr &= ~(SDHCI_DEFAULT_BOUNDARY_SIZE - 1); @@ -204,7 +204,7 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd, if (data->flags == MMC_DATA_READ) mode |= SDHCI_TRNS_READ; -#ifdef CONFIG_MMC_SDMA +#ifdef CONFIG_MMC_SDHCI_SDMA if (data->flags == MMC_DATA_READ) start_addr = (unsigned long)data->dest; else @@ -241,7 +241,7 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd, } sdhci_writel(host, cmd->cmdarg, SDHCI_ARGUMENT); -#ifdef CONFIG_MMC_SDMA +#ifdef CONFIG_MMC_SDHCI_SDMA trans_bytes = ALIGN(trans_bytes, CONFIG_SYS_CACHELINE_SIZE); flush_cache(start_addr, trans_bytes); #endif @@ -540,7 +540,7 @@ int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host, caps = sdhci_readl(host, SDHCI_CAPABILITIES); -#ifdef CONFIG_MMC_SDMA +#ifdef CONFIG_MMC_SDHCI_SDMA if (!(caps & SDHCI_CAN_DO_SDMA)) { printf("%s: Your controller doesn't support SDMA!!\n", __func__); diff --git a/include/configs/bayleybay.h b/include/configs/bayleybay.h index 51d6ce0..8926047 100644 --- a/include/configs/bayleybay.h +++ b/include/configs/bayleybay.h @@ -25,7 +25,6 @@ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT} #define CONFIG_GENERIC_MMC -#define CONFIG_MMC_SDMA /* Environment configuration */ #define CONFIG_ENV_SECT_SIZE 0x1000 diff --git a/include/configs/bcm23550_w1d.h b/include/configs/bcm23550_w1d.h index 68212a8..8f062e2 100644 --- a/include/configs/bcm23550_w1d.h +++ b/include/configs/bcm23550_w1d.h @@ -31,8 +31,6 @@ #define CONFIG_KONA_GPIO /* MMC/SD Driver */ -#define CONFIG_MMC_SDMA -#define CONFIG_KONA_SDHCI #define CONFIG_GENERIC_MMC #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR diff --git a/include/configs/bcm28155_ap.h b/include/configs/bcm28155_ap.h index 6fd0417..0882531 100644 --- a/include/configs/bcm28155_ap.h +++ b/include/configs/bcm28155_ap.h @@ -30,8 +30,6 @@ #define CONFIG_KONA_GPIO /* MMC/SD Driver */ -#define CONFIG_MMC_SDMA -#define CONFIG_KONA_SDHCI #define CONFIG_GENERIC_MMC #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 0a5171f..e520b1a 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -43,9 +43,7 @@ /* * SDIO/MMC Card Configuration */ -#define CONFIG_MMC_SDMA #define CONFIG_GENERIC_MMC -#define CONFIG_MV_SDHCI #define CONFIG_SYS_MMC_BASE MVEBU_SDIO_BASE /* Partition support */ diff --git a/include/configs/conga-qeval20-qa3-e3845.h b/include/configs/conga-qeval20-qa3-e3845.h index f50b2a4..b28a1f2 100644 --- a/include/configs/conga-qeval20-qa3-e3845.h +++ b/include/configs/conga-qeval20-qa3-e3845.h @@ -28,7 +28,6 @@ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT} #define CONFIG_GENERIC_MMC -#define CONFIG_MMC_SDMA #undef CONFIG_USB_MAX_CONTROLLER_COUNT #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h index 8f67d14..cef2fd7 100644 --- a/include/configs/crownbay.h +++ b/include/configs/crownbay.h @@ -27,7 +27,6 @@ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SATA} #define CONFIG_GENERIC_MMC -#define CONFIG_MMC_SDMA /* Environment configuration */ #define CONFIG_ENV_SECT_SIZE 0x1000 diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h index 18a3f36..519f2d3 100644 --- a/include/configs/db-88f6820-gp.h +++ b/include/configs/db-88f6820-gp.h @@ -43,9 +43,7 @@ /* * SDIO/MMC Card Configuration */ -#define CONFIG_MMC_SDMA #define CONFIG_GENERIC_MMC -#define CONFIG_MV_SDHCI #define CONFIG_SYS_MMC_BASE MVEBU_SDIO_BASE /* diff --git a/include/configs/dfi-bt700.h b/include/configs/dfi-bt700.h index 779e834..727baae 100644 --- a/include/configs/dfi-bt700.h +++ b/include/configs/dfi-bt700.h @@ -30,7 +30,6 @@ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT} #define CONFIG_GENERIC_MMC -#define CONFIG_MMC_SDMA #undef CONFIG_USB_MAX_CONTROLLER_COUNT #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 diff --git a/include/configs/exynos-common.h b/include/configs/exynos-common.h index 440e227..8532ff5 100644 --- a/include/configs/exynos-common.h +++ b/include/configs/exynos-common.h @@ -42,7 +42,6 @@ /* SD/MMC configuration */ #define CONFIG_GENERIC_MMC -#define CONFIG_S5P_SDHCI #define CONFIG_DWMMC #define CONFIG_EXYNOS_DWMMC #define CONFIG_BOUNCE_BUFFER diff --git a/include/configs/exynos4-common.h b/include/configs/exynos4-common.h index 06fde38..ec45640 100644 --- a/include/configs/exynos4-common.h +++ b/include/configs/exynos4-common.h @@ -18,7 +18,6 @@ #define CONFIG_REVISION_TAG /* SD/MMC configuration */ -#define CONFIG_MMC_SDMA #define CONFIG_MMC_DEFAULT_DEV 0 #undef CONFIG_CMD_ONENAND diff --git a/include/configs/galileo.h b/include/configs/galileo.h index 6109dd7..26eb127 100644 --- a/include/configs/galileo.h +++ b/include/configs/galileo.h @@ -31,7 +31,6 @@ /* SD/MMC support */ #define CONFIG_GENERIC_MMC -#define CONFIG_MMC_SDMA /* 10/100M Ethernet support */ #define CONFIG_DESIGNWARE_ETH diff --git a/include/configs/minnowmax.h b/include/configs/minnowmax.h index cc47d5a..5b17fd7 100644 --- a/include/configs/minnowmax.h +++ b/include/configs/minnowmax.h @@ -28,7 +28,6 @@ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT} #define CONFIG_GENERIC_MMC -#define CONFIG_MMC_SDMA #undef CONFIG_USB_MAX_CONTROLLER_COUNT #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 diff --git a/include/configs/rpi.h b/include/configs/rpi.h index 351e234..8005ac1 100644 --- a/include/configs/rpi.h +++ b/include/configs/rpi.h @@ -84,7 +84,6 @@ /* SD/MMC configuration */ #define CONFIG_GENERIC_MMC #define CONFIG_MMC_SDHCI_IO_ACCESSORS -#define CONFIG_BCM2835_SDHCI #ifdef CONFIG_CMD_USB #define CONFIG_USB_DWC2 diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h index 053b1c6..4837b0d 100644 --- a/include/configs/s5p_goni.h +++ b/include/configs/s5p_goni.h @@ -48,7 +48,6 @@ /* MMC */ #define CONFIG_GENERIC_MMC -#define CONFIG_S5P_SDHCI #define SDHCI_MAX_HOSTS 4 /* PWM */
While I moved the options, I also renamed them so that they are all prefixed with MMC_SDHCI_. This commit was created in the following steps. [1] Rename with the following command find . -name .git -prune -o ! -path ./scripts/config_whitelist.txt \ -type f -print | xargs sed -i -e ' s/CONFIG_MMC_SDMA/CONFIG_MMC_SDHCI_SDMA/g s/CONFIG_BCM2835_SDHCI/CONFIG_MMC_SDHCI_BCM2835/g s/CONFIG_KONA_SDHCI/CONFIG_MMC_SDHCI_KONA/g s/CONFIG_MV_SDHCI/CONFIG_MMC_SDHCI_MV/g s/CONFIG_S5P_SDHCI/CONFIG_MMC_SDHCI_S5P/g s/CONFIG_SPEAR_SDHCI/CONFIG_MMC_SDHCI_SPEAR/g ' [2] create the Kconfig entries in drivers/mmc/Kconfig [3] Move the options by the following command tools/moveconfig.py MMC_SDHCI_SDMA MMC_SDHCI_BCM2835 MMC_SDHCI_KONA \ MMC_SDHCI_MV MMC_SDHCI_S5P MMC_SDHCI_SPEAR [4] Sort drivers/mmc/Makefile for readability Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- arch/arm/mach-mvebu/cpu.c | 2 +- board/broadcom/bcm23550_w1d/bcm23550_w1d.c | 2 +- board/broadcom/bcm28155_ap/bcm28155_ap.c | 2 +- configs/arndale_defconfig | 1 + configs/bayleybay_defconfig | 1 + configs/bcm11130_defconfig | 2 + configs/bcm11130_nand_defconfig | 2 + configs/bcm23550_w1d_defconfig | 2 + configs/bcm28155_ap_defconfig | 2 + configs/bcm28155_w1d_defconfig | 2 + configs/clearfog_defconfig | 2 + ...conga-qeval20-qa3-e3845-internal-uart_defconfig | 1 + configs/conga-qeval20-qa3-e3845_defconfig | 1 + configs/crownbay_defconfig | 1 + configs/db-88f6820-gp_defconfig | 2 + configs/dfi-bt700-q7x-151_defconfig | 1 + configs/galileo_defconfig | 1 + configs/minnowmax_defconfig | 1 + configs/odroid-xu3_defconfig | 1 + configs/odroid_defconfig | 2 + configs/origen_defconfig | 2 + configs/peach-pi_defconfig | 1 + configs/peach-pit_defconfig | 1 + configs/rpi_2_defconfig | 1 + configs/rpi_3_32b_defconfig | 1 + configs/rpi_3_defconfig | 1 + configs/rpi_defconfig | 1 + configs/s5p_goni_defconfig | 1 + configs/s5pc210_universal_defconfig | 2 + configs/smdk5250_defconfig | 1 + configs/smdk5420_defconfig | 1 + configs/smdkv310_defconfig | 2 + configs/snow_defconfig | 1 + configs/spring_defconfig | 1 + configs/theadorable-x86-dfi-bt700_defconfig | 1 + configs/trats2_defconfig | 2 + configs/trats_defconfig | 2 + drivers/mmc/Kconfig | 62 ++++++++++++++++++++++ drivers/mmc/Makefile | 14 ++--- drivers/mmc/sdhci.c | 10 ++-- include/configs/bayleybay.h | 1 - include/configs/bcm23550_w1d.h | 2 - include/configs/bcm28155_ap.h | 2 - include/configs/clearfog.h | 2 - include/configs/conga-qeval20-qa3-e3845.h | 1 - include/configs/crownbay.h | 1 - include/configs/db-88f6820-gp.h | 2 - include/configs/dfi-bt700.h | 1 - include/configs/exynos-common.h | 1 - include/configs/exynos4-common.h | 1 - include/configs/galileo.h | 1 - include/configs/minnowmax.h | 1 - include/configs/rpi.h | 1 - include/configs/s5p_goni.h | 1 - 54 files changed, 125 insertions(+), 32 deletions(-) -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot