9
0
Fork 0

Prep for 0.4.7 release

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@1837 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2009-05-29 15:36:48 +00:00
parent 57a401592e
commit 6f9690d31d
15 changed files with 89 additions and 151 deletions

View File

@ -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>

View File

@ -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;
nuttx-0.4.7 2009-05-29 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
* 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;

View File

@ -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>

View File

@ -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.

View File

@ -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/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)
{