diff --git a/ChangeLog b/ChangeLog
index a21520a726b..a314430d497 100644
--- a/ChangeLog
+++ b/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
+0.4.7 2009-05-29 Gregory Nutt
* 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
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index 4e651caa4a6..41f583fa5f5 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -401,7 +401,7 @@
|
- Generic driver for SPI-based MMC/SD cards.
+ Generic driver for SPI-based MMC/SD/SDH cards.
|
@@ -687,8 +687,8 @@
-nuttx-0.4.6.
- The 38th release of NuttX (nuttx-0.4.6) is available for download
+
nuttx-0.4.7.
+ The 39th release of NuttX (nuttx-0.4.7) was made on May 29, 2009 and is available for download
from the SourceForge
website.
The change log associated with the release is available here.
@@ -696,20 +696,22 @@
These unreleased changes are listed here.
- The release features support for the Micromint
- 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 NuttShell (NSH).
- 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:
+
+ -
+ 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.
+
+ -
+ The SPI-based MMC/SD driver was extended to support SDHC Version 2.xx cards.
+
+
- 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).
-
-
- 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 ChangeLog 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.
@@ -866,11 +868,10 @@
STATUS:
- 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 NuttShell (NSH).
- 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 NuttShell
+ (NSH), the NuttX networking test, and the uIP web server.
@@ -1358,30 +1359,35 @@ Other memory:
-nuttx-0.4.6 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
+nuttx-0.4.7 2009-05-29 Gregory Nutt <spudmonkey@racsa.co.cr>
- * 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
+ * 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 <spudmonkey@racsa.co.cr>
@@ -1412,35 +1418,7 @@ buildroot-0.1.5 2009-04-25 <spudmonkey@racsa.co.cr>
-nuttx-0.4.7 2009-xx-xx 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
- 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 <spudmonkey@racsa.co.cr>
pascal-0.1.3 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
index 6ab70d96100..b2eb55d0478 100644
--- a/Documentation/NuttxPortingGuide.html
+++ b/Documentation/NuttxPortingGuide.html
@@ -2183,9 +2183,6 @@ extern void up_ledoff(int led);
-
CONFIG_MMCSD_SPICLOCK: Maximum SPI clock to drive MMC/SD card. Default is 20MHz.
- -
-
CONFIG_MMCSD_SYNCHRONIZE: Special synchronization logic needed
-
Network Support
diff --git a/ReleaseNotes b/ReleaseNotes
index 5900c4f3b5e..870c7a910c7 100644
--- a/ReleaseNotes
+++ b/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/TODO b/TODO
index 3e3ea0944c4..33d0e25be97 100644
--- a/TODO
+++ b/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/configs/README.txt b/configs/README.txt
index 5443eb75e3f..36c422f466e 100644
--- a/configs/README.txt
+++ b/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/configs/eagle100/httpd/defconfig b/configs/eagle100/httpd/defconfig
index 9c42f6583de..8f410917db2 100644
--- a/configs/eagle100/httpd/defconfig
+++ b/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/configs/eagle100/nettest/defconfig b/configs/eagle100/nettest/defconfig
index 8b501a9d141..96d82f693d9 100644
--- a/configs/eagle100/nettest/defconfig
+++ b/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/configs/eagle100/nsh/defconfig b/configs/eagle100/nsh/defconfig
index 6bd803948b9..cbd62632f19 100644
--- a/configs/eagle100/nsh/defconfig
+++ b/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/configs/eagle100/ostest/defconfig b/configs/eagle100/ostest/defconfig
index 2abbbb648f3..0667030544a 100644
--- a/configs/eagle100/ostest/defconfig
+++ b/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/configs/mcu123-lpc214x/nsh/defconfig b/configs/mcu123-lpc214x/nsh/defconfig
index fd55a8f22bc..c84aad6df56 100644
--- a/configs/mcu123-lpc214x/nsh/defconfig
+++ b/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/configs/mcu123-lpc214x/ostest/defconfig b/configs/mcu123-lpc214x/ostest/defconfig
index 28dac142bfe..ad5da5d30d3 100644
--- a/configs/mcu123-lpc214x/ostest/defconfig
+++ b/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/configs/mcu123-lpc214x/usbserial/defconfig b/configs/mcu123-lpc214x/usbserial/defconfig
index 445cbac4efb..0d95664cb4c 100644
--- a/configs/mcu123-lpc214x/usbserial/defconfig
+++ b/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/configs/mcu123-lpc214x/usbstorage/defconfig b/configs/mcu123-lpc214x/usbstorage/defconfig
index da601a98ff6..3cf08afc234 100644
--- a/configs/mcu123-lpc214x/usbstorage/defconfig
+++ b/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/drivers/mmcsd/mmcsd_spi.c b/drivers/mmcsd/mmcsd_spi.c
index cadf8bbd89c..cd087061642 100644
--- a/drivers/mmcsd/mmcsd_spi.c
+++ b/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);
@@ -346,38 +343,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
*
@@ -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)
{