summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-05-29 15:36:48 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-05-29 15:36:48 +0000
commit45d32292cbec56be065622ae4c991f0cd2f4a9bd (patch)
tree5a03765cfc363ab13aee346235d77cb372e8ea60
parent667921a4e294fc5b8b9a99c889307c9f6c93ffae (diff)
downloadnuttx-45d32292cbec56be065622ae4c991f0cd2f4a9bd.tar.gz
nuttx-45d32292cbec56be065622ae4c991f0cd2f4a9bd.tar.bz2
nuttx-45d32292cbec56be065622ae4c991f0cd2f4a9bd.zip
Prep for 0.4.7 releasenuttx-4.7
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1837 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--nuttx/ChangeLog7
-rw-r--r--nuttx/Documentation/NuttX.html124
-rw-r--r--nuttx/Documentation/NuttxPortingGuide.html3
-rw-r--r--nuttx/ReleaseNotes26
-rw-r--r--nuttx/TODO8
-rw-r--r--nuttx/configs/README.txt1
-rw-r--r--nuttx/configs/eagle100/httpd/defconfig3
-rw-r--r--nuttx/configs/eagle100/nettest/defconfig3
-rw-r--r--nuttx/configs/eagle100/nsh/defconfig3
-rw-r--r--nuttx/configs/eagle100/ostest/defconfig3
-rw-r--r--nuttx/configs/mcu123-lpc214x/nsh/defconfig3
-rw-r--r--nuttx/configs/mcu123-lpc214x/ostest/defconfig3
-rw-r--r--nuttx/configs/mcu123-lpc214x/usbserial/defconfig3
-rw-r--r--nuttx/configs/mcu123-lpc214x/usbstorage/defconfig3
-rw-r--r--nuttx/drivers/mmcsd/mmcsd_spi.c49
15 files changed, 90 insertions, 152 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index a21520a72..a314430d4 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -722,7 +722,7 @@
* sched/: pthread_create() must return a (non-negated) errno value on failure.
* configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100
-0.4.7 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+0.4.7 2009-05-29 Gregory Nutt <spudmonkey@racsa.co.cr>
* arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918
* configs/eagle100/nettest: Added an examples/nettest configuration for the
@@ -747,9 +747,10 @@
it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain
and the devkitARM GNU toolchain.
* configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block
- logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, 2Gb SanDisk SDC,
- and 4Gb Kingston SDHC.
+ logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, and
+ 4Gb Kingston SDHC. There are CMD0 issues with the 2Gb SanDisk SDC on this board.
* fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain
mount() failures.
+0.4.8 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 4e651caa4..41f583fa5 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -401,7 +401,7 @@
<td><br></td>
<td>
<p>
- <li>Generic driver for SPI-based MMC/SD cards.</li>
+ <li>Generic driver for SPI-based MMC/SD/SDH cards.</li>
</p>
</tr>
<tr>
@@ -687,8 +687,8 @@
</tr>
</table>
-<p><b>nuttx-0.4.6</b>.
- The 38<sup>th</sup> release of NuttX (nuttx-0.4.6) is available for download
+<p><b>nuttx-0.4.7</b>.
+ The 39<sup>th</sup> release of NuttX (nuttx-0.4.7) was made on May 29, 2009 and is available for download
from the <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a>
website.
The change log associated with the release is available <a href="#currentrelease">here</a>.
@@ -696,20 +696,22 @@
These unreleased changes are listed <a href="#pendingchanges">here</a>.
</p>
<p>
- The release features support for the <a href=" http://www.micromint.com/">Micromint</a>
- Eagle-100 development board.
- This board is based around, the Luminary LM3S6918 MCU.
- This is the first ARM Cortex-M3 architecture supported by Nuttx.
- This initial, basic port includes timer and serial console with configurations to execute the NuttX OS test and to run the <a href="NuttShell.html">NuttShell (NSH)</a>.
- Work is still underway on this port and current plans are to have I2C, SSI, MMC/SD, and and Ethernet driver in the 0.4.7 release.
+ This release focuses on cleaning up and extending the Eagle100/LM3S6918 port released
+ in nuttx-0.4.6 and on improved MMC/SD support. New features include:
+ <ul>
+ <li>
+ Improved reliably and additional drivers for the Eagle-100 board (LM3S6918
+ ARM Cortex-M3). Additional drivers include Ethernet, SSI, and support for
+ the on-board LEDs and microSD cards.
+ </li>
+ <li>
+ The SPI-based MMC/SD driver was extended to support SDHC Version 2.xx cards.
+ </li>
+ </ul>
</p>
<p>
- Additional work was done on the MXADS i.MX1 port, however, that work has been set aside
- until I complete work on the Eagle-100 (I also need to come up with a 3V power supply).
-</p>
-<p>
- Other changes in this release include: Extensions to the SPI interface definition in order to handle 9-bit interfaces to displays.
- Several bugs were fixed (see the <a href="#currentrelease">ChangeLog</a> for a complete list of changes).
+ In addition, this release includes several important bugfixes for the LM3S6918, the LPC2148,
+ the SPI-based MMC/SD driver, and to FAT32. See the ChangeLog for details of these bugfixes.
</p>
<table width ="100%">
@@ -866,11 +868,10 @@
</p>
<p>
<b>STATUS:</b>
- This initial, basic release of this port has been verifed and included in NuttX
- version 0.4.6. The basic port includes timer and serial console with configurations
- to execute the NuttX OS test and to run the <a href="NuttShell.html">NuttShell (NSH)</a>.
- Work is still underway on this port and current plans are to have I2C, SSI, MMC/SD, and
- and Ethernet driver in the 0.4.7 release.
+ The initial, release of this port was included in NuttX version 0.4.6.
+ The current port includes timer, serial console, Ethernet, SSI, and microSD support.
+ There are working configurations the NuttX OS test, to run the <a href="NuttShell.html">NuttShell
+ (NSH)</a>, the NuttX networking test, and the uIP web server.
</p>
</td>
</tr>
@@ -1358,30 +1359,35 @@ Other memory:
</table>
<pre><ul>
-nuttx-0.4.6 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-
- * Change SPI interface so that is can accomodate interfaces where the
- number of bits per word is greater an 8 (such as with many 9-bit display
- interfaces). -- this might have broken a few things which will need to
- be retested!
- * arch/arm/src/imx: Added i.MX SPI driver
- * SPI: Add a method to set the number of bits per word. Also add an
- alternative interface for so that (eventually) I can phase the sndblock
- and recvblock methods and replace them with a single exchange method
- * Build: objcopy fails with toolchains that use newer GCC and binutils. The
- following arguments need to be included in the objcopy command line "-R .note
- -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile,
- but other architectures may have the same problem. Thanks to Dave Marples
- for verifying this.
- * configs/eagle100/ostest: Added support for the MicroMint Eagle100 board.
- This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build
- examples/ostest.
- * arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs.
- legacy, "slow" GPIO) for LPC214x.
- * arch/arm: Restructured the arch/arm directory structure to better suppor ARM
- and Cortex-M3.
- * sched/: pthread_create() must return a (non-negated) errno value on failure.
- * configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100
+nuttx-0.4.7 2009-05-29 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
+
+ * arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918
+ * configs/eagle100/nettest: Added an examples/nettest configuration for the
+ Micromint Eagle100 board.
+ * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers.
+ * configs/eagle100/httpd: Added an examples/uip configuration for the
+ Micromint Eagle100 board.
+ * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918
+ * examples/nsh: Added MMC/SD support for the LM3S6918
+ * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical
+ fix!).
+ * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency
+ calculation based on CSD settings, inappropriate timeouts, odd code that looks like
+ a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is
+ largely redesigned and probably non-functional in the first check-in.
+ * drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb
+ SanDisk microSDC card on the Eagle100 platform.
+ * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed.
+ Found and corrected a problem that prevented use of FAT32: It was not updating
+ the sector cache before checking the FAT32 FSINFO sector.
+ * configs/eagle100/*/Make.defs: Added configuration options that should make
+ it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain
+ and the devkitARM GNU toolchain.
+ * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block
+ logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, and
+ 4Gb Kingston SDHC. There are CMD0 issues with the 2Gb SanDisk SDC on this board.
+ * fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain
+ mount() failures.
pascal-0.1.2 2008-02-10 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
@@ -1412,35 +1418,7 @@ buildroot-0.1.5 2009-04-25 &lt;spudmonkey@racsa.co.cr&gt;
</table>
<pre><ul>
-nuttx-0.4.7 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
-
- * arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918
- * configs/eagle100/nettest: Added an examples/nettest configuration for the
- Micromint Eagle100 board.
- * Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers.
- * configs/eagle100/httpd: Added an examples/uip configuration for the
- Micromint Eagle100 board.
- * arch/arm/src/lm3s: Added an SSI driver for the LM3S6918
- * examples/nsh: Added MMC/SD support for the LM3S6918
- * arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical
- fix!).
- * drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency
- calculation based on CSD settings, inappropriate timeouts, odd code that looks like
- a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is
- largely redesigned and probably non-functional in the first check-in.
- * drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb
- SanDisk microSDC card on the Eagle100 platform.
- * fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed.
- Found and corrected a problem that prevented use of FAT32: It was not updating
- the sector cache before checking the FAT32 FSINFO sector.
- * configs/eagle100/*/Make.defs: Added configuration options that should make
- it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain
- and the devkitARM GNU toolchain.
- * configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block
- logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, 2Gb SanDisk SDC,
- and 4Gb Kingston SDHC.
- * fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain
- mount() failures.
+nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index 6ab70d961..b2eb55d04 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -2183,9 +2183,6 @@ extern void up_ledoff(int led);
<li>
<code>CONFIG_MMCSD_SPICLOCK</code>: Maximum SPI clock to drive MMC/SD card. Default is 20MHz.
</li>
- <li>
- <code>CONFIG_MMCSD_SYNCHRONIZE</code>: Special synchronization logic needed
- </li>
</ul>
<h2>Network Support</h2>
diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
index 5900c4f3b..870c7a910 100644
--- a/nuttx/ReleaseNotes
+++ b/nuttx/ReleaseNotes
@@ -884,3 +884,29 @@ in order to handle 9-bit interfaces to displays. Several bugs were fixed (see t
ChangeLog for a complete list of changes).
This tarball contains a complete CVS snapshot from May 19, 2009.
+
+nuttx-0.4.7
+^^^^^^^^^^^
+
+This is the 39th release of NuttX. This release focuses on cleaning up and
+extending the Eagle100/LM3S6918 port released in nuttx-0.4.6 and on improved
+MMC/SD support. New features include:
+
+ o Improved reliably and additional drivers for the Eagle-100 board (LM3S6918
+ ARM Cortex-M3). Additional drivers include Ethernet, SSI, and support for
+ the on-board LEDs and microSD cards.
+ o The SPI-based MMC/SD driver was extended to support SDHC Version 2.xx cards.
+
+In addition, this release includes several important bugfixes for the LM3S6918,
+the LPC2148, the SPI-based MMC/SD driver, and to FAT32. See the ChangeLog for
+details of these bugfixes.
+
+This tarball contains a complete CVS snapshot from May 19, 2009.
+
+
+
+
+
+
+
+
diff --git a/nuttx/TODO b/nuttx/TODO
index 3e3ea0944..33d0e25be 100644
--- a/nuttx/TODO
+++ b/nuttx/TODO
@@ -22,7 +22,7 @@ NuttX TODO List (Last updated April 12, 2009)
(1) ARM/C5471 (arch/arm/src/c5471/)
(3) ARM/DM320 (arch/arm/src/dm320/)
(2) ARM/i.MX (arch/arm/src/imx/)
- (3) ARM/LPC214x (arch/arm/src/lpc214x/)
+ (8) ARM/LPC214x (arch/arm/src/lpc214x/)
(4) ARM/STR71x (arch/arm/src/str71x/)
(1) ARM/LM3S6918 (arch/arm/src/lm3s/)
(4) pjrc-8052 / MCS51 (arch/pjrc-8051/)
@@ -511,6 +511,12 @@ o ARM/LPC214x (arch/arm/src/lpc214x/)
Status: Open
Priority: Medium
+ Desription: I am unable to initialize a 2Gb SanDisk microSD card (in adaptor) on the
+ the mcu123 board. The card fails to accept CMD0. Doesn't seem like a software
+ issue, but if anyone else sees the problem, I'd like to know.
+ Status: Open
+ Priority: Uncertain
+
o ARM/STR71x (arch/arm/src/str71x/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/nuttx/configs/README.txt b/nuttx/configs/README.txt
index 5443eb75e..36c422f46 100644
--- a/nuttx/configs/README.txt
+++ b/nuttx/configs/README.txt
@@ -287,7 +287,6 @@ defconfig -- This is a configuration file similar to the Linux
Read/Write
CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
Default is 20MHz.
- CONFIG_MMCSD_SYNCHRONIZE - Special synchronization logic needed
TCP/IP and UDP support via uIP
CONFIG_NET - Enable or disable all network features
diff --git a/nuttx/configs/eagle100/httpd/defconfig b/nuttx/configs/eagle100/httpd/defconfig
index 9c42f6583..8f410917d 100644
--- a/nuttx/configs/eagle100/httpd/defconfig
+++ b/nuttx/configs/eagle100/httpd/defconfig
@@ -359,13 +359,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
CONFIG_MMCSD_SPICLOCK=12500000
-CONFIG_MMCSD_SYNCHRONIZE=n
#
# TCP/IP and UDP support via uIP
diff --git a/nuttx/configs/eagle100/nettest/defconfig b/nuttx/configs/eagle100/nettest/defconfig
index 8b501a9d1..96d82f693 100644
--- a/nuttx/configs/eagle100/nettest/defconfig
+++ b/nuttx/configs/eagle100/nettest/defconfig
@@ -359,13 +359,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
CONFIG_MMCSD_SPICLOCK=12500000
-CONFIG_MMCSD_SYNCHRONIZE=n
#
# TCP/IP and UDP support via uIP
diff --git a/nuttx/configs/eagle100/nsh/defconfig b/nuttx/configs/eagle100/nsh/defconfig
index 6bd803948..cbd62632f 100644
--- a/nuttx/configs/eagle100/nsh/defconfig
+++ b/nuttx/configs/eagle100/nsh/defconfig
@@ -358,13 +358,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
CONFIG_MMCSD_SPICLOCK=12500000
-CONFIG_MMCSD_SYNCHRONIZE=n
#
# TCP/IP and UDP support via uIP
diff --git a/nuttx/configs/eagle100/ostest/defconfig b/nuttx/configs/eagle100/ostest/defconfig
index 2abbbb648..066703054 100644
--- a/nuttx/configs/eagle100/ostest/defconfig
+++ b/nuttx/configs/eagle100/ostest/defconfig
@@ -358,13 +358,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
CONFIG_MMCSD_SPICLOCK=12500000
-CONFIG_MMCSD_SYNCHRONIZE=n
#
# TCP/IP and UDP support via uIP
diff --git a/nuttx/configs/mcu123-lpc214x/nsh/defconfig b/nuttx/configs/mcu123-lpc214x/nsh/defconfig
index fd55a8f22..c84aad6df 100644
--- a/nuttx/configs/mcu123-lpc214x/nsh/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/nsh/defconfig
@@ -309,13 +309,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
#CONFIG_MMCSD_SPICLOCK=20000000
-CONFIG_MMCSD_SYNCHRONIZE=y
#
# SPI-based MMC/SD driver
diff --git a/nuttx/configs/mcu123-lpc214x/ostest/defconfig b/nuttx/configs/mcu123-lpc214x/ostest/defconfig
index 28dac142b..ad5da5d30 100644
--- a/nuttx/configs/mcu123-lpc214x/ostest/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/ostest/defconfig
@@ -305,13 +305,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
#CONFIG_MMCSD_SPICLOCK=20000000
-CONFIG_MMCSD_SYNCHRONIZE=y
#
# TCP/IP and UDP support via uIP
diff --git a/nuttx/configs/mcu123-lpc214x/usbserial/defconfig b/nuttx/configs/mcu123-lpc214x/usbserial/defconfig
index 445cbac4e..0d95664cb 100644
--- a/nuttx/configs/mcu123-lpc214x/usbserial/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/usbserial/defconfig
@@ -310,13 +310,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
#CONFIG_MMCSD_SPICLOCK=20000000
-CONFIG_MMCSD_SYNCHRONIZE=y
#
# TCP/IP and UDP support via uIP
diff --git a/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig b/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig
index da601a98f..3cf08afc2 100644
--- a/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig
@@ -310,13 +310,10 @@ CONFIG_FS_ROMFS=n
# Provide read-only access (default is read/write)
# CONFIG_MMCSD_SPICLOCK - Maximum SPI clock to drive MMC/SD card.
# Default is 20MHz.
-# CONFIG_MMCSD_SYNCHRONIZE
-# Special synchronization logic needed
#
CONFIG_MMCSD_NSLOTS=1
CONFIG_MMCSD_READONLY=n
#CONFIG_MMCSD_SPICLOCK=20000000
-CONFIG_MMCSD_SYNCHRONIZE=y
#
# TCP/IP and UDP support via uIP
diff --git a/nuttx/drivers/mmcsd/mmcsd_spi.c b/nuttx/drivers/mmcsd/mmcsd_spi.c
index cadf8bbd8..cd0870616 100644
--- a/nuttx/drivers/mmcsd/mmcsd_spi.c
+++ b/nuttx/drivers/mmcsd/mmcsd_spi.c
@@ -168,9 +168,6 @@ static void mmcsd_semtake(sem_t *sem);
/* Card SPI interface *******************************************************/
-#ifdef CONFIG_MMCSD_SYNCHRONIZE
-static inline void mmcsd_synchronize(FAR struct mmcsd_slot_s *slot);
-#endif
static int mmcsd_waitready(FAR struct mmcsd_slot_s *slot);
static uint32 mmcsd_sendcmd(FAR struct mmcsd_slot_s *slot,
const struct mmcsd_cmdinfo_s *cmd, uint32 arg);
@@ -347,38 +344,6 @@ static void mmcsd_semtake(sem_t *sem)
#define mmcsd_semgive(sem) sem_post(sem)
/****************************************************************************
- * Name: mmcsd_synchronize
- *
- * Description:
- * Wait until the the card is no longer busy
- *
- * Assumptions:
- * MMC/SD card already selected
- *
- ****************************************************************************/
-
-#ifdef CONFIG_MMCSD_SYNCHRONIZE
-static inline void mmcsd_synchronize(FAR struct mmcsd_slot_s *slot)
-{
- FAR struct spi_dev_s *spi = slot->spi;
-
- /* De-select the MMCSD card */
-
- SPI_SELECT(spi, SPIDEV_MMCSD, FALSE);
-
- /* Wait a bit */
-
- SPI_SEND(spi, 0xff);
-
- /* Reselect the card */
-
- SPI_SELECT(spi, SPIDEV_MMCSD, TRUE);
-}
-#else
-# define mmcsd_synchronize(slot) /* No synchronization needed */
-#endif
-
-/****************************************************************************
* Name: mmcsd_waitready
*
* Description:
@@ -848,7 +813,6 @@ static int mmcsd_getcardinfo(FAR struct mmcsd_slot_s *slot, ubyte *buffer,
/* Send the CMD9 or CMD10 */
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, cmd, 0);
if (result != MMCSD_SPIR1_OK)
{
@@ -1141,11 +1105,10 @@ static ssize_t mmcsd_read(FAR struct inode *inode, unsigned char *buffer,
fvdbg("nbytes=%d byte offset=%d\n", nbytes, offset);
}
- /* Select the slave and synchronize */
+ /* Select the slave */
mmcsd_semtake(&slot->sem);
SPI_SELECT(spi, SPIDEV_MMCSD, TRUE);
- mmcsd_synchronize(slot);
/* Single or multiple block read? */
@@ -1303,11 +1266,10 @@ static ssize_t mmcsd_write(FAR struct inode *inode, const unsigned char *buffer,
}
mmcsd_dumpbuffer(buffer, nbytes);
- /* Select the slave and synchronize */
+ /* Select the slave */
mmcsd_semtake(&slot->sem);
SPI_SELECT(spi, SPIDEV_MMCSD, TRUE);
- mmcsd_synchronize(slot);
/* Single or multiple block transfer? */
@@ -1597,11 +1559,9 @@ static int mmcsd_mediainitialize(FAR struct mmcsd_slot_s *slot)
do
{
fvdbg("%d. Send CMD55/ACMD41\n", elapsed);
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, &g_cmd55, 0);
if (result == MMCSD_SPIR1_IDLESTATE || result == MMCSD_SPIR1_OK)
{
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, &g_acmd41, 1 << 30);
if (result == MMCSD_SPIR1_OK)
{
@@ -1644,13 +1604,11 @@ static int mmcsd_mediainitialize(FAR struct mmcsd_slot_s *slot)
/* Both the MMC card and the SD card support CMD55 */
fvdbg("Send CMD55/ACMD41\n");
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, &g_cmd55, 0);
if (result == MMCSD_SPIR1_IDLESTATE || result == MMCSD_SPIR1_OK)
{
/* But ACMD41 is supported only on SD */
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, &g_acmd41, 0);
if (result == MMCSD_SPIR1_IDLESTATE || result == MMCSD_SPIR1_OK)
{
@@ -1668,11 +1626,9 @@ static int mmcsd_mediainitialize(FAR struct mmcsd_slot_s *slot)
if (IS_SD(slot->type))
{
fvdbg("%d. Send CMD55/ACMD41\n", elapsed);
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, &g_cmd55, 0);
if (result == MMCSD_SPIR1_IDLESTATE || result == MMCSD_SPIR1_OK)
{
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, &g_acmd41, 0);
if (result == MMCSD_SPIR1_OK)
{
@@ -1683,7 +1639,6 @@ static int mmcsd_mediainitialize(FAR struct mmcsd_slot_s *slot)
else
{
fvdbg("%d. Send CMD1\n", i);
- mmcsd_synchronize(slot);
result = mmcsd_sendcmd(slot, &g_cmd1, 0);
if (result == MMCSD_SPIR1_OK)
{