STM32 SDIO DMA: Ignore DMA FIFO errors; these seem to be bogus. SD multiple block transfers result in CRC errors; avoid them by using smaller FTP buffer sizes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4410 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
c59efdb312
commit
8c1b31e600
@ -953,9 +953,9 @@ defconfig -- This is a configuration file similar to the Linux
|
||||
CONFIG_FTPD_SERVERID - The server name to use in FTP communications.
|
||||
Default: "NuttX FTP Server"
|
||||
CONFIG_FTPD_CMDBUFFERSIZE - The maximum size of one command. Default:
|
||||
512 bytes.
|
||||
128 bytes.
|
||||
CONFIG_FTPD_DATABUFFERSIZE - The size of the I/O buffer for data
|
||||
transfers. Default: 2048 bytes.
|
||||
transfers. Default: 512 bytes.
|
||||
CONFIG_FTPD_WORKERSTACKSIZE - The stacksize to allocate for each
|
||||
FTP daemon worker thread. Default: 2048 bytes.
|
||||
|
||||
|
@ -737,6 +737,28 @@ Where <subdir> is one of the following:
|
||||
Then DMA works fine. The downside is, of course, is that we lose 64Kb
|
||||
of precious SRAM.
|
||||
|
||||
5. Another SDIO/DMA issue. This one is probably a software bug. This is
|
||||
the bug as stated in the TODO list:
|
||||
|
||||
"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
|
||||
ON, this seems to result in CRC errors detected by the hardware
|
||||
during the transfer. Workaround: Use I/O buffers less the 1024
|
||||
bytes."
|
||||
|
||||
For this reason, CONFIG_FTPD_DATABUFFERSIZE=512 appears in the defconfig
|
||||
file.
|
||||
|
||||
6. Another DMA-related concern. I see this statement in the reference
|
||||
manual: "The burst configuration has to be selected in order to respect
|
||||
the AHB protocol, where bursts must not cross the 1 KB address boundary
|
||||
because the minimum address space that can be allocated to a single slave
|
||||
is 1 KB. This means that the 1 KB address boundary should not be crossed
|
||||
by a burst block transfer, otherwise an AHB error would be generated,
|
||||
that is not reported by the DMA registers."
|
||||
|
||||
There is nothing in the DMA driver to prevent this now.
|
||||
|
||||
ostest:
|
||||
------
|
||||
This configuration directory, performs a simple OS test using
|
||||
|
@ -864,9 +864,9 @@ CONFIG_NET_RESOLV_ENTRIES=4
|
||||
# CONFIG_FTPD_SERVERID - The server name to use in FTP communications.
|
||||
# Default: "NuttX FTP Server"
|
||||
# CONFIG_FTPD_CMDBUFFERSIZE - The maximum size of one command. Default:
|
||||
# 512 bytes.
|
||||
# 128 bytes.
|
||||
# CONFIG_FTPD_DATABUFFERSIZE - The size of the I/O buffer for data
|
||||
# transfers. Default: 2048 bytes.
|
||||
# transfers. Default: 512 bytes.
|
||||
# CONFIG_FTPD_WORKERSTACKSIZE - The stacksize to allocate for each
|
||||
# FTP daemon worker thread. Default: 2048 bytes.
|
||||
#
|
||||
@ -876,6 +876,7 @@ CONFIG_NET_RESOLV_ENTRIES=4
|
||||
# CONFIG_DISABLE_PTHREAD - pthread support is required
|
||||
# CONFIG_DISABLE_POLL - poll() support is required
|
||||
#
|
||||
CONFIG_FTPD_CMDBUFFERSIZE=512
|
||||
|
||||
#
|
||||
# RTC Configuration
|
||||
|
@ -865,9 +865,9 @@ CONFIG_NET_RESOLV_ENTRIES=4
|
||||
# CONFIG_FTPD_SERVERID - The server name to use in FTP communications.
|
||||
# Default: "NuttX FTP Server"
|
||||
# CONFIG_FTPD_CMDBUFFERSIZE - The maximum size of one command. Default:
|
||||
# 512 bytes.
|
||||
# 128 bytes.
|
||||
# CONFIG_FTPD_DATABUFFERSIZE - The size of the I/O buffer for data
|
||||
# transfers. Default: 2048 bytes.
|
||||
# transfers. Default: 512 bytes.
|
||||
# CONFIG_FTPD_WORKERSTACKSIZE - The stacksize to allocate for each
|
||||
# FTP daemon worker thread. Default: 2048 bytes.
|
||||
#
|
||||
@ -877,6 +877,7 @@ CONFIG_NET_RESOLV_ENTRIES=4
|
||||
# CONFIG_DISABLE_PTHREAD - pthread support is required
|
||||
# CONFIG_DISABLE_POLL - poll() support is required
|
||||
#
|
||||
CONFIG_FTPD_CMDBUFFERSIZE=512
|
||||
|
||||
#
|
||||
# RTC Configuration
|
||||
|
Loading…
Reference in New Issue
Block a user