Commit Graph

492 Commits

Author SHA1 Message Date
Dave Marples
91eb792e56 Corrections for the i.MXRT Ethernet:
(1) Now the Ethernet is completely re-initialized when an error occurs by means of taking the interface down and back up but the PHY is _not_ renegotiated for that case because that is very time consuming and an error in the Ethernet is no reflection on the state of the PHY anyway.

(2) Explicitly sets the expected PHY address to zero (this could be moved into the config) rather than searching for it which takes ages, and it's zero anyway for this board (that's the broadcast address, and anything that cannot respond on that has multiple PHYs, so that would be a new board).

(3) Allows for the renegotiation of the PHY to be optional when a reset is needed. If a non-renegotiated reset doesn't result in good comms to the PHY then it'll automatically be escalated to a renegotiated one.

(4) Only performs a reset for errors that need it (the CRITICAL_ERROR define).  The list of errors that need reset are somewhat arbitrarily chosen based on my prejudices and might need to be revisited, but certainly the jabber errors don't need reset, the partial packet is thrown away by the layer above anyway.

(5) Re-loads the multicast table on reset.

(6) Adds a bit more logging into the imxrt Ethernet module.
2018-09-28 07:25:48 -06:00
Gregory Nutt
6d2cce99e1 fs/spiffs: Fix more problems found in testing. It is getting closer but examples/fstest is still showing problem. 2018-09-26 10:05:43 -06:00
Gregory Nutt
b823fd83bd arch/arm/src/armv7-a: Replicate the same fix was previously commited for the armv7-r. 2018-09-20 21:40:29 -06:00
EunBong Song
0f18e8cc32 Merged in ebsong/nuttx (pull request #722)
Pull request for mtd/progmem refactoring.

* mtd/progmem: change up_progmem_npages to up_progmem_neraseblocks

    page is a unit for read/write operation.
    eraseblock is a unit for erase operation.
    up_progmem_npages is a little bit confusing because it returns number of
    erase blocks in flash memory. This patch changes up_progmem_npages to
    up_progmem_neraseblocks. There is no logical change.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* mtd/progmem: up_progmem_erasesize.

    Change argument name to be more readable.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* mtd/progmem: up_progmem_eraseblock

    Change up_progmem_erasepage to up_progmem_eraseblock.
    eraseblock is more readable name than erasepage.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* mtd/progmem: change up_progmem_eraseblock's return value.

    up_progmem_eraseblock erase a block. so it's better to return the erase block
    size than page size.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* arm/cortex-r : fix wrong cp15_flash_dcache.

    change mcrne to mcr for unconditional dcache.

    Signed-off-by: sungduk.cho <sungduk.cho@samsung.com>

Approved-by: GregoryN <gnutt@nuttx.org>
2018-09-21 03:18:38 +00:00
Gregory Nutt
3a4984a40b Rename file_close_detached() to juse file_close() for better consistency in naming. 2018-09-15 13:04:56 -06:00
Gregory Nutt
a7fd58c4db Squashed commit of the following:
many locations:  Change occurences of open() followed by file_detach() to file_open().  Change most non-controversion calls to open() to nx_open().

    fs/inode/fs_fileopen.c:  Flesh out file_open() with some interim, placeholder logic.

    fs/inode/fs_fileopen.c:  Add a framework for a file_open() implementation (no real logic in place yet).

    fs/vfs/fs_open.c:  Add nx_open() which is the same as open() except that it does not create a cancellation point nor does it modify the errno variable.
2018-09-15 10:49:41 -06:00
Gregory Nutt
9546481054 Fix some typographical errors. 2018-09-14 06:55:45 -06:00
EunBong Song
d33b0640fe Merged in ebsong/nuttx (pull request #712)
Pull request for cortex-r4 codes

* arm/armv7-r: Add general interrupt controller.

    This is based on armv7-a gic controller code.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* arm/armv7-r: add invalidate dcache in arm_head.S

    Adding invalidate dcache as a comment in arm_head.S.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* arm/armv7-r: Fix some wrong configuration of program status register.

    PSR_E_BIT bit should be set for big endian system.
    PSR_A_BIT bis is set automatically as arm cortex-r4 reference manual 3.7.4.
    So we don't need to set this bit.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* arm/armv7-r: Fix some wrong MPU register definition.

    Change MPU_RBAR_ADDR_MASK and MPU_RACR_TEX_SHIFT mask as
    arm cortex-r4 reference manual.

    Region Base Address Register 0-4 bits are reserved.
    MPU Region Access control register type 3-5 bits.

    Signed-off-by: EunBong Song <eunb.song@samsung.com>

* driver/mtd: fix compilation error.

    This commit fixes below compilation errors.

    CC:  mtd/smart.c
    mtd/smart.c:182:22: error: 'gWearBitToLevelMap4' defined but not used [-Werror=unused-const-variable=]
     static const uint8_t gWearBitToLevelMap4[] =
                          ^~~~~~~~~~~~~~~~~~~
    mtd/smart.c:170:22: error: 'gWearLevelToBitMap4' defined but not used [-Werror=unused-const-variable=]
     static const uint8_t gWearLevelToBitMap4[] =
                          ^~~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors
    make[1]: *** [smart.o] Error 1

    Signed-off-by: Junyeon LEE <junyeon2.lee@samsung.com>

Approved-by: GregoryN <gnutt@nuttx.org>
2018-08-29 01:50:41 +00:00
Gregory Nutt
15a1e44586 drivers/mtd/ftl.c: Reduce size of stack buffer from 64 to a maximum size as determined from NAME_MAX 2018-08-28 08:19:15 -06:00
Xiang Xiao
8b5ac497ad drivers/mtd/ftl.c: Support initialization of an FTL block device with a custom name 2018-08-28 07:15:57 -06:00
Xiang Xiao
41a1e76735 drivers/mtd/mtd_partition.c: Copy the partition name to internal buffer so that the caller can free the name argument 2018-08-28 07:09:59 -06:00
wangyanjiong
25f2bcea38 drivers/mtd: Add gd25 driver 2018-08-28 06:31:54 -06:00
Alan Carvalho de Assis
283b73edc5 Fix lots of typos in C comments and Kconfig help text 2018-07-08 18:24:45 -06:00
Gregory Nutt
a0e169ad7b net/: Fix a sixlowpan typo bug recently introduced; Rename g_ipv6_allzeroaddre with the more meaning g_ipv6_unspecaddr since the all-zero address is the IPv6 unspecified address (sometime IN6_ADDR_ANY). Remove more inline tests for IPv6 multicast with tcommint net_is_addr_mcast() macro. Update some comments. 2018-06-23 12:53:27 -06:00
Gregory Nutt
01b740c66b arch/arm/src/efm32: Support for common vector handling is forced for all EFM32 chips. Yes the architecture provides support for the old-style dedicated vector handling which can never be compiled. Furthermore, the old-style dedicated vector handling is deprecated in favor of common vector handling. The commit resolves this inconsistency be removing support for the dedicated vector handling from the EFM32 architecture support. 2018-06-19 13:37:00 -06:00
Gregory Nutt
8fdbb1e0a4 Elimate use of the non-standard type systime_t and replace it the equivalent, standard type clock_t
Squashed commit of the following:

    sched:  Rename all use of system_t to clock_t.
    syscall:  Rename all use of system_t to clock_t.
    net:  Rename all use of system_t to clock_t.
    libs:  Rename all use of system_t to clock_t.
    fs:  Rename all use of system_t to clock_t.
    drivers:  Rename all use of system_t to clock_t.
    arch:  Rename all use of system_t to clock_t.
    include:  Remove definition of systime_t; rename all use of system_t to clock_t.
2018-06-16 12:16:13 -06:00
Michał Łyszczek
249d7e0d84 drivers/mtd/mtd_config.c: mtdconfig_register() returned OK intead of -ENOMEM on failed malloc 2018-05-08 06:48:00 -06:00
Michael Jung
121211f096 progmem interface: Discern r/w and erase page sizes. Introduce new up_progmem_erasesize architecture API to be able to communicate the read/write page size independently from erase page size. Implement up_progmem_erasesize for all architectures that already support progmem, assuming that for those architectures the sizes of both read/write and erase pages are identical. 2018-05-01 06:23:52 -06:00
lihaichen
a71aa070e7 Merged in lihaichen/nuttx_fix_w25 (pull request #623)
fix w25_cacheflush sector bug.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-04-04 17:04:23 +00:00
Gregory Nutt
987a8298f2 Fix some errors found in build testing + clean-up some issues with last changes to remove use of printf() from within the OS. 2018-03-03 15:51:27 -06:00
Gregory Nutt
b4f2b0dfc6 Remove all usage of printf() from the OS. That is not an acceptable context for the use of an application-oriented interface that depends on a task-specific file descriptor and C buffered I/O. 2018-03-03 15:20:21 -06:00
Gregory Nutt
d1b31d536a Eliminate a couple more uses of printf() within the OS. There are several more. 2018-03-03 12:59:48 -06:00
Dmitriy Linikov
a8c58607e9 Merged in hardlulz/modem-3.0-nuttx/fix-sem-EINTR (pull request #603)
Added ECANCELED condition to DEBUGASSERT-s checking sem_wait result

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-02-20 18:24:53 +00:00
Gregory Nutt
8572837d9e Squashed commit of the following:
Author: Juha Niskanen <juha.niskanen@haltian.com>
Date:   Mon Feb 19 15:03:17 2018 -0600

    drivers/mtd:  mtd_config.c:  Add still more error handling (to detect bad underlying flash implementations)
    drivers/mtd:  mtd_config.c:  Remove MTD_ERASE that was erasing data block instead of erase block.  This is a partial revert of 4f18b4.  Reported-by: Pascal Speck <iktek01@yahoo.com>
    arch/arm/src/stm32l4:  stm32l4_flash: change flash programming to use page buffer for unaligned writes.
2018-02-19 15:03:47 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Alexander Oryshchenko
a7834bcb7b drivers/mtd/at24xx.c: Correct page size for AT24C02 part. 2018-01-24 06:51:34 -06:00
Ekaterina Kovylova
59a5c24739 drivers/mtd: Add a driver for Macronix MX35LFxGE4AB serial NAND flash. 2017-11-29 07:15:36 -06:00
Gregory Nutt
f3b37e5da3 fs/procfs/fs_procfsprogrem: Add /proc/progmem. This is an alternative way to get the information that was previoulsy available in apps/system/free. apps/system/free was removed beause it made illegal calls into the OS violating the portable interface. This new procfs entry provides the same information with no such violation. 2017-11-13 09:08:39 -06:00
Gregory Nutt
e52bc92238 drivers/mtd/filemtd.c: Don't use file descriptors... Use the internal file system interfaces so that the loop device can be shared across threads. 2017-11-02 17:07:08 -06:00
Gregory Nutt
bc40403516 There was a reference counting problem in the TPC logic of net_clone(). net_clone() which is the common logic underlying dup() and dup2() for sockets. When net_clone() calls net_start_monitor() and net_start_monitor() returns a failure (because the underlying TCP connection) then net_clone() must back out the reference count on the structure. Problem noted by Pascal Speck and this implementation of the solution is based on his suggestion. 2017-10-19 11:09:23 -06:00
Jussi Kivilinna
5ef548677a drivrs/mtd/filemtd.c: add block device MTD interface. Block MTD interface allows using block device directly as MTD instead of having to use file-system in between. NOTE that this provides the opposite capability of FTL which will let you use an MTD interface directly as a block device. 2017-10-19 09:53:41 -06:00
Gregory Nutt
181875f3ba fs/vfs: Add new internal OS interface nx_read(). nx_read() is functionally equivalent to read() except that it does not modify the errno variable and it is not a cancellation point. Changed all references to read() in the OS to nx_read(). 2017-10-11 12:13:41 -06:00
Gregory Nutt
a00d8e16a1 Adds OS internal function nx_write() which is functionally equivalent to write() except that it does not set the errno variable and do not cause cancellation points. 2017-10-11 10:18:30 -06:00
Gregory Nutt
936df1bcb5 Adds new OS internal functions nxsig_sleep() and nxsig_usleep. These differ from the standard sleep() and usleep() in that (1) they don't cause cancellation points, and (2) don't set the errno variable (if applicable). All calls to sleep() and usleep() changed to calls to nxsig_sleep() and nxsig_usleep().
Squashed commit of the following:

    Change all calls to usleep() in the OS proper to calls to nxsig_usleep()

    sched/signal:  Add a new OS internal function nxsig_usleep() that is functionally equivalent to usleep() but does not cause a cancellaption point and does not modify the errno variable.

    sched/signal:  Add a new OS internal function nxsig_sleep() that is functionally equivalent to sleep() but does not cause a cancellaption point.
2017-10-06 10:15:01 -06:00
Gregory Nutt
9568600ab1 Squashed commit of the following:
This commit backs out most of commit b4747286b1.  That change was added because sem_wait() would sometimes cause cancellation points inappropriated.  But with these recent changes, nxsem_wait() is used instead and it is not a cancellation point.

    In the OS, all calls to sem_wait() changed to nxsem_wait().  nxsem_wait() does not return errors via errno so each place where nxsem_wait() is now called must not examine the errno variable.

    In all OS functions (not libraries), change sem_wait() to nxsem_wait().  This will prevent the OS from creating bogus cancellation points and from modifying the per-task errno variable.

    sched/semaphore:  Add the function nxsem_wait().  This is a new internal OS interface.  It is functionally equivalent to sem_wait() except that (1) it is not a cancellation point, and (2) it does not set the per-thread errno value on return.
2017-10-04 15:22:27 -06:00
Gregory Nutt
42a0796615 Squashed commit of the following:
sched/semaphore:  Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable.  Changed all references to sem_post in the OS to nxsem_post().

    sched/semaphore:  Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable.  Changed all references to sem_destroy() in the OS to nxsem_destroy().

    libc/semaphore and sched/semaphore:  Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable.  Changed all references to sem_setprotocol in the OS to nxsem_setprotocol().  sem_getprotocol() was not used in the OS
2017-10-03 15:35:24 -06:00
Gregory Nutt
83cdb0c552 Squashed commit of the following:
libc/semaphore:  Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable.  Changed all references to sem_getvalue in the OS to nxsem_getvalue().

    sched/semaphore:  Rename all internal private functions from sem_xyz to nxsem_xyz.  The sem_ prefix is (will be) reserved only for the application semaphore interfaces.

    libc/semaphore:  Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable.  Changed all references to sem_init in the OS to nxsem_init().

    sched/semaphore:  Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.

    sched/semaphoate:  Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
2017-10-03 12:52:31 -06:00
Sebastien Lorquet
9ea215f2e4 Merged in slorquet/nuttx/mt25q (pull request #501)
Add support for Micron MT25Q series MT25Q128

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-10-02 18:33:54 +00:00
Simon Piriou
b1f50490bd MTD: Add driver for Macronix QuadSPI flash memory 2017-08-06 10:51:17 -06:00
Gregory Nutt
e8738e1f55 Minor update to some comments. 2017-08-04 09:00:58 -06:00
Gregory Nutt
bbc06dcd8e RAMTRON: Should be able to select chunked write mode via a configuration option, not by editing the file. 2017-08-04 08:49:07 -06:00
Boris Astardzhiev
79ee0a5209 RAMTRON: Add support for splitting block writes in chunks. Some Re-RAMs like MB85AS4MT has a write buffer size limitation. 2017-08-04 08:12:59 -06:00
Gregory Nutt
95e20afcd2 drivers/: Remove dangling space at the end of lines. 2017-06-28 13:17:17 -06:00
Jussi Kivilinna
4eaa136850 smart: fix wrong freeing of device structure and use-after-free issues on error paths 2017-06-28 07:20:07 -06:00
Jussi Kivilinna
7b8df1b930 mtd/w25: wait for BUSY flag to clear in w25_readid and w25_unprotect. W25Q128 datasheet says that all instructions expect 'Read Status Register' and 'Erase/Program Suspend' are ignored when BUSY flag in status register is '1'. Therefore wait for busy flag to clear in w25_readid() and w25_unprotect(). 2017-06-13 07:35:49 -06:00
Jussi Kivilinna
2596b14c90 mtd/w25: add missing locking and fix SPI_SELECT usage for w25_unprotect 2017-06-13 07:33:34 -06:00
Gregory Nutt
0a85a41678 MTD FLASH driver: Clone Sebastien Lorquet's m25px change to at25, is25xp, ramtron, and sst25xx. 2017-06-12 09:51:42 -06:00
Sebastien Lorquet
2851959dee MTD M2PX: If we READ while a write/erase is pending, the command is ignored and the write/erase continues. If we dont catch this situation we will return garbage to the user because the flash will not execute the command. So READ MUST wait for write completion, and before that, the bus must be locked since it's a precondition to calling waitwritecomplete(). 2017-06-12 09:34:09 -06:00
Gregory Nutt
d35a060a41 Revert "MTD: Fix problems in SPI locking in mp25x.c driver. Same problem probably in exists in several other drivers that derive from this this driver as well."
This reverts commit 85645284b3.
2017-06-12 07:23:06 -06:00
Sebastien Lorquet
85645284b3 MTD: Fix problems in SPI locking in mp25x.c driver. Same problem probably in exists in several other drivers that derive from this this driver as well. 2017-06-12 06:38:27 -06:00
Gregory Nutt
670d6a1e8d MTD FLASH drivers: The byte write method of several drivers had a cloned error: It was not locking the bus while performing byte write operations. 2017-06-06 16:10:41 -06:00
Juha Niskanen
06edfae133 mtd/config: Add some error checks for I/O errors 2017-06-01 06:22:27 -06:00
Jussi Kivilinna
7af5cbb833 drivers/mtd/w25.c: Enable short delay after sector/chip erase 2017-05-31 09:17:58 -06:00
Jussi Kivilinna
8b006e705e drivers/mtd/w25.c: erase sector only if it is not in erased state 2017-05-31 09:09:24 -06:00
Jussi Kivilinna
c7fcdf968d mtd/smart: Fix use of uninitialized variable 2017-05-31 09:07:25 -06:00
Gregory Nutt
0de294a586 Fix lots of occurrences of 'the the', 'the there', 'the these', 'the then', 'the they. 2017-05-11 13:35:56 -06:00
Juha Niskanen
0f7210b0ae mtd: fix some unallocated and NULL pointer issues. rwb->wrflush and rwb->wrmaxblocks in rwbuffer could get unallocated values from ftl_initialize() in some configurations. Also fixes related assert:
up_assert: Assertion failed at file:rwbuffer.c line: 643

that can happen with the following configuration:

  CONFIG_FTL_WRITEBUFFER=y
  CONFIG_DRVR_WRITEBUFFER=y
  # CONFIG_FS_WRITABLE is not set

These problems are caused by CONFIG variable differences between the buffer layers. TODO: This is not a perfect solution. readahead support has similar issues.
2017-05-11 07:22:21 -06:00
Juha Niskanen
58a0b09b82 mtd/config: fix byte read interface test 2017-05-11 07:19:24 -06:00
Juha Niskanen
797e3c3ca4 mtd: build RAMTRON and AT45DB drivers only if selected 2017-05-11 07:17:29 -06:00
Juha Niskanen
4f18b40429 mtd/config: erase block between block read and write 2017-05-10 08:25:39 -06:00
Gregory Nutt
e9a5477506 Add an instance argument to the SPIDEV definitions. 2017-04-29 12:26:52 -06:00
Heesub Shin
a10735b50d mtd/progmem: fix incorrect target address calculation
progmem_read/write() is incorrectly calculating the target address,
expecting the offset argument is given in a block number. This is
completely wrong and as a result invalid flash region is accessed.
Byte-oriented read/write interfaces of mtd device accept the
target address in a byte offset, not a block number.

Signed-off-by: Heesub Shin <heesub.shin@samsung.com>
2017-03-19 01:11:37 +09:00
Gregory Nutt
a70ea9d3bc Typos withim mtd/ with Macronix MX25L. In NuttX/drivers/mtd/Make.defs letters X between M and 25 are missing. Noted by Oleg Evseev. 2017-01-30 07:26:38 -06:00
Gregory Nutt
5e0c18b535 Merged in david_s5/nuttx/upstream_2_greg_ramtron (pull request #198)
Adding missing CONFIG_ prefix
2017-01-20 20:48:22 +00:00
David Sidrane
ca895b978b Adding missing CONFIG_ prefix 2017-01-20 10:45:50 -10:00
Gregory Nutt
08c001196b drivers/: Remove all explicit use of 'hidden' macro _info. Code must never use this directly. Code must always use a debug macro such as info which is basic on _info but can be appropriately filtered. 2017-01-15 13:00:50 -06:00
Aleksandr Vyhovanec
bf528f2071 packed_struct replaced by begin_packed_struct and end_packed_struct 2017-01-09 14:17:49 +03:00
Gregory Nutt
1793c1f8e1 Trivial, cosmetic change 2016-11-29 15:03:51 -06:00
Gregory Nutt
8dd2494407 Review of last PR: Fix return value (ERROR is not a value return value in this context). Fix some spacing. 2016-11-01 15:13:09 -06:00
Aleksandr Vyhovanec
be1626ad7b Added EEPROM timeout 2016-11-02 00:03:16 +03:00
Aleksandr Vyhovanec
b0f973d901 MTD: SPI-based driver for Macronix MX25L3233F or MX25L6433F. 2016-09-02 11:00:04 -06:00
Aleksandr Vyhovanec
3f40541b21 MTD: Fixed cloned typos in several FLASH drivers. 2016-09-02 07:27:57 -06:00
Beat Küng
dd1f679891 mtd: Add Fujistu MB85RS256B ramtron support
contributed by flatlevel from https://github.com/PX4/NuttX/pull/79
2016-08-23 18:27:04 +00:00
Gregory Nutt
9965cbe428 drivers/: Review and correct some stylistic inconsistencies 2016-08-07 09:43:48 -06:00
Gregory Nutt
10fff9011a Move include/nuttx/configdata.h to include/nuttx/mtd/configdata.h 2016-07-21 13:34:54 -06:00
Gregory Nutt
46dbbe837e rwbuffer.h moved from include/nuttx/ to include/nuttx/drivers. 2016-07-20 13:54:38 -06:00
Ken Pettit
39174da3be Remove naming conflict in drivers/mtd/filemntd.c 2016-07-17 20:19:44 -06:00
Ken Pettit
fea2aaba05 SMART MTD layer: Fixes freesector logic error when sectorsPerBlk=256, adds DEBUGASSERT for invalid geometry and additional memory debug logic. Also fixes the dangling pointer on error bug. 2016-07-14 10:31:28 -06:00
Gregory Nutt
74037a7951 Merged in ziggurat29/nuttx/stm32l4_smartfs_test (pull request #97)
fixes to n25qxxx mtd driver for smartfs support, etc...
2016-07-12 12:16:13 -06:00
ziggurat29
74777499bc alter the notion of 'blocksize' to be equivalent to 'flash write page size' in order to align with assumptions in the smartfs driver (at least, maybe other things do as well).
Correct a bug that was previously masked by having blocksize=eraseblocksize which would cause buffer overflows and delicious hardfaults.
Trivial spelling changes in comments, etc.
2016-07-12 11:46:08 -05:00
Sebastien Lorquet
0d41a1cd42 Before accessing the sst26 flash, the "Global Unlock" command must me executed, which I do in the sst26 driver.
BUT. re-reading the datasheet, the WREN instruction is required to enable the execution of this command. This was not done.

I have no idea how the driver currently works except by chance. The writes
should never happen at all, the flash is half-enabled!
2016-07-12 10:34:03 -06:00
Gregory Nutt
5b6fafb3f5 Several MTD FLASH drivers nullify the freed 'priv' structure and failed to return NULL as stated in the comments. Result, will operate on a NULL pointer later. Noted by David Sidrane. 2016-06-30 17:49:53 -06:00
Gregory Nutt
43eb04bb8f Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
Gregory Nutt
0c8c7fecf0 Add _ to the beginning of all debug macros to avoid name collisions 2016-06-16 12:33:32 -06:00
Gregory Nutt
efb02f2ef1 drivers/: Change some nerr() ERRORS to nwarn() WARNINGS. Anomolous network evernts are not errors. 2016-06-12 08:31:22 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt
3a74a438d9 Rename CONFIG_DEBUG_VERBOSE to CONFIG_DEBUG_INFO 2016-06-11 11:50:18 -06:00
Gregory Nutt
5f9bcfd5bf Trivial changes from review of last PR 2016-06-09 09:36:06 -06:00
Gregory Nutt
03c44c3583 Merged in marten_svanfeldt/nuttx-public/for_upstream/is25 (pull request #44)
Added driver of IS25xP SPI flash devices
2016-06-09 09:30:34 -06:00
Marten Svanfeldt
edeb2eed4e Added driver of IS25xP SPI flash devices
Based on sst25xx driver

Signed-off-by: Marten Svanfeldt <marten@intuitiveaerial.com>
2016-06-09 05:13:06 +02:00
Gregory Nutt
a18dbfda6e Remove drivers/mtd/flash_eraseall.c. It is not used in the OS and is just a dumb wrapper around the MDIOC_BULKERASE IOCTL call. 2016-06-02 10:44:13 -06:00
Sebastien Lorquet
880b59aa26 Additional configuration option to enable SST26 driver debug output. Using comming FS debug output generates too much output. 2016-05-25 13:43:44 -06:00
Sebastien Lorquet
f4fa4799f7 Add a driver for SST26F spi/qspi flash devices (SPI mode only) 2016-05-10 11:09:15 -06:00
ziggurat29
d3fbd86657 bug in smart.c; return code of smart_scan not checked, can cause success result in failure case, leading to 'dev' pointer being invalid. 2016-04-27 19:33:45 -05:00
Gregory Nutt
e8f0965d35 Mostly cosmetic changes from review of last PR 2016-04-17 14:13:44 -06:00
ziggurat29
1b9d837df3 add MTD support for Micron N25Qxxx family of QSPI flash 2016-04-17 12:20:07 -05:00
Gregory Nutt
84cd720479 FTL: Make it clear the the unlink method has not been implemented 2016-04-15 07:03:28 -06:00
Paul A. Patience
c62bb9beb1 Fix issues detected by cppcheck 2016-03-22 15:46:47 -04:00
Gregory Nutt
3ef25dc49d AT24xx: Add logic to unregister from the procfs file system if the driver is uninitialized 2016-03-17 09:55:10 -06:00
Max Neklyudov
1951b9df57 Improve m25px driver 2016-03-17 07:37:45 -06:00
Gregory Nutt
7fa0adff83 Fix a misplaced right bracket 2016-03-08 15:33:33 -06:00
Frank Benkert
4d9c41fd57 AT24XX: Correct address calculation in Multi-Block-Read 2016-03-08 15:31:23 -06:00
Gregory Nutt
0fb035f76b Standardize some naming in code section comments 2016-02-21 18:09:04 -06:00
Gregory Nutt
009e9f76cb I2C: Fixes/improvements from last massive I2C commits 2016-02-02 07:13:03 -06:00
Gregory Nutt
69ce24c70c I2C: Remove the setfrequency method from the interface 2016-02-01 16:31:13 -06:00
Gregory Nutt
f9053182d3 I2C: Remove setaddress method 2016-02-01 12:14:31 -06:00
Gregory Nutt
8c9bddf998 I2C: Eliminate the I2C_WRITE and I2C_READ macros 2016-02-01 08:57:22 -06:00
Gregory Nutt
3a781a2d3f Remove I2C slave methods from I2C master interface; rename i2c_dev_s to i2c_master_s. 2016-01-30 08:36:47 -06:00
Gregory Nutt
ceb415204e Move include/nuttx/i2c.h to include/nuttx/i2c/i2c_master.h 2016-01-30 08:00:16 -06:00
Gregory Nutt
7edf921c5e Remove CONFIG_SPI_OWNBUS: Now it is not just a good idea, it is the law 2016-01-23 18:54:36 -06:00
Gregory Nutt
f6e49caba8 All SPI-based device drivers needs to call SPI_HWFEATURES() with zero in order to co-exist with drivers that use H/W features 2016-01-23 16:18:13 -06:00
Gregory Nutt
f348e68069 Update to use 64-bit timer when available 2016-01-21 11:54:26 -06:00
Gregory Nutt
c16648b3fd Most cosmetic but also includes a fix for a compile problem from Ken Pettit 2015-12-01 12:54:57 -06:00
Gregory Nutt
3af1def49a Fix an error in a function prototype 2015-11-29 14:42:56 -06:00
Ken Pettit
5821af1bbe drivers/mtd: Add support for /dev/smart loop device. From Ken Petit 2015-11-28 09:00:26 -06:00
Gregory Nutt
6ff67d3061 Minor changes from code review 2015-11-25 14:57:25 -06:00
Ken Pettit
d4a58af380 drivers/mtd/mtd/mtd_procfs/c and include/nuttx/mtd/mtd.h: Add an interface to un-regiser an MTD procfs entry.
drivers/mtd/filemtd.c:  New new MTD conversion layer that will convert a regular file (or driver file) to an MTD device.  This is useful for testing on the simulation using the hostfs.

From Ken Petit
2015-11-25 14:46:28 -06:00
Gregory Nutt
289b3e281f drivers/mtd/smart.c: Fix a compile error when CONFIG_MTD_SMART_MINIMIZE_RAM=y 2015-11-22 17:18:43 -06:00
Gregory Nutt
891589b307 drivers/mtd/smart.c: Add some run-time geometry tests 2015-11-22 17:10:42 -06:00
Gregory Nutt
54549ef082 Revert "Add option to specify logical sector size during low level format plus adds some run-time geometry tests. fs/smartfs: Remove the 'mksmartfs()' code from the kernel 'fs'"
This reverts commit 96faf0fa3251ca10a17daddc728d931be5a206e0.
2015-11-22 10:15:06 -06:00
Gregory Nutt
64e8f12e2b Add option to specify logical sector size during low level format plus adds some run-time geometry tests. fs/smartfs: Remove the 'mksmartfs()' code from the kernel 'fs'
directory and build.
2015-11-22 10:07:35 -06:00
Gregory Nutt
db2fe45666 Update some comments 2015-11-20 09:55:18 -06:00
Ken Pettit
d30b73be82 W25: Add support for byte write mode. From Ken Petit 2015-11-20 07:34:07 -06:00
Gregory Nutt
1c86c004c4 FLASH progmem memory MTD: Need to register with PROCFS if enabled 2015-11-19 06:57:02 -06:00
Ken Pettit
7b590ec9a2 drivers/mtd/smart.c Fixed SmartFS wear level error that occurs when the logical sector size is too small to save all wear level status bytes in a single sector. Logical sectors 1 and 2 were simply not being allocated and then the read_sector and write_sector routines were failing. From Ken Petit 2015-11-18 18:12:06 -06:00
Ken Pettit
f0f7dd9956 drivers/mtd/smart.c: Fix a Smart wear-leveling bug. From Ken Petit 2015-11-18 07:01:13 -06:00
Ken Pettit
7e58e4c4cf W25: Fix W25 page read/write logic 2015-11-18 06:56:53 -06:00
Gregory Nutt
e61d51dab3 If multiple AT24xx devices are supported and resources are allocated, then it may also be necessary to free those resource 2015-11-17 08:39:06 -06:00
Gregory Nutt
724901ceb9 Add support for multiple AT24xx EEPROM devices 2015-11-17 07:40:17 -06:00
Gregory Nutt
015429684f MTD progmem: Fix an address calculation 2015-11-13 11:32:34 -06:00
Gregory Nutt
2706b4f8aa mtd_progmem.c: Fix calculation of block size 2015-11-13 09:19:25 -06:00
Gregory Nutt
fdb17620a0 Need a prototype for progmem_initialize in include/nuttx/mtd/mtd.h 2015-11-12 16:03:24 -06:00
Gregory Nutt
ef59f83a38 drivers/mtd/mtd_progmem.c: Add an upper-half driver that can be used with any FLASH library that provides the itnerfaces defined in include/nuttx/progmem.h 2015-11-12 13:40:18 -06:00
Gregory Nutt
9f3edd6373 MTD Smart: Remove checks for 64KB erase block size. erasesize was changed to 32-bits in struct mtd_geometry_s 2015-11-11 08:25:03 -06:00
Gregory Nutt
2ff1b173f2 SmartFS: Backout last change. It alters the behavior when it should not. Obviously there is something that I do not understand 2015-11-11 08:15:08 -06:00
Gregory Nutt
08200d8f86 S24FL1: Fix so that the driver compiles with 512 byte block support 2015-11-10 13:34:33 -06:00
Gregory Nutt
eb1191df63 S24FL1: Fix an error in the page write logic 2015-11-10 12:48:29 -06:00
Gregory Nutt
965addb397 s25fl1: When unprotecting, handle case where protection bits are inverted. Add option to s25flinitilize() to unprotected on power up 2015-11-10 11:33:35 -06:00
Gregory Nutt
2ab0832c26 Smart MTD: fix some outdated logic: geometray erase size is now 32-bits 2015-11-09 09:35:14 -06:00
Gregory Nutt
91429433f6 Correct naming of Spansion part. S25FL1, not ST25FL1 2015-11-07 11:51:09 -06:00
Gregory Nutt
b2bdba0824 S25FL1 FLASH driver: Fix return value from the bwrite() method 2015-11-07 11:26:53 -06:00
Gregory Nutt
bfeef77f1f SmartFS: Fix a compile error when FS debug enabled. Plus some changes needed by NuttX coding standard 2015-11-05 11:25:39 -06:00
Gregory Nutt
a314b2ac11 ST25FL1: Fix error that was overwriting status 2015-11-05 10:38:47 -06:00
Frank Benkert
e772c56ef6 AT24xx EEPROM Driver: Correct typo from last changeset 2015-10-31 09:04:53 -06:00
Gregory Nutt
46b688e701 Merged in marten_svanfeldt/nuttx-public/for_upstream/at24cxx (pull request #28)
Improvements of AT24xx MTD driver
2015-10-22 18:15:39 +08:00
Marten Svanfeldt
a31d1fd378 Make I2C frequency configurable for the AT24Cxx EEPROM driver
Signed-off-by: Marten Svanfeldt <marten@intuitiveaerial.com>
2015-10-21 12:01:36 +08:00
Marten Svanfeldt
af9590eef7 Extend the AT24Cxx MTD driver with support for -04,-08 and -16 parts.
These parts utilize the same one-byte-address in the I2C protocol as the -02,
but requires different I2C addresses for different banks of the EEPROM.

Signed-off-by: Marten Svanfeldt <marten@intuitiveaerial.com>
2015-10-21 12:01:36 +08:00
Gregory Nutt
cf14f8d1b5 drivers/: Fixes to spacing and alignement 2015-10-10 10:41:00 -06:00
Gregory Nutt
0b12dbf95d Fix some spacing problems 2015-10-04 15:04:00 -06:00
Gregory Nutt
cb9e27c3b0 Standardize naming used for public data and function groupings 2015-10-02 16:30:35 -06:00
Gregory Nutt
7d33e858dd QSPI interface + ST25FL1 driver: Add methods to allocate properly aligned memory 2015-09-06 09:37:34 -06:00
Gregory Nutt
f44320d2a6 ST25FL1: SAMV71 QSPI always does transfers in multiples of 4 bytes 2015-09-02 10:19:47 -06:00
Paul A. Patience
3b89eabd50 Correct #if to #ifdef when the macro can be undefined. Fix bug in AT24XX driver: it should compare AT24XX_ADDRSIZE to 2. 2015-09-01 13:52:29 -04:00
Gregory Nutt
ebd97dcf89 ST25FL1: Make buffers all even multiple of 32-bit values 2015-08-31 10:18:50 -06:00
Gregory Nutt
2d84270552 ST25FL1: Correct some compile problems when file system debug is enabled 2015-08-31 09:25:14 -06:00
Gregory Nutt
ed750f3600 ST25FL1: Changes after review of ST24FL1 clocking 2015-08-29 18:54:20 -06:00
Gregory Nutt
d6b0a8fe72 ST25FL1 driver is code complete 2015-08-29 15:58:54 -06:00
Gregory Nutt
4a1951b192 ST25FL1: Flesh out FLASH write logic 2015-08-28 12:01:08 -06:00
Gregory Nutt
d2653ef7a8 ST25FL1: Update for changes to QSPI interface definitions 2015-08-28 10:15:39 -06:00
Gregory Nutt
361e35a7be QSPI: Make changes to interface to better work with the SAMV71 2015-08-27 14:16:51 -06:00
Gregory Nutt
7936819fcc ST25FL1: Flesh out more initialization logic 2015-08-26 14:16:45 -06:00
Gregory Nutt
1cf57ae2bd Cosmetic 2015-08-26 07:16:07 -06:00
Gregory Nutt
8fe0121e1a Convert fragmentation ST24FL1 driver to use QSPI interface 2015-08-25 17:20:54 -06:00
Gregory Nutt
94ecf7ebad drivers/mtd/st25fl1.c: Add a driver for ST25FL1*K QuadSPI FLASH parts 2015-08-25 09:10:12 -06:00
Gregory Nutt
3743d3d84a Add configuration options for forthcoming st25fl1 devices 2015-08-24 08:00:39 -06:00
David Sidrane
c83d92e846 RAMTRON: Update driver to include support for newer RAMTRON parts. 2015-08-10 11:30:37 -06:00
Gregory Nutt
be09a87c0e SST25: Eliminate some warnings 2015-07-03 14:38:33 -06:00
Gregory Nutt
342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt
d43a09275a AT24 EEPROM driver. Fix some an incorrect variable name used in conditional compilation. SourceForge patch #55 2015-05-15 06:15:58 -06:00
Gregory Nutt
e4d2822af8 Make some file section headers more consistent with standard 2015-04-08 07:15:32 -06:00
Gregory Nutt
495f420978 Extend the AT24 EEPROM driver so that it supports: (1) the byte-oriented read() method, (2) parts with extended memory regions, and (3) parts with 8-bit addressing. 2015-03-17 14:27:27 -06:00
Gregory Nutt
b5bfb6762d Fix some BBRAM return values (from David Sidrane). Also some MTD-related cosmetic changes 2015-03-05 08:08:11 -06:00
Gregory Nutt
e7470e0834 Update dates in all skeleton files 2015-02-13 06:13:34 -06:00
Gregory Nutt
f3427cb32a mtd/ramtron.c: Table of parts is not terminated properly if CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined 2015-02-09 16:35:58 -06:00
Gregory Nutt
1c39b67e32 STM32: Fix some incorrectly placed conditional logic 2014-12-26 12:41:35 -06:00
Gregory Nutt
33bcb5dbca Back out some incorrect conditional compilation 2014-12-26 10:26:52 -06:00
Gregory Nutt
6daa9468f6 More RAMTRON related fixes from David Sidrane 2014-12-26 08:15:59 -06:00
Gregory Nutt
996d6c9d55 Most superstitous updates to the RAMTROM driver make it more compatibile with the version used by PX4. From David Sidrane 2014-12-26 07:59:09 -06:00
Gregory Nutt
a84bd3f433 M25P serial flash driver: Add subsector size of the M24P16 part. From Lazlo 2014-12-10 18:48:36 -06:00
Gregory Nutt
cdc8fc52d1 SmartFS: Implements wear-leveling in the SmartFS. From Ken Pettit 2014-12-09 14:11:15 -06:00
Gregory Nutt
bc3212d70e EEPROM: Add a README file 2014-11-27 09:14:00 -06:00
Gregory Nutt
40b27115cc Add support for generic EEPROM access via a character driver. Add also the EEPROM driver itself. From Sebastien Lorquet 2014-11-26 13:55:34 -06:00
Gregory Nutt
2994448d85 More fixes to problems noted by cppcheck. Some are kind of risky; some are real bugs. 2014-11-25 13:15:09 -06:00
Gregory Nutt
d9b238b002 Extend MTD support to M25P16. From Sébastien Lorquet 2014-11-07 10:35:03 -06:00
Gregory Nutt
b33f8b3013 MTD read-ahear/write buffering layer seems functional 2014-09-25 13:35:10 -06:00
Gregory Nutt
7c89724b99 A few fixes for clean apps/examples/mtdrwb build 2014-09-25 10:41:47 -06:00
Gregory Nutt
6626f62b08 In at45db_bwrite, the buffer is not increased when writing more than 1 page. Sourceforge bug #34 2014-09-25 06:48:04 -06:00
Gregory Nutt
34a057334c Update SMART FS procfs support. From Ken Pettit 2014-09-22 11:19:49 -06:00
Gregory Nutt
205260d5e2 Reanem kzalloc to kmm_zalloc for consistency 2014-08-31 17:34:44 -06:00
Gregory Nutt
1780810d3d Rename kmalloc to kmm_malloc for consistency 2014-08-31 17:26:36 -06:00
Gregory Nutt
54fa3b0b59 Rename kfree to kmm_free for consistency with other naming conventions 2014-08-31 17:04:02 -06:00
Gregory Nutt
c9661ad5a7 Change all time conversions. Yech. New timer units in microseconds breaks all existing logic that used milliseconds in the conversions. Something likely got broken doing this, probably because I confused a MSEC2TICK conversion with a TICK2MSEC conversion. Also, the tickless OS no appears fully functional and passes the OS test on the simulator with no errors 2014-08-07 18:00:38 -06:00
Gregory Nutt
3042fc5bc0 Missing closing quote in Kconfig file 2014-07-11 16:51:50 -06:00
Gregory Nutt
e91704c432 Minor Kconfig improvements 2014-07-11 16:25:35 -06:00
Gregory Nutt
ab1ab379dd Addition rwbuffer interfaces should not be enabled unless they are needed; if rwbuffer support is enabled, it should not be unconditionally enabled in SMART and FTL 2014-07-11 16:19:17 -06:00
Gregory Nutt
8516551e54 Add an MTD layer that will add read-ahead or write buffering to any MTD driver (incomplete) 2014-07-11 11:20:11 -06:00
Gregory Nutt
b36b29b4c3 SMARTFS: Increase some variables from uint16_t to uint32_t to handle larger device sizes. From Ken Pettit 2014-07-04 07:28:12 -06:00