mt29f NAND driver: fix I/O pin numbers and row/column addressing.
authoraleph <aleph@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 19 Apr 2011 17:04:19 +0000 (17:04 +0000)
committeraleph <aleph@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 19 Apr 2011 17:04:19 +0000 (17:04 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4862 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cpu/cortex-m3/drv/mt29f_sam3.c
bertos/cpu/cortex-m3/drv/mt29f_sam3.h

index 2754f13fb39da0610a1775e68682574d56ffc196..25d4537b4b9eb09e0851c856b7d61e9b229dd77d 100644 (file)
@@ -110,15 +110,10 @@ struct Mt29fHardware
  */
 static void mt29f_getAddrCycles(block_idx_t page, size_t offset, uint32_t *cycle0, uint32_t *cycle1234)
 {
-       uint32_t addr = (page * MT29F_PAGE_SIZE) + offset;
+       ASSERT(offset < MT29F_PAGE_SIZE);
 
-       /*
-        * offset nibbles  77776666 55554444 33332222 11110000
-        * cycle1234       -------7 66665555 ----4444 33332222
-        * cycle0          11110000
-        */
-       *cycle0 = addr & 0xff;
-       *cycle1234 = ((addr >> 8) & 0x00000fff) | ((addr >> 4) & 0x01ff0000);
+       *cycle0 = offset & 0xff;
+       *cycle1234 = (page << 8) | ((offset >> 8) & 0xf);
 
        LOG_INFO("mt29f addr: %lx %lx\n", *cycle1234, *cycle0);
 }
@@ -251,9 +246,6 @@ int mt29f_blockErase(Mt29f *fls, block_idx_t page)
  */
 bool mt29f_getDevId(Mt29f *fls, uint8_t dev_id[5])
 {
-       memset(dev_id, 0x66, 5);
-       memset((void *)NFC_SRAM_BASE_ADDR, 0x77, 2048);
-
        mt29f_sendCommand(
                NFC_CMD_NFCCMD | NFC_CMD_NFCEN | MT29F_CSID | NFC_CMD_ACYCLE_ONE |
                MT29F_CMD_READID << 2,
index 06a582baf705124657e51a6e8b0a5347b8875e0f..2d2d7353361d8acb3deb40508f3c7b653a508370 100644 (file)
@@ -61,8 +61,8 @@
 #define MT29F_PINS_PORTC    (MT29F_PIN_OE | MT29F_PIN_WE | MT29F_PIN_IO)
 #define MT29F_PERIPH_PORTC  PIO_PERIPH_A
 
-#define MT29F_PIN_CLE       BV(22)
-#define MT29F_PIN_ALE       BV(21)
+#define MT29F_PIN_CLE       BV(9)
+#define MT29F_PIN_ALE       BV(8)
 #define MT29F_PINS_PORTD    (MT29F_PIN_CLE | MT29F_PIN_ALE)
 #define MT29F_PERIPH_PORTD  PIO_PERIPH_A