From d9b238b002b7abc8df566a57c2bdac115571976c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 7 Nov 2014 10:35:03 -0600 Subject: [PATCH 1/3] =?UTF-8?q?Extend=20MTD=20support=20to=20M25P16.=20Fro?= =?UTF-8?q?m=20S=C3=A9bastien=20Lorquet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drivers/mtd/m25px.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/mtd/m25px.c b/drivers/mtd/m25px.c index c49585ebb0b..6bab204a263 100644 --- a/drivers/mtd/m25px.c +++ b/drivers/mtd/m25px.c @@ -90,6 +90,7 @@ #define M25P_RES_ID 0x13 #define M25P_M25P1_CAPACITY 0x11 /* 1 M-bit */ #define M25P_EN25F80_CAPACITY 0x14 /* 8 M-bit */ +#define M25P_M25P16_CAPACITY 0x15 /* 16 M-bit */ #define M25P_M25P32_CAPACITY 0x16 /* 32 M-bit */ #define M25P_M25P64_CAPACITY 0x17 /* 64 M-bit */ #define M25P_M25P128_CAPACITY 0x18 /* 128 M-bit */ @@ -116,6 +117,16 @@ #define M25P_EN25F80_SUBSECT_SHIFT 12 /* Sub-Sector size 1 << 12 = 4,096 */ #define M25P_EN25F80_NSUBSECTORS 256 +/* M25P16 capacity is 2,097,152 bytes: + * (32 sectors) * (65,536 bytes per sector) + * (8192 pages) * (256 bytes per page) + */ + +#define M25P_M25P16_SECTOR_SHIFT 16 /* Sector size 1 << 16 = 65,536 */ +#define M25P_M25P16_NSECTORS 32 +#define M25P_M25P16_PAGE_SHIFT 8 /* Page size 1 << 8 = 256 */ +#define M25P_M25P16_NPAGES 8192 + /* M25P32 capacity is 4,194,304 bytes: * (64 sectors) * (65,536 bytes per sector) * (16384 pages) * (256 bytes per page) @@ -349,6 +360,16 @@ static inline int m25p_readid(struct m25p_dev_s *priv) #endif return OK; } + else if (capacity == M25P_M25P16_CAPACITY) + { + /* Save the FLASH geometry */ + + priv->sectorshift = M25P_M25P16_SECTOR_SHIFT; + priv->nsectors = M25P_M25P16_NSECTORS; + priv->pageshift = M25P_M25P16_PAGE_SHIFT; + priv->npages = M25P_M25P16_NPAGES; + return OK; + } else if (capacity == M25P_M25P32_CAPACITY) { /* Save the FLASH geometry */ From 8d8928c68a7c5c8bdd9945b30e834d49d22102a8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 7 Nov 2014 10:37:18 -0600 Subject: [PATCH 2/3] Update ChangeLog --- ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d4371e83fbc..2462127a420 100755 --- a/ChangeLog +++ b/ChangeLog @@ -8911,4 +8911,5 @@ * libc/stdio/lib_tempnam.c, lib_tmpnam.c, Kconfig, Make.defs and include/stdio.h: Add tmpnam() and tempnam() (2014-11-05). * drivers/rwbuffer.c: Fix typo that can cause compiler error (2014-11-05). - + * drivers/mtd/m25px.c: Extend MTD support to M25P16. From Sébastien + Lorquet (2014-11-07). From fcc2a1bb4bfca2cb1d0b3812aceba9f509fbfcb2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 7 Nov 2014 15:54:24 -0600 Subject: [PATCH 3/3] Fix incorrect comment --- sched/semaphore/sem_post.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sched/semaphore/sem_post.c b/sched/semaphore/sem_post.c index 4540160823a..3e3d1d868c8 100644 --- a/sched/semaphore/sem_post.c +++ b/sched/semaphore/sem_post.c @@ -94,9 +94,7 @@ * 0 (OK) or -1 (ERROR) if unsuccessful * * Assumptions: - * This function cannot be called from an interrupt handler. - * It assumes the currently executing task is the one that - * is performing the unlock. + * This function may be called from an interrupt handler. * ****************************************************************************/