driver/mmcsd: add option to limit block count in multiple-block transfer mode.
Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
This commit is contained in:
parent
d611e2d99b
commit
021363f1db
@ -68,7 +68,7 @@
|
|||||||
# error "Callback support requires CONFIG_SCHED_WORKQUEUE and CONFIG_SCHED_HPWORK"
|
# error "Callback support requires CONFIG_SCHED_WORKQUEUE and CONFIG_SCHED_HPWORK"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE) && !defined(CONFIG_SDIO_BLOCKSETUP)
|
#if (CONFIG_MMCSD_MULTIBLOCK_LIMIT != 1) && !defined(CONFIG_SDIO_BLOCKSETUP)
|
||||||
# error "This driver requires CONFIG_SDIO_BLOCKSETUP"
|
# error "This driver requires CONFIG_SDIO_BLOCKSETUP"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ CONFIG_IMXRT_USDHC1_WIDTH_D1_D4=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_BUILTIN_APPS=y
|
CONFIG_NSH_BUILTIN_APPS=y
|
||||||
|
@ -448,8 +448,8 @@ SD Card Support
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
|
@ -38,7 +38,7 @@ CONFIG_KINETIS_SDHC=y
|
|||||||
CONFIG_KINETIS_UART0=y
|
CONFIG_KINETIS_UART0=y
|
||||||
CONFIG_KINETIS_USBOTG=y
|
CONFIG_KINETIS_USBOTG=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MOTOROLA_SREC=y
|
CONFIG_MOTOROLA_SREC=y
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
|
@ -42,7 +42,7 @@ CONFIG_KINETIS_PORTEINTS=y
|
|||||||
CONFIG_KINETIS_SDHC=y
|
CONFIG_KINETIS_SDHC=y
|
||||||
CONFIG_KINETIS_UART0=y
|
CONFIG_KINETIS_UART0=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MOTOROLA_SREC=y
|
CONFIG_MOTOROLA_SREC=y
|
||||||
CONFIG_NETDB_DNSCLIENT=y
|
CONFIG_NETDB_DNSCLIENT=y
|
||||||
|
@ -37,7 +37,7 @@ CONFIG_KINETIS_PORTEINTS=y
|
|||||||
CONFIG_KINETIS_SDHC=y
|
CONFIG_KINETIS_SDHC=y
|
||||||
CONFIG_KINETIS_UART0=y
|
CONFIG_KINETIS_UART0=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MOTOROLA_SREC=y
|
CONFIG_MOTOROLA_SREC=y
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
|
@ -451,8 +451,8 @@ SD Card Support
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
|
@ -63,7 +63,7 @@ CONFIG_KINETIS_UART_BREAKS=y
|
|||||||
CONFIG_KINETIS_UART_EXTEDED_BREAK=y
|
CONFIG_KINETIS_UART_EXTEDED_BREAK=y
|
||||||
CONFIG_LIBC_STRERROR=y
|
CONFIG_LIBC_STRERROR=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_BUILTIN_APPS=y
|
CONFIG_NSH_BUILTIN_APPS=y
|
||||||
|
@ -33,7 +33,7 @@ CONFIG_IDLETHREAD_STACKSIZE=2048
|
|||||||
CONFIG_INIT_ENTRYPOINT="conn_main"
|
CONFIG_INIT_ENTRYPOINT="conn_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_PREALLOC_TIMERS=4
|
CONFIG_PREALLOC_TIMERS=4
|
||||||
CONFIG_RAM_SIZE=32768
|
CONFIG_RAM_SIZE=32768
|
||||||
CONFIG_RAM_START=0x40000000
|
CONFIG_RAM_START=0x40000000
|
||||||
|
@ -455,7 +455,7 @@ Configurations
|
|||||||
|
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_NSLOTS=1
|
CONFIG_MMCSD_NSLOTS=1
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y
|
CONFIG_MMCSD_HAVE_CARDDETECT=y
|
||||||
CONFIG_MMCSD_HAVE_WRITEPROTECT=y
|
CONFIG_MMCSD_HAVE_WRITEPROTECT=y
|
||||||
CONFIG_ARCH_HAVE_SDIO=y
|
CONFIG_ARCH_HAVE_SDIO=y
|
||||||
|
@ -798,8 +798,8 @@ Configuration sub-directories
|
|||||||
|
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=n : Should not need to disable multi-block transfers
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=0 : Should not need to disable multi-block transfers
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
||||||
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
||||||
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
||||||
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
||||||
|
@ -675,9 +675,9 @@ HSMCI
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMCSD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMCSD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : Probably works but is untested
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : Probably works but is untested
|
||||||
|
|
||||||
CONFIG_SDIO_DMA=y : Use SDIO DMA
|
CONFIG_SDIO_DMA=y : Use SDIO DMA
|
||||||
CONFIG_SDIO_BLOCKSETUP=y : Needs to know block sizes
|
CONFIG_SDIO_BLOCKSETUP=y : Needs to know block sizes
|
||||||
|
@ -515,8 +515,8 @@ Configuration sub-directories
|
|||||||
|
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=n : Should not need to disable multi-block transfers
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=0 : Should not need to disable multi-block transfers
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
||||||
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
||||||
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
||||||
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
||||||
|
@ -1224,8 +1224,8 @@ HSMCI Card Slots
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
@ -3318,7 +3318,7 @@ To-Do List
|
|||||||
endpoint support in the EHCI driver is untested (but works in similar
|
endpoint support in the EHCI driver is untested (but works in similar
|
||||||
EHCI drivers).
|
EHCI drivers).
|
||||||
|
|
||||||
2) HSCMI. CONFIG_MMCSD_MULTIBLOCK_DISABLE=y is set to disable multi-block
|
2) HSCMI. CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 is set to disable multi-block
|
||||||
transfers because of some issues that I saw during testing. The is very
|
transfers because of some issues that I saw during testing. The is very
|
||||||
low priority to me but might be important to you if you are need very
|
low priority to me but might be important to you if you are need very
|
||||||
high performance SD card accesses.
|
high performance SD card accesses.
|
||||||
|
@ -1267,8 +1267,8 @@ HSMCI Card Slots
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
@ -3775,7 +3775,7 @@ To-Do List
|
|||||||
endpoint support in the EHCI driver is untested (but works in similar
|
endpoint support in the EHCI driver is untested (but works in similar
|
||||||
EHCI drivers).
|
EHCI drivers).
|
||||||
|
|
||||||
3) HSCMI. CONFIG_MMCSD_MULTIBLOCK_DISABLE=y is set to disable multi-block
|
3) HSCMI. CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 is set to disable multi-block
|
||||||
transfers because of some issues that I saw during testing. The is very
|
transfers because of some issues that I saw during testing. The is very
|
||||||
low priority to me but might be important to you if you are need very
|
low priority to me but might be important to you if you are need very
|
||||||
high performance SD card accesses.
|
high performance SD card accesses.
|
||||||
|
@ -34,7 +34,7 @@ CONFIG_HOST_WINDOWS=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MM_REGIONS=2
|
CONFIG_MM_REGIONS=2
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
|
@ -41,7 +41,7 @@ CONFIG_I2C_RESET=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MM_REGIONS=2
|
CONFIG_MM_REGIONS=2
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
|
@ -1633,8 +1633,8 @@ HSMCI Card Slots
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
@ -4929,7 +4929,7 @@ To-Do List
|
|||||||
endpoint support in the EHCI driver is untested (but works in similar
|
endpoint support in the EHCI driver is untested (but works in similar
|
||||||
EHCI drivers).
|
EHCI drivers).
|
||||||
|
|
||||||
2) HSCMI. CONFIG_MMCSD_MULTIBLOCK_DISABLE=y is set to disable multi-block
|
2) HSCMI. CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 is set to disable multi-block
|
||||||
transfers because of some issues that I saw during testing. The is very
|
transfers because of some issues that I saw during testing. The is very
|
||||||
low priority to me but might be important to you if you are need very
|
low priority to me but might be important to you if you are need very
|
||||||
high performance SD card accesses.
|
high performance SD card accesses.
|
||||||
|
@ -55,7 +55,7 @@ CONFIG_INPUT=y
|
|||||||
CONFIG_INPUT_MXT=y
|
CONFIG_INPUT_MXT=y
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
@ -49,7 +49,7 @@ CONFIG_HOST_WINDOWS=y
|
|||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_LIBC_EXECFUNCS=y
|
CONFIG_LIBC_EXECFUNCS=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MM_PGALLOC=y
|
CONFIG_MM_PGALLOC=y
|
||||||
CONFIG_NSH_FILE_APPS=y
|
CONFIG_NSH_FILE_APPS=y
|
||||||
|
@ -55,7 +55,7 @@ CONFIG_INPUT_MXT=y
|
|||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_LIBC_HOSTNAME="SAMA5D4-EK"
|
CONFIG_LIBC_HOSTNAME="SAMA5D4-EK"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
@ -58,7 +58,7 @@ CONFIG_INTELHEX_BINARY=y
|
|||||||
CONFIG_LIBC_FLOATINGPOINT=y
|
CONFIG_LIBC_FLOATINGPOINT=y
|
||||||
CONFIG_LIBM=y
|
CONFIG_LIBM=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
@ -750,9 +750,9 @@ Configuration sub-directories
|
|||||||
|
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=n : Should not need to disable multi-block transfers
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=0 : Should not need to disable multi-block transfers
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : May interfere with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : May interfere with some SD cards
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
||||||
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
||||||
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
||||||
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
||||||
|
@ -621,9 +621,9 @@ Configuration sub-directories
|
|||||||
|
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=n : Should not need to disable multi-block transfers
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=0 : Should not need to disable multi-block transfers
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : May interfere with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : May interfere with some SD cards
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
||||||
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
||||||
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
||||||
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
||||||
|
@ -782,9 +782,9 @@ Configuration sub-directories
|
|||||||
|
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
CONFIG_MMCSD_NSLOTS=1 : Only one MMC/SD card slot
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=n : Should not need to disable multi-block transfers
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=0 : Should not need to disable multi-block transfers
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : May interfere with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : May interfere with some SD cards
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : I/O1 module as a card detect GPIO
|
||||||
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
CONFIG_MMCSD_SPI=y : Use the SPI interface to the MMC/SD card
|
||||||
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
CONFIG_MMCSD_SPICLOCK=20000000 : This is a guess for the optimal MMC/SD frequency
|
||||||
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
CONFIG_MMCSD_SPIMODE=0 : Mode 0 is required
|
||||||
|
@ -99,7 +99,7 @@ the SD slots can be enabled with the following settings:
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
|
@ -33,7 +33,7 @@ CONFIG_FS_FAT=y
|
|||||||
CONFIG_FS_PROCFS=y
|
CONFIG_FS_PROCFS=y
|
||||||
CONFIG_INIT_ENTRYPOINT="mcuboot_confirm_main"
|
CONFIG_INIT_ENTRYPOINT="mcuboot_confirm_main"
|
||||||
CONFIG_MCUBOOT_SLOT_CONFIRM_EXAMPLE=y
|
CONFIG_MCUBOOT_SLOT_CONFIRM_EXAMPLE=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_BUILTIN_APPS=y
|
CONFIG_NSH_BUILTIN_APPS=y
|
||||||
|
@ -34,7 +34,7 @@ CONFIG_FS_PROCFS=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="mcuboot_loader_main"
|
CONFIG_INIT_ENTRYPOINT="mcuboot_loader_main"
|
||||||
CONFIG_MCUBOOT_BOOTLOADER=y
|
CONFIG_MCUBOOT_BOOTLOADER=y
|
||||||
CONFIG_MCUBOOT_ENABLE_LOGGING=y
|
CONFIG_MCUBOOT_ENABLE_LOGGING=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_BUILTIN_APPS=y
|
CONFIG_NSH_BUILTIN_APPS=y
|
||||||
|
@ -33,7 +33,7 @@ CONFIG_FAT_LFN=y
|
|||||||
CONFIG_FS_FAT=y
|
CONFIG_FS_FAT=y
|
||||||
CONFIG_FS_PROCFS=y
|
CONFIG_FS_PROCFS=y
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_BUILTIN_APPS=y
|
CONFIG_NSH_BUILTIN_APPS=y
|
||||||
|
@ -162,8 +162,8 @@ the SD slots can be enabled with the following settings:
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
|
@ -46,7 +46,7 @@ CONFIG_FS_FAT=y
|
|||||||
CONFIG_FS_PROCFS=y
|
CONFIG_FS_PROCFS=y
|
||||||
CONFIG_I2CTOOL_MAXBUS=0
|
CONFIG_I2CTOOL_MAXBUS=0
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
|
@ -43,7 +43,7 @@ CONFIG_FS_PROCFS=y
|
|||||||
CONFIG_I2CTOOL_MAXBUS=0
|
CONFIG_I2CTOOL_MAXBUS=0
|
||||||
CONFIG_INIT_ENTRYPOINT="mcuboot_confirm_main"
|
CONFIG_INIT_ENTRYPOINT="mcuboot_confirm_main"
|
||||||
CONFIG_MCUBOOT_SLOT_CONFIRM_EXAMPLE=y
|
CONFIG_MCUBOOT_SLOT_CONFIRM_EXAMPLE=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
CONFIG_MTD_AT25=y
|
CONFIG_MTD_AT25=y
|
||||||
|
@ -44,7 +44,7 @@ CONFIG_I2CTOOL_MAXBUS=0
|
|||||||
CONFIG_INIT_ENTRYPOINT="mcuboot_loader_main"
|
CONFIG_INIT_ENTRYPOINT="mcuboot_loader_main"
|
||||||
CONFIG_MCUBOOT_BOOTLOADER=y
|
CONFIG_MCUBOOT_BOOTLOADER=y
|
||||||
CONFIG_MCUBOOT_ENABLE_LOGGING=y
|
CONFIG_MCUBOOT_ENABLE_LOGGING=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
CONFIG_MTD_AT25=y
|
CONFIG_MTD_AT25=y
|
||||||
|
@ -44,7 +44,7 @@ CONFIG_I2CTOOL_MAXBUS=0
|
|||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_IOB_NBUFFERS=24
|
CONFIG_IOB_NBUFFERS=24
|
||||||
CONFIG_LIBC_HOSTNAME="SAME70-Xplained"
|
CONFIG_LIBC_HOSTNAME="SAME70-Xplained"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
|
@ -42,7 +42,7 @@ CONFIG_FS_PROCFS=y
|
|||||||
CONFIG_HOST_WINDOWS=y
|
CONFIG_HOST_WINDOWS=y
|
||||||
CONFIG_I2CTOOL_MAXBUS=0
|
CONFIG_I2CTOOL_MAXBUS=0
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
|
@ -46,7 +46,7 @@ CONFIG_I2C_DRIVER=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="twm4nx_main"
|
CONFIG_INIT_ENTRYPOINT="twm4nx_main"
|
||||||
CONFIG_IOB_NBUFFERS=24
|
CONFIG_IOB_NBUFFERS=24
|
||||||
CONFIG_LIBC_HOSTNAME="SAME70-Xplained"
|
CONFIG_LIBC_HOSTNAME="SAME70-Xplained"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MM_REGIONS=2
|
CONFIG_MM_REGIONS=2
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
|
@ -79,7 +79,7 @@ to be resolved. General problems are listed below. But see the STATUS
|
|||||||
section associated with each configuration for additional issues specific
|
section associated with each configuration for additional issues specific
|
||||||
to a particular configuration.
|
to a particular configuration.
|
||||||
|
|
||||||
1. HSCMI. CONFIG_MMCSD_MULTIBLOCK_DISABLE=y is set to disable multi-block
|
1. HSCMI. CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 is set to disable multi-block
|
||||||
transfers only because I have not yet had a chance to verify this. The
|
transfers only because I have not yet had a chance to verify this. The
|
||||||
is very low priority to me but might be important to you if you are need
|
is very low priority to me but might be important to you if you are need
|
||||||
very high performance SD card accesses.
|
very high performance SD card accesses.
|
||||||
@ -275,7 +275,7 @@ Enabling HSMCI support. The SAMV7-XULT provides a one, full-size SD memory card
|
|||||||
Device Drivers -> MMC/SD Driver Support
|
Device Drivers -> MMC/SD Driver Support
|
||||||
CONFIG_MMCSD=y : Enable MMC/SD support
|
CONFIG_MMCSD=y : Enable MMC/SD support
|
||||||
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
CONFIG_MMSCD_NSLOTS=1 : One slot per driver instance
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : (REVISIT)
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : (REVISIT)
|
||||||
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
CONFIG_MMCSD_HAVE_CARDDETECT=y : Supports card-detect PIOs
|
||||||
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
CONFIG_MMCSD_MMCSUPPORT=n : Interferes with some SD cards
|
||||||
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
CONFIG_MMCSD_SPI=n : No SPI-based MMC/SD support
|
||||||
|
@ -44,7 +44,7 @@ CONFIG_HOST_WINDOWS=y
|
|||||||
CONFIG_I2CTOOL_MAXBUS=0
|
CONFIG_I2CTOOL_MAXBUS=0
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
|
@ -55,7 +55,7 @@ CONFIG_IOB_NBUFFERS=32
|
|||||||
CONFIG_IOB_NCHAINS=16
|
CONFIG_IOB_NCHAINS=16
|
||||||
CONFIG_LIBC_HOSTNAME="MRF24J40-Hub"
|
CONFIG_LIBC_HOSTNAME="MRF24J40-Hub"
|
||||||
CONFIG_MAC802154_NTXDESC=32
|
CONFIG_MAC802154_NTXDESC=32
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
|
@ -49,7 +49,7 @@ CONFIG_INIT_ENTRYPOINT="nsh_main"
|
|||||||
CONFIG_INPUT=y
|
CONFIG_INPUT=y
|
||||||
CONFIG_INPUT_MXT=y
|
CONFIG_INPUT_MXT=y
|
||||||
CONFIG_LCD=y
|
CONFIG_LCD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
|
@ -44,7 +44,7 @@ CONFIG_HOST_WINDOWS=y
|
|||||||
CONFIG_I2CTOOL_MAXBUS=0
|
CONFIG_I2CTOOL_MAXBUS=0
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
|
@ -43,7 +43,7 @@ CONFIG_HOST_WINDOWS=y
|
|||||||
CONFIG_I2CTOOL_MAXBUS=0
|
CONFIG_I2CTOOL_MAXBUS=0
|
||||||
CONFIG_I2C_RESET=y
|
CONFIG_I2C_RESET=y
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
|
@ -53,7 +53,7 @@ CONFIG_LCD=y
|
|||||||
CONFIG_LCD_NOGETRUN=y
|
CONFIG_LCD_NOGETRUN=y
|
||||||
CONFIG_LIBC_FLOATINGPOINT=y
|
CONFIG_LIBC_FLOATINGPOINT=y
|
||||||
CONFIG_LIBM=y
|
CONFIG_LIBM=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
|
@ -51,7 +51,7 @@ CONFIG_INIT_ENTRYPOINT="nsh_main"
|
|||||||
CONFIG_IOB_NBUFFERS=72
|
CONFIG_IOB_NBUFFERS=72
|
||||||
CONFIG_IOB_THROTTLE=32
|
CONFIG_IOB_THROTTLE=32
|
||||||
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
|
@ -54,7 +54,7 @@ CONFIG_IOB_THROTTLE=32
|
|||||||
CONFIG_LIBC_FLOATINGPOINT=y
|
CONFIG_LIBC_FLOATINGPOINT=y
|
||||||
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
||||||
CONFIG_LIBM=y
|
CONFIG_LIBM=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
|
@ -103,7 +103,7 @@ microSD Card Interface
|
|||||||
# CONFIG_MMCSD_MMCSUPPORT is not set : Interferes with some SD cards
|
# CONFIG_MMCSD_MMCSUPPORT is not set : Interferes with some SD cards
|
||||||
# CONFIG_MMCSD_SPI is not set : No SPI-based MMC/SD support
|
# CONFIG_MMCSD_SPI is not set : No SPI-based MMC/SD support
|
||||||
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
CONFIG_MMCSD_SDIO=y : SDIO-based MMC/SD support
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y : Disable to keep things simple
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 : Disable to keep things simple
|
||||||
CONFIG_SDIO_DMA=y : Use SDIO DMA
|
CONFIG_SDIO_DMA=y : Use SDIO DMA
|
||||||
# CONFIG_SDIO_BLOCKSETUP is not set : (not implemented)
|
# CONFIG_SDIO_BLOCKSETUP is not set : (not implemented)
|
||||||
|
|
||||||
|
@ -777,9 +777,9 @@ Where <subdir> is one of the following:
|
|||||||
"If you use a large I/O buffer to access the file system, then the
|
"If you use a large I/O buffer to access the file system, then the
|
||||||
MMCSD driver will perform multiple block SD transfers. With DMA
|
MMCSD driver will perform multiple block SD transfers. With DMA
|
||||||
ON, this seems to result in CRC errors detected by the hardware
|
ON, this seems to result in CRC errors detected by the hardware
|
||||||
during the transfer. Workaround: CONFIG_MMCSD_MULTIBLOCK_DISABLE=y"
|
during the transfer. Workaround: CONFIG_MMCSD_MULTIBLOCK_LIMIT=1"
|
||||||
|
|
||||||
For this reason, CONFIG_MMCSD_MULTIBLOCK_DISABLE=y appears in the defconfig
|
For this reason, CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 appears in the defconfig
|
||||||
file.
|
file.
|
||||||
|
|
||||||
7. Another DMA-related concern. I see this statement in the reference
|
7. Another DMA-related concern. I see this statement in the reference
|
||||||
|
@ -29,7 +29,7 @@ CONFIG_I2C_POLLED=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_NETDB_DNSCLIENT=y
|
CONFIG_NETDB_DNSCLIENT=y
|
||||||
|
@ -34,7 +34,7 @@ CONFIG_I2C_POLLED=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
@ -38,7 +38,7 @@ CONFIG_LCD=y
|
|||||||
CONFIG_LCD_MAXCONTRAST=1
|
CONFIG_LCD_MAXCONTRAST=1
|
||||||
CONFIG_LCD_NOGETRUN=y
|
CONFIG_LCD_NOGETRUN=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MQ_MAXMSGSIZE=64
|
CONFIG_MQ_MAXMSGSIZE=64
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_NETINIT_NOMAC=y
|
CONFIG_NETINIT_NOMAC=y
|
||||||
|
@ -1124,9 +1124,9 @@ Where <subdir> is one of the following:
|
|||||||
"If you use a large I/O buffer to access the file system, then the
|
"If you use a large I/O buffer to access the file system, then the
|
||||||
MMCSD driver will perform multiple block SD transfers. With DMA
|
MMCSD driver will perform multiple block SD transfers. With DMA
|
||||||
ON, this seems to result in CRC errors detected by the hardware
|
ON, this seems to result in CRC errors detected by the hardware
|
||||||
during the transfer. Workaround: CONFIG_MMCSD_MULTIBLOCK_DISABLE=y"
|
during the transfer. Workaround: CONFIG_MMCSD_MULTIBLOCK_LIMIT=1"
|
||||||
|
|
||||||
For this reason, CONFIG_MMCSD_MULTIBLOCK_DISABLE=y appears in the defconfig
|
For this reason, CONFIG_MMCSD_MULTIBLOCK_LIMIT=1 appears in the defconfig
|
||||||
file.
|
file.
|
||||||
|
|
||||||
7. Another DMA-related concern. I see this statement in the reference
|
7. Another DMA-related concern. I see this statement in the reference
|
||||||
|
@ -35,7 +35,7 @@ CONFIG_I2C_POLLED=y
|
|||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
@ -34,7 +34,7 @@ CONFIG_INIT_ENTRYPOINT="nsh_main"
|
|||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_LIBC_HOSTNAME="STM32F4-Discovery"
|
CONFIG_LIBC_HOSTNAME="STM32F4-Discovery"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_NETINIT_IPv6NETMASK_8=0xff80
|
CONFIG_NETINIT_IPv6NETMASK_8=0xff80
|
||||||
|
@ -34,7 +34,7 @@ CONFIG_INIT_ENTRYPOINT="nsh_main"
|
|||||||
CONFIG_INTELHEX_BINARY=y
|
CONFIG_INTELHEX_BINARY=y
|
||||||
CONFIG_LIBC_HOSTNAME="STM32F4-Discovery"
|
CONFIG_LIBC_HOSTNAME="STM32F4-Discovery"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
CONFIG_NETDB_DNSCLIENT=y
|
CONFIG_NETDB_DNSCLIENT=y
|
||||||
|
@ -51,7 +51,7 @@ CONFIG_INIT_ENTRYPOINT="nsh_main"
|
|||||||
CONFIG_INIT_STACKSIZE=2500
|
CONFIG_INIT_STACKSIZE=2500
|
||||||
CONFIG_LIBC_STRERROR=y
|
CONFIG_LIBC_STRERROR=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MMCSD_SDIO=y
|
CONFIG_MMCSD_SDIO=y
|
||||||
CONFIG_MM_REGIONS=3
|
CONFIG_MM_REGIONS=3
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
|
@ -34,7 +34,7 @@ CONFIG_I2CTOOL_MAXBUS=0
|
|||||||
CONFIG_I2C_RESET=y
|
CONFIG_I2C_RESET=y
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
CONFIG_MTD_AT25=y
|
CONFIG_MTD_AT25=y
|
||||||
|
@ -37,7 +37,7 @@ CONFIG_IOB_BUFSIZE=128
|
|||||||
CONFIG_IOB_NBUFFERS=48
|
CONFIG_IOB_NBUFFERS=48
|
||||||
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
CONFIG_MTD_AT25=y
|
CONFIG_MTD_AT25=y
|
||||||
|
@ -52,7 +52,7 @@ CONFIG_IOB_BUFSIZE=128
|
|||||||
CONFIG_IOB_NBUFFERS=48
|
CONFIG_IOB_NBUFFERS=48
|
||||||
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
CONFIG_MTD_AT25=y
|
CONFIG_MTD_AT25=y
|
||||||
|
@ -53,7 +53,7 @@ CONFIG_IOB_BUFSIZE=128
|
|||||||
CONFIG_IOB_NBUFFERS=48
|
CONFIG_IOB_NBUFFERS=48
|
||||||
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
CONFIG_LIBC_HOSTNAME="SAMV71-XULT"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_MTD=y
|
CONFIG_MTD=y
|
||||||
CONFIG_MTD_AT24XX=y
|
CONFIG_MTD_AT24XX=y
|
||||||
CONFIG_MTD_AT25=y
|
CONFIG_MTD_AT25=y
|
||||||
|
@ -29,7 +29,7 @@ CONFIG_FS_PROCFS=y
|
|||||||
CONFIG_HOST_WINDOWS=y
|
CONFIG_HOST_WINDOWS=y
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_DISABLE_IFUPDOWN=y
|
CONFIG_NSH_DISABLE_IFUPDOWN=y
|
||||||
CONFIG_NSH_FILEIOSIZE=512
|
CONFIG_NSH_FILEIOSIZE=512
|
||||||
|
@ -30,7 +30,7 @@ CONFIG_FS_PROCFS=y
|
|||||||
CONFIG_HOST_WINDOWS=y
|
CONFIG_HOST_WINDOWS=y
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_DISABLE_IFUPDOWN=y
|
CONFIG_NSH_DISABLE_IFUPDOWN=y
|
||||||
CONFIG_NSH_FILEIOSIZE=512
|
CONFIG_NSH_FILEIOSIZE=512
|
||||||
|
@ -29,7 +29,7 @@ CONFIG_INIT_ENTRYPOINT="sd_main"
|
|||||||
CONFIG_LIBC_HEX2BIN=y
|
CONFIG_LIBC_HEX2BIN=y
|
||||||
CONFIG_MAKERLISP_SDBOOT=y
|
CONFIG_MAKERLISP_SDBOOT=y
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
|
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
|
||||||
CONFIG_PREALLOC_TIMERS=4
|
CONFIG_PREALLOC_TIMERS=4
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT=1024
|
CONFIG_PTHREAD_STACK_DEFAULT=1024
|
||||||
|
@ -30,7 +30,7 @@ CONFIG_FS_PROCFS=y
|
|||||||
CONFIG_HOST_WINDOWS=y
|
CONFIG_HOST_WINDOWS=y
|
||||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_NSH_ARCHINIT=y
|
CONFIG_NSH_ARCHINIT=y
|
||||||
CONFIG_NSH_DISABLE_IFUPDOWN=y
|
CONFIG_NSH_DISABLE_IFUPDOWN=y
|
||||||
CONFIG_NSH_FILEIOSIZE=512
|
CONFIG_NSH_FILEIOSIZE=512
|
||||||
|
@ -27,7 +27,7 @@ CONFIG_FS_FAT=y
|
|||||||
CONFIG_HOST_WINDOWS=y
|
CONFIG_HOST_WINDOWS=y
|
||||||
CONFIG_INIT_ENTRYPOINT="sd_main"
|
CONFIG_INIT_ENTRYPOINT="sd_main"
|
||||||
CONFIG_MMCSD=y
|
CONFIG_MMCSD=y
|
||||||
CONFIG_MMCSD_MULTIBLOCK_DISABLE=y
|
CONFIG_MMCSD_MULTIBLOCK_LIMIT=1
|
||||||
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
|
CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6
|
||||||
CONFIG_PREALLOC_TIMERS=4
|
CONFIG_PREALLOC_TIMERS=4
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT=1024
|
CONFIG_PTHREAD_STACK_DEFAULT=1024
|
||||||
|
@ -41,13 +41,15 @@ config MMCSD_READONLY
|
|||||||
Provide read-only access. Default is
|
Provide read-only access. Default is
|
||||||
Read/Write
|
Read/Write
|
||||||
|
|
||||||
config MMCSD_MULTIBLOCK_DISABLE
|
config MMCSD_MULTIBLOCK_LIMIT
|
||||||
bool "Disable MMC/SD multiblock transfer"
|
int "Max block count can read/write in single transfer"
|
||||||
default n
|
default 0
|
||||||
---help---
|
---help---
|
||||||
Use only the single block transfer method.
|
The max block can be handled in single transfer.
|
||||||
This setting is used to work around buggy SDIO drivers that cannot handle
|
Default to 0, means no limitation. Block count larger than this
|
||||||
multiple block transfers.
|
limit will be splited to multiple multi-block transfer. Set it to 1 will
|
||||||
|
only use single-block transfer mode, and can be used to work around
|
||||||
|
buggy SDIO drivers that cannot handle multiple block transfers.
|
||||||
|
|
||||||
config MMCSD_MMCSUPPORT
|
config MMCSD_MMCSUPPORT
|
||||||
bool "MMC cards support"
|
bool "MMC cards support"
|
||||||
|
@ -87,6 +87,12 @@
|
|||||||
|
|
||||||
#define IS_EMPTY(priv) (priv->type == MMCSD_CARDTYPE_UNKNOWN)
|
#define IS_EMPTY(priv) (priv->type == MMCSD_CARDTYPE_UNKNOWN)
|
||||||
|
|
||||||
|
#if CONFIG_MMCSD_MULTIBLOCK_LIMIT == 0
|
||||||
|
# define MMCSD_MULTIBLOCK_LIMIT SSIZE_MAX
|
||||||
|
#else
|
||||||
|
# define MMCSD_MULTIBLOCK_LIMIT CONFIG_MMCSD_MULTIBLOCK_LIMIT
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Types
|
* Private Types
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -175,20 +181,20 @@ static bool mmcsd_wrprotected(FAR struct mmcsd_state_s *priv);
|
|||||||
static int mmcsd_eventwait(FAR struct mmcsd_state_s *priv,
|
static int mmcsd_eventwait(FAR struct mmcsd_state_s *priv,
|
||||||
sdio_eventset_t failevents);
|
sdio_eventset_t failevents);
|
||||||
static int mmcsd_transferready(FAR struct mmcsd_state_s *priv);
|
static int mmcsd_transferready(FAR struct mmcsd_state_s *priv);
|
||||||
#ifndef CONFIG_MMCSD_MULTIBLOCK_DISABLE
|
#if MMCSD_MULTIBLOCK_LIMIT != 1
|
||||||
static int mmcsd_stoptransmission(FAR struct mmcsd_state_s *priv);
|
static int mmcsd_stoptransmission(FAR struct mmcsd_state_s *priv);
|
||||||
#endif
|
#endif
|
||||||
static int mmcsd_setblocklen(FAR struct mmcsd_state_s *priv,
|
static int mmcsd_setblocklen(FAR struct mmcsd_state_s *priv,
|
||||||
uint32_t blocklen);
|
uint32_t blocklen);
|
||||||
static ssize_t mmcsd_readsingle(FAR struct mmcsd_state_s *priv,
|
static ssize_t mmcsd_readsingle(FAR struct mmcsd_state_s *priv,
|
||||||
FAR uint8_t *buffer, off_t startblock);
|
FAR uint8_t *buffer, off_t startblock);
|
||||||
#ifndef CONFIG_MMCSD_MULTIBLOCK_DISABLE
|
#if MMCSD_MULTIBLOCK_LIMIT != 1
|
||||||
static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
|
static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
|
||||||
FAR uint8_t *buffer, off_t startblock, size_t nblocks);
|
FAR uint8_t *buffer, off_t startblock, size_t nblocks);
|
||||||
#endif
|
#endif
|
||||||
static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv,
|
static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv,
|
||||||
FAR const uint8_t *buffer, off_t startblock);
|
FAR const uint8_t *buffer, off_t startblock);
|
||||||
#ifndef CONFIG_MMCSD_MULTIBLOCK_DISABLE
|
#if MMCSD_MULTIBLOCK_LIMIT != 1
|
||||||
static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
|
static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
|
||||||
FAR const uint8_t *buffer, off_t startblock,
|
FAR const uint8_t *buffer, off_t startblock,
|
||||||
size_t nblocks);
|
size_t nblocks);
|
||||||
@ -1287,7 +1293,7 @@ errorout:
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef CONFIG_MMCSD_MULTIBLOCK_DISABLE
|
#if MMCSD_MULTIBLOCK_LIMIT != 1
|
||||||
static int mmcsd_stoptransmission(FAR struct mmcsd_state_s *priv)
|
static int mmcsd_stoptransmission(FAR struct mmcsd_state_s *priv)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@ -1482,7 +1488,7 @@ static ssize_t mmcsd_readsingle(FAR struct mmcsd_state_s *priv,
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef CONFIG_MMCSD_MULTIBLOCK_DISABLE
|
#if MMCSD_MULTIBLOCK_LIMIT != 1
|
||||||
static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
|
static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv,
|
||||||
FAR uint8_t *buffer, off_t startblock,
|
FAR uint8_t *buffer, off_t startblock,
|
||||||
size_t nblocks)
|
size_t nblocks)
|
||||||
@ -1793,7 +1799,7 @@ static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv,
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if !defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE)
|
#if MMCSD_MULTIBLOCK_LIMIT != 1
|
||||||
static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
|
static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv,
|
||||||
FAR const uint8_t *buffer,
|
FAR const uint8_t *buffer,
|
||||||
off_t startblock, size_t nblocks)
|
off_t startblock, size_t nblocks)
|
||||||
@ -2084,10 +2090,9 @@ static ssize_t mmcsd_read(FAR struct inode *inode, unsigned char *buffer,
|
|||||||
blkcnt_t startsector, unsigned int nsectors)
|
blkcnt_t startsector, unsigned int nsectors)
|
||||||
{
|
{
|
||||||
FAR struct mmcsd_state_s *priv;
|
FAR struct mmcsd_state_s *priv;
|
||||||
#if defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE)
|
|
||||||
size_t sector;
|
size_t sector;
|
||||||
size_t endsector;
|
size_t endsector;
|
||||||
#endif
|
ssize_t nread;
|
||||||
ssize_t ret = nsectors;
|
ssize_t ret = nsectors;
|
||||||
|
|
||||||
DEBUGASSERT(inode && inode->i_private);
|
DEBUGASSERT(inode && inode->i_private);
|
||||||
@ -2100,19 +2105,36 @@ static ssize_t mmcsd_read(FAR struct inode *inode, unsigned char *buffer,
|
|||||||
ret = mmcsd_takesem(priv);
|
ret = mmcsd_takesem(priv);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
return (ssize_t)ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE)
|
|
||||||
/* Read each block using only the single block transfer method */
|
|
||||||
|
|
||||||
ret = nsectors;
|
ret = nsectors;
|
||||||
endsector = startsector + nsectors - 1;
|
endsector = startsector + nsectors;
|
||||||
for (sector = startsector; sector <= endsector; sector++)
|
for (sector = startsector; sector < endsector; sector += nread)
|
||||||
{
|
{
|
||||||
/* Read this sector into the user buffer */
|
/* Read this sector into the user buffer */
|
||||||
|
|
||||||
ssize_t nread = mmcsd_readsingle(priv, buffer, sector);
|
#if MMCSD_MULTIBLOCK_LIMIT == 1
|
||||||
|
/* Read each block using only the single block transfer method */
|
||||||
|
|
||||||
|
nread = mmcsd_readsingle(priv, buffer, sector);
|
||||||
|
#else
|
||||||
|
nread = endsector - sector;
|
||||||
|
if (nread > MMCSD_MULTIBLOCK_LIMIT)
|
||||||
|
{
|
||||||
|
nread = MMCSD_MULTIBLOCK_LIMIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nread == 1)
|
||||||
|
{
|
||||||
|
nread = mmcsd_readsingle(priv, buffer, sector);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nread = mmcsd_readmultiple(priv, buffer, sector, nread);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
if (nread < 0)
|
if (nread < 0)
|
||||||
{
|
{
|
||||||
ret = nread;
|
ret = nread;
|
||||||
@ -2121,22 +2143,9 @@ static ssize_t mmcsd_read(FAR struct inode *inode, unsigned char *buffer,
|
|||||||
|
|
||||||
/* Increment the buffer pointer by the sector size */
|
/* Increment the buffer pointer by the sector size */
|
||||||
|
|
||||||
buffer += priv->blocksize;
|
buffer += nread * priv->blocksize;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
/* Use either the single- or multiple-block transfer method */
|
|
||||||
|
|
||||||
if (nsectors == 1)
|
|
||||||
{
|
|
||||||
ret = mmcsd_readsingle(priv, buffer, startsector);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ret = mmcsd_readmultiple(priv, buffer, startsector, nsectors);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
mmcsd_givesem(priv);
|
mmcsd_givesem(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2159,60 +2168,62 @@ static ssize_t mmcsd_write(FAR struct inode *inode,
|
|||||||
blkcnt_t startsector, unsigned int nsectors)
|
blkcnt_t startsector, unsigned int nsectors)
|
||||||
{
|
{
|
||||||
FAR struct mmcsd_state_s *priv;
|
FAR struct mmcsd_state_s *priv;
|
||||||
#if defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE)
|
|
||||||
size_t sector;
|
size_t sector;
|
||||||
size_t endsector;
|
size_t endsector;
|
||||||
#endif
|
ssize_t nwrite;
|
||||||
ssize_t ret = nsectors;
|
ssize_t ret = nsectors;
|
||||||
|
|
||||||
DEBUGASSERT(inode && inode->i_private);
|
DEBUGASSERT(inode && inode->i_private);
|
||||||
priv = (FAR struct mmcsd_state_s *)inode->i_private;
|
priv = (FAR struct mmcsd_state_s *)inode->i_private;
|
||||||
|
finfo("startsector: %" PRIuOFF " nsectors: %u sectorsize: %d\n",
|
||||||
finfo("sector: %lu nsectors: %u sectorsize: %u\n",
|
startsector, nsectors, priv->blocksize);
|
||||||
(unsigned long)startsector, nsectors, priv->blocksize);
|
|
||||||
|
|
||||||
if (nsectors > 0)
|
if (nsectors > 0)
|
||||||
{
|
{
|
||||||
ret = mmcsd_takesem(priv);
|
ret = mmcsd_takesem(priv);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
return (ssize_t)ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE)
|
|
||||||
/* Write each block using only the single block transfer method */
|
|
||||||
|
|
||||||
ret = nsectors;
|
ret = nsectors;
|
||||||
endsector = startsector + nsectors - 1;
|
endsector = startsector + nsectors;
|
||||||
for (sector = startsector; sector <= endsector; sector++)
|
for (sector = startsector; sector < endsector; sector += nwrite)
|
||||||
{
|
{
|
||||||
/* Write this block from the user buffer */
|
/* Write this sector into the user buffer */
|
||||||
|
|
||||||
ssize_t nread = mmcsd_writesingle(priv, buffer, sector);
|
#if MMCSD_MULTIBLOCK_LIMIT == 1
|
||||||
if (nread < 0)
|
/* Write each block using only the single block transfer method */
|
||||||
|
|
||||||
|
nwrite = mmcsd_writesingle(priv, buffer, sector);
|
||||||
|
#else
|
||||||
|
nwrite = endsector - sector;
|
||||||
|
if (nwrite > MMCSD_MULTIBLOCK_LIMIT)
|
||||||
{
|
{
|
||||||
ret = nread;
|
nwrite = MMCSD_MULTIBLOCK_LIMIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nwrite == 1)
|
||||||
|
{
|
||||||
|
nwrite = mmcsd_writesingle(priv, buffer, sector);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nwrite = mmcsd_writemultiple(priv, buffer, sector, nwrite);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
if (nwrite < 0)
|
||||||
|
{
|
||||||
|
ret = nwrite;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Increment the buffer pointer by the block size */
|
/* Increment the buffer pointer by the sector size */
|
||||||
|
|
||||||
buffer += priv->blocksize;
|
buffer += nwrite * priv->blocksize;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
/* Use either the single- or multiple-block transfer method */
|
|
||||||
|
|
||||||
if (nsectors == 1)
|
|
||||||
{
|
|
||||||
ret = mmcsd_writesingle(priv, buffer, startsector);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ret = mmcsd_writemultiple(priv, buffer, startsector, nsectors);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
mmcsd_givesem(priv);
|
mmcsd_givesem(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user